3

有没有办法通过 BigQuery Java 库从本地 CSV 文件加载表?当我尝试将本地文件 URI 传递给 JobConfigurationLoad.setSourceUris() 时,我收到错误“源 URI 必须是 Google 存储位置”。

相关,如果我需要先将文件上传到 Google Cloud Storage,如果我在将文件加载到 BigQuery 后立即从云存储中删除文件,我需要支付什么费用?

4

2 回答 2

5

使用 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))
于 2012-08-10T09:26:52.523 回答
1

您可以使用多部分 mime 请求直接上传文件...请参阅此处的 bigquery 导入文档。java中没有例子,但是python中有一个应该比较容易适应。但是,如果您要处理非常大的文件,最好先将文件上传到 Google Cloud Storage。

如果您将文件暂存到 Google Cloud Storage 然后删除它们,您可能需要支付最多 24 小时的存储费用(我不确定,但肯定不会超过 24 小时的存储时间)。

于 2012-08-02T02:21:50.467 回答