どのようにCSVファイルをGoogleバケットとMySQL 5.7.17にあるときは、MySQLのLOAD DATA INFILEを使用するには、クラウドでRHELのマシンにインストールされていますか?

Keshriナンダン:

私はすでに輸入のCSVファイルは、MySQLのデータをロードINFILEコマンドを使用してGoogleクラウドプラットフォームでRHELマシン上のMySQL 5.7.17サーバ上のいくつかの場所に保管J2EEアプリケーションを、持っています。今、私たちはRHELのマシン上でCSVを入れて停止し、代わりに「は、LOAD DATA INFILE」コマンドのためにそこからグーグルバケットとアクセスして、それらを維持する必要がありますため、これにはいくつかの要件があります。我々はCSVを例えばのURLを使用する場合https://www.googleapis.com/storage/v1/b/ .CSVを、その後どのようにこれを行うことができますか?そして、私はすべてのJavaアプリケーション内でこれを行う必要があります。私はJavaでCSVファイルを読み取ることができていますが、何のファイルパスには、LOAD DATA INFILEコマンドで設定する必要がありますか?MySQLの設定がインスタンスとしてGoogleが提供するものではないことをしてくださいノート...

//Below code is for only reading files from bucket:


String PROJECT_ID = "tttttt-179995";
String PATH_TO_JSON_KEY = "E:/<SOMETHING>.json";
String BUCKET_NAME = "<SOMEWHERE>_uat";
String OBJECT_NAME = "<SOME>.csv";

StorageOptions options=null;
try {
    options = StorageOptions.newBuilder().setProjectId(PROJECT_ID).setCredentials(GoogleCredentials.fromStream(new FileInputStream(PATH_TO_JSON_KEY))).build();
} catch (FileNotFoundException e) {
    e.printStackTrace();
} catch (IOException e) {
    e.printStackTrace();
}

Storage storage = options.getService();
Blob blob = storage.get(BUCKET_NAME, OBJECT_NAME);

String fileContent = new String(blob.getContent());
System.out.println(fileContent);

Page<Blob> blobs = storage.list(BUCKET_NAME, BlobListOption.currentDirectory(),BlobListOption.prefix(OBJECT_NAME));

    for (Blob b : blobs.iterateAll()) {
        System.out.println(b.getSelfLink());

    }
スティーブンC:

我々はのCSVのURLを使用する場合などhttps://www.googleapis.com/storage/v1/b/.csvこれはどのように行うことができますか?

知ってはいけません。私はそのようにしないだろう。

ここで私はそれを行うだろう方法は次のとおりです。

ステップ1。

バケツからCVSファイルを読み込み、ローカルファイルシステム内のファイルとして保存します。これは、Google APIのJavaバインディングを使用してJavaから行うことになる、またはそれは外部コマンド(例を実行することによって行うことができgsutil、Javaから)。

参考文献:


ステップ2。

使用JDBCは、実行するLOAD DATA LOCAL INFILE '<pathname>'...どこ<pathname>アップロードするファイルのパス名です。

パス名は引用符で囲まれた文字列として与えられています。

参考文献:

あなたは、サーバーのファイルシステムからアップロードする場合、アップロードはおそらく速いだろうが、それは「ルート」データベースログインを必要とし、あなたは、サーバーのファイルシステムにファイルを得ることの問題を抱えていることに注意してください。


...しかし、どのようなファイルパスには、LOAD DATA INFILEコマンドで設定する必要がありますか?

あなたが話していると仮定するとLOAD DATA LOCAL INFILE、あなたは、絶対または相対パス名を使用することができます。相対パス名は(アプリケーション)JVMの現在のディレクトリからの相対解決されます。アプリケーションが起動されたときに、現在のディレクトリ、すなわち。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=239569&siteId=1