2012-08-01 66 views
3

有沒有通過BigQuery Java庫從本地CSV文件加載表的方法?當我試圖將本地文件URI傳遞給JobConfigurationLoad.setSourceUris()時,我收到錯誤「源URI必須是Google存儲位置」。使用本地文件通過Java庫加載Google BigQuery表

相關問題,如果我需要首先將文件上傳到Google Cloud Storage,那麼在將文件加載到BigQuery後,如果從雲存儲中刪除文件,我該如何收取費用?

回答

1

您可以使用多部分MIME請求直接上傳文件...請參閱bigquery導入文檔here。 java中沒有例子,但python中有一個應該相對容易適應。但是,如果您處理的文件非常大,則最好先將文件上傳到Google Cloud Storage。

如果您將文件暫存到Google雲端存儲中,然後將其刪除,則可能需要支付高達24小時的存儲費用(我不確定這一點,但它絕對不會超過24小時的存儲空間)。

5

使用BigQuery的插入方法:

public Insert insert(String projectId, com.google.api.services.bigquery.model.Job content, 
     com.google.api.client.http.AbstractInputStreamContent mediaContent) 

你有2個implems AbstractInputStreamContent的:FileContent,InputStreamContent

例如:

val content = FileContent("application/octet-stream", new File("csv","data.csv") 
val insertReq = bigquery.jobs().insert(PROJECT_ID, insertJob, content))