- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经有一个 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
)来完成。
引用资料:
使用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/
我被难住了。如果我对文件路径进行硬编码,则此脚本在我的 Windows 机器上的 Eclipse 中运行良好。如果我尝试接受参数并在我的边缘节点(一个 linux 机器)上运行它,它不会抛出任何特定的
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 关闭 8 年前。 这个问题似乎不是关于 a specific programming problem,
我们最近将我们的基础架构从 Solaris(Oracle/Sun Java) 迁移到 AIX(IBM Java)。 我们的客户将使用我们共享的算法(AES)和 key 上传加密文件,一旦加密文件放置在
我想编写一个程序(java),它接受一个文件作为输入,对其进行加密(使用aes128)并通过ftp发送该加密文件,接收者接收它并使用 key 进行解密。我是初学者,有什么帮助可以做到这一点吗?非常感谢
我正在尝试将一些为 1c2 机器 (thumb) 编译的 DLL 导入 WinMobile 6.1 C# 智能设备项目。 然而,当我尝试将它们导入我的 C# 项目时,我得到“无法添加对...的引用”,
我正在寻找 FPGA + 机器。 它应该是入门级定价(例如不超过 200 美元)。 编辑:我想制作一个 ASM 图表并将 FPGA 编程为我在图表中指定的行为 最佳答案 你看过Arduino ? 关于
这是我想完成的: Write a program that stimulates a bean machine Your program should prompt the user to enter
我尝试使用以下命令在 Windows 10 上使用 hyperv 创建一台机器: docker-machine create --driver hyperv default 但它给了我: This m
我有个问题 我的问题是我有一个将 mapred.map.tasks 配置为10的作业(抓取工具),这意味着我的工作将一次创建10个映射器。但是我的集群将 mapred.tasktracker.map.
我正在尝试使用命令重新启动 Docker sudo docker restart a7f8ce75f51f 但我收到以下错误 Error response from daemon: Cannot re
在新机器上引导 Eclipse 是一个非常耗时的过程,您最终会问自己是否真的需要每个插件。但这些都很方便,并且有助于养成一致的习惯。 Eclipse 引导问题包括: 解释/记录需要发生的事情 粘贴正确
我们希望建立一个 Docker 开发节点,我们团队中的任何人都可以将东西部署到其中。 我使用 SSH 创建了一个新的 Docker 机器,如下所示: docker-machine create \
如果可能的话,我想使用 java.util.logging 来做到这一点,有什么想法吗?谢谢。 最佳答案 您可以尝试一下SLF4J . Simple Logging Facade for Java (
当 vagrant up 时,我们的 vagrant box 需要大约 1 小时才能提供第一次运行,在配置过程的最后,我想将盒子打包到本地文件夹中的图像,以便下次需要重建时将其用作基础盒子。我正在使用
我正在为我的图像处理项目构建一个 SVM 线性机,在其中提取正样本和负样本的特征并将其保存到目录中。然后,我使用这些功能训练 SVM,但收到一个无法调试的错误。下面是我用于训练分类器的 train-c
问题描述: 我要将MySQL server 5.7.11 (win32) 安装到Windows server 2012 中。服务器中安装了多个网络接口(interface)卡,我将安装多个绑定(bin
我想安排一台 (AWS) Linux 计算机启动、运行程序,然后自行关闭(以将成本保持在最低水平)。我可以放 mycommand; shutdown 在/etc/rc.local 文件中。但如果我需要
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 4 年前。 Improve this ques
如何将此文件的输出发送到另一台 Linux 计算机的主目录。 显然,我想发送此文件的输出: sed '/^\s*#/d;/^$/d' /etc/httpd/conf/httpd.conf 到 nati
我有一个 Linux 机器,我可以使用 SSH 进行 root 访问。 我想使用GDB来调试系统。 这是一个精简的 Debian 软件包;因此,我里面没有任何编译工具。 uname -a 给出: 2.
我是一名优秀的程序员,十分优秀!