2015-10-29 82 views
0

我需要從SQL Server表中插入100萬(以及更多)記錄到BigQuery表,該表記錄在SQL Server中作爲「鏈接服務器「通過CDATA odbc driver與遠程處理守護進程(documentation)從SQL Server插入100萬條記錄到BigQuery表,通過CDATA odbc驅動程序鏈接

此外,源表可能有一個排的號,ID等

現在,沒有列我可以插入每秒1記錄至BigQuery與此驅動程序,使用此查詢:

INSERT INTO [GBQ].[CDataGoogleBigQuery].[GoogleBigQuery].[natality] 
    SELECT * 
    FROM [natality].[dbo].[natality] 
GO 

但是對於這樣一堆記錄來說,就像一百萬或更多,這是一個極端低的性能。

我相信有一個解決方法,可以讓我加快插入過程。在此先感謝同志們。

回答

1

創建一個SSIS包來執行[natality].[dbo].[natality] table to [GBQ].[CDataGoogleBigQuery].[GoogleBigQuery].[natality] table的快速加載。總之,ETL過程使用快速負載來批量加載。

高級別如何:

  1. 在SSIS中,從工具箱中選擇一個數據流任務。

  2. 單擊數據流任務並選擇編輯。

  3. 在數據流頁面上,從 工具箱中選擇您的ole db源和ole db目的地。將2個任務連接在一起。

  4. 設置您的ole db源連接[natality].[dbo].[natality]

  5. 設置您的ole db目標爲[GBQ].[CDataGoogleBigQuery].[GoogleBigQuery].[natality]。確保選擇快速加載到表格設置。

一旦你完成,執行包。

+0

這是否在內部做一個批量上傳到bigquery? –

+0

正如你所提到的那樣,不幸的是,沒有什麼改變:它仍然每秒載入1條記錄。有任何想法嗎? –

+0

我不知道如何連接bigtable那麼對不起,如果我離開基地。我確實知道bigquery api,通常你會做的是將一個文件上傳到bigquery,它包含你想要在表中插入的所有行(然後等待工作完成,如果你需要知道它什麼時候結束)。一旦你通過了授權(oauth2)部分,它的小代碼就可以寫入。 –

0

在@Blasterdick評論的鏈接不再可用,但是從CData的網站上的最新版本的工作原理:http://www.cdata.com/drivers/bigquery/ssis

批處理模式是控制批量查詢屬性的名稱,默認情況下啓用。

相關問題