gpt4 book ai didi

java - 当 CSV 文件在谷歌存储桶中并且 mysql 5.7.17 安装在云中的 RHEL 机器上时,如何使用 mysql 的加载数据 infile?

转载 作者:行者123 更新时间:2023-11-29 02:38:52 34 4
gpt4 key购买 nike

我已经有一个 j2ee 应用程序,它使用 MySql 的加载数据 Infile 命令导入保存在谷歌云平台 RHEL 机器上 MySql 5.7.17 服务器上某个位置的 CSV 文件。 现在有一些要求,因此我们必须停止将 CSV 放在 RHEL 机器上,而是将它们保存在谷歌存储桶中,并从那里访问它们以执行“加载数据文件”命令。如果我们使用 CSV 的 URL,例如https://www.googleapis.com/storage/v1/b/ .csv 那怎么办呢?我必须在我的 Java 应用程序中完成所有这些工作。我能够在 java 中读取 CSV 文件,但是应该在加载数据 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());

}

最佳答案

If we use the URL of the CSVs e.g. https://www.googleapis.com/storage/v1/b/.csv then how can this be done ?

不知道。我不会那样做。

这是我的做法:

第一步。

从存储桶中读取 CVS 文件并将其作为文件存储在本地文件系统中。这可以通过 Java 使用 Google API 的 Java 绑定(bind)来完成,也可以通过从 Java 运行外部命令(例如 gsutil )来完成。

引用资料:


第 2 步。

使用JDBC 运行LOAD DATA LOCAL INFILE '<pathname>' ...哪里<pathname>是您上传的文件的路径名。

路径名以带引号的字符串形式给出。

引用资料:

请注意,如果您从服务器的文件系统上传,上传可能会更快,但它需要“root”数据库登录,并且您在将文件导入服务器的文件系统时遇到问题。


... but what file path should be set in the load data infile command ?

假设您正在谈论一个 LOAD DATA LOCAL INFILE , 您可以使用绝对路径名或相对路径名。相对路径名将相对于(应用程序)JVM 的当前目录进行解析;即应用程序启动时的当前目录。

关于java - 当 CSV 文件在谷歌存储桶中并且 mysql 5.7.17 安装在云中的 RHEL 机器上时,如何使用 mysql 的加载数据 infile?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57306884/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com