有没有办法通过BigQuery Java库从本地CSV文件加载表?当我尝试将本地文件URI传递给JobConfigurationLoad.setSourceUris()时,我收到错误“源URI必须是Google存储位置”。
相关的,如果我需要先将文件上传到Google云端存储,如果我将文件加载到BigQuery后立即从云存储中删除该文件,我会收取哪些费用?
答案 0 :(得分: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))
答案 1 :(得分:1)
您可以使用多部分mime请求直接上传文件...请参阅bigquery导入文档here。 java中没有例子,但python中有一个应该相对容易适应。但是,如果您要处理非常大的文件,最好先将文件上传到Google云端存储。
如果您将文件存储到Google云端存储中然后将其删除,您可能会收到长达24小时的存储费用(我不确定这一点,但它肯定不会超过24小时的存储空间)