使用本地文件通过 java 库加载 Google BigQuery 表
Posted
技术标签:
【中文标题】使用本地文件通过 java 库加载 Google BigQuery 表【英文标题】:Loading a Google BigQuery table through the java library with a local file 【发布时间】:2012-08-01 23:21:10 【问题描述】:有没有办法通过 BigQuery Java 库从本地 CSV 文件加载表?当我尝试将本地文件 URI 传递给 JobConfigurationLoad.setSourceUris() 时,我收到错误“源 URI 必须是 Google 存储位置”。
相关,如果我需要先将文件上传到 Google Cloud Storage,如果我在将文件加载到 BigQuery 后立即从云存储中删除文件,我需要支付什么费用?
【问题讨论】:
【参考方案1】:使用 Bigquery 插入方法:
public Insert insert(String projectId, com.google.api.services.bigquery.model.Job content,
com.google.api.client.http.AbstractInputStreamContent mediaContent)
您有 2 个 AbstractInputStreamContent 实现:FileContent、InputStreamContent
例如:
val content = FileContent("application/octet-stream", new File("csv","data.csv")
val insertReq = bigquery.jobs().insert(PROJECT_ID, insertJob, content))
【讨论】:
【参考方案2】:您可以使用多部分 mime 请求直接上传文件...请参阅 bigquery 导入文档here。 java中没有例子,但是python中有一个应该比较容易适应。但是,如果您要处理非常大的文件,最好先将文件上传到 Google Cloud Storage。
如果您将文件暂存到 Google Cloud Storage 然后删除它们,您可能需要支付最多 24 小时的存储费用(我不确定这一点,但肯定不会超过 24 小时的存储时间) .
【讨论】:
以上是关于使用本地文件通过 java 库加载 Google BigQuery 表的主要内容,如果未能解决你的问题,请参考以下文章
从Google的CDN加载jQuery的正确方法,如果需要,可以使用回退到本地库
java.lang.IllegalArgumentException:无法加载本机库
允许 Google Chrome 使用 XMLHttpRequest 从本地文件加载 URL