將 Microsoft SQL Server 資料載入 BigQuery
注意:如要取得支援或提供這項功能的意見回饋,請傳送電子郵件至 dts-preview-support@google.com。如要排定從 Microsoft SQL Server 到 BigQuery 的週期性資料移轉作業,您可以建立移轉設定,指定要移轉的資料物件,以及排定資料移轉作業的頻率。設定移轉設定後,BigQuery 資料移轉服務會按照指定的時間表,將最新資料移轉至 BigQuery 資料表。
如要瞭解 Microsoft SQL Server 移轉作業的運作方式,請參閱「Microsoft SQL Server 資料移轉簡介」。
限制
Microsoft SQL Server 資料移轉工作須遵守下列限制:
- Microsoft SQL Server 資料庫可同時連線的數量有限。因此,同時移轉至單一 Microsoft SQL Server 資料庫的執行作業數量也有限制。請確認並行傳輸工作數量少於 Microsoft SQL Server 資料庫支援的並行連線數量上限。
- 部分 Microsoft SQL Server 資料類型可能會對應至 BigQuery 中的
STRING類型,以避免資料遺失。舉例來說,Microsoft SQL Server 中未定義有效位數和小數位數的特定數值類型,可能會對應至 BigQuery 中的STRING。詳情請參閱「資料類型對應」。
增量移轉作業限制
Microsoft SQL Server 遞增移轉作業有下列限制:- 浮水印欄只能選擇
TIMESTAMP欄。 - 只有具備有效浮水印資料欄的資產,才支援增量擷取。
- 基準欄中的值必須單調遞增。
- 增量轉移作業無法同步處理來源表格中的刪除作業。
- 單一移轉設定只能支援增量或完整擷取。
- 首次執行增量擷取後,您就無法更新
asset清單中的物件。 - 首次執行增量擷取後,您就無法變更移轉設定中的寫入模式。
- 首次執行增量擷取後,就無法變更基準值資料欄或主鍵。
- 目的地 BigQuery 資料表會使用提供的 主鍵進行分群,並受限於分群資料表限制。
- 首次將現有移轉設定更新為增量擷取模式時,更新後的第一次資料移轉會從資料來源移轉所有可用資料。後續的任何增量資料移轉作業,都只會從資料來源移轉新的和更新的資料列。
- 建議您在基準欄建立索引。這個連結器會在增量轉移中,使用水位線資料欄做為篩選器,因此為這些資料欄建立索引可提升效能。
- 進行增量移轉時,您必須使用更新的資料類型對應。
事前準備
如要排定 Microsoft SQL Server 資料移轉作業,請務必先完成下列前置作業。
Microsoft SQL Server 必要條件
您必須在 Microsoft SQL Server 資料庫中建立使用者帳戶。詳情請參閱「建立具有登入權限的使用者」。
BigQuery 必要條件
- 確認您已完成啟用 BigQuery 資料移轉服務所需的所有動作。
- 請建立 BigQuery 資料集來儲存您的資料。
必要的角色
如要取得建立 Microsoft SQL Server 資料移轉作業所需的權限,請要求管理員在專案中授予您 BigQuery 管理員 (roles/bigquery.admin) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
這個預先定義的角色具備建立 Microsoft SQL Server 資料移轉作業所需的權限。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:
所需權限
如要建立 Microsoft SQL Server 資料移轉作業,必須具備下列權限:
-
bigquery.transfers.update -
bigquery.datasets.get
網路設定
如果 Microsoft SQL Server 資料庫連線沒有公開 IP 位址,您必須設定特定網路。詳情請參閱下列各節:
設定 Microsoft SQL Server 資料移轉作業
選取下列選項之一:
控制台
前往「資料轉移」頁面。
按一下「建立轉移作業」。
在「Source type」(來源類型) 部分,「Source」(來源) 請選取「Microsoft SQL Server」。
在「Data source details」(資料來源詳細資料) 部分執行下列操作:
- 在「Network attachment」(網路連結) 部分選取現有的網路連結,或是點選「Create Network Attachment」(建立網路連結)。
- 在「Host」(主機) 部分,輸入 Microsoft SQL Server 資料庫的主機名稱或 IP 位址。
- 在「Port number」(通訊埠編號) 中,輸入 Microsoft SQL Server 資料庫的通訊埠編號。
- 在「Database name」(資料庫名稱) 部分,輸入 Microsoft SQL Server 資料庫的名稱。
- 在「Username」(使用者名稱) 部分,輸入要建立 Microsoft SQL Server 資料庫連線的使用者名稱。
- 在「Password」(密碼) 部分,輸入 Microsoft SQL Server 使用者的密碼,該使用者會啟動 Microsoft SQL Server 資料庫連線。
- 在「TLS Mode」(TLS 模式) 中,從選單選取一個選項。如要進一步瞭解 TLS 模式,請參閱「TLS 設定」。
- 在「Trusted PEM Certificate」(信任的 PEM 憑證) 欄位中,輸入核發資料庫伺服器 TLS 憑證的憑證授權單位 (CA) 公開憑證。詳情請參閱「信任的伺服器憑證 (PEM)」一文。
- 在「Enable legacy mapping」(啟用舊版對應) 部分,選取「true」(預設),即可使用舊版資料類型對應。選取「false」即可使用更新版資料類型對應。如要進行增量移轉,這個值必須為 false。如要進一步瞭解資料類型對應更新,請參閱「2027 年 3 月 16 日」。
- 在「Ingestion type」(擷取類型) 部分,選取「Full」(完整) 或「Incremental」(增量)。
- 在「Microsoft SQL Server objects to transfer」(要移轉的 Microsoft SQL Server 物件),瀏覽 Microsoft SQL Server 資料表,或手動輸入要移轉的資料表名稱。
在「Destination settings」(目的地設定) 部分,「Dataset」(資料集) 請選取您為了儲存資料而建立的資料集,或按一下「建立新的資料集」,然後建立一個做為目的地資料集。
在「Transfer config name」(移轉設定名稱) 部分,「Display name」(顯示名稱) 請輸入移轉作業的名稱。移轉作業名稱可以是任何值,能讓您辨識移轉作業,方便您日後在必要時進行修改。
在「Schedule options」(排程選項) 部分執行下列操作:
- 選取重複頻率。如果選取「小時」、「天」(預設)、「週」或「月」選項,必須一併指定頻率。您也可以選取「Custom」(自訂) 選項,建立專屬的重複頻率。如果選取「On-demand」(隨選) 選項,這項資料移轉作業只會在您手動觸發時執行。
- 視情況選取「Start now」(立即開始) 或「Start at set time」(在所設時間開始執行),並提供開始日期和執行時間。
選用:在「Notification options」(通知選項) 專區,執行下列操作:
選用:在「Advanced options」(進階選項) 部分,選取這項移轉作業的加密類型。您可以選取 Google-owned and Google-managed encryption key或客戶擁有的 Cloud Key Management Service 金鑰。如要進一步瞭解加密金鑰,請參閱「客戶自行管理的加密金鑰 (CMEK)」。
按一下 [儲存]。
bq
輸入 bq mk 指令,
並提供轉移建立旗標 --transfer_config:
bq mk \ --transfer_config \ --project_id=PROJECT_ID \ --data_source=DATA_SOURCE \ --display_name=DISPLAY_NAME \ --target_dataset=DATASET \ --params='PARAMETERS'
更改下列內容:
PROJECT_ID(選用): Google Cloud 專案 ID。如未提供--project_id旗標來指定特定專案,系統會使用預設專案。DATA_SOURCE:資料來源,即sqlserver。DISPLAY_NAME:資料移轉設定的顯示名稱。移轉作業名稱可以是任意值,日後需要修改移轉作業時,能夠據此識別即可。DATASET:資料移轉設定的目標資料集。PARAMETERS:以 JSON 格式建立的轉移設定參數。例如:--params='{"param":"param_value"}'。以下是 Microsoft SQL Server 轉移作業的參數:connector.networkAttachment(選用):要連線至 Microsoft SQL Server 資料庫的網路連結名稱。connector.database:Microsoft SQL Server 資料庫的名稱。connector.endpoint.host:資料庫的主機名稱或 IP 位址。connector.endpoint.port:資料庫的通訊埠編號。connector.authentication.username:資料庫使用者的使用者名稱。connector.authentication.password:資料庫使用者的密碼。connector.legacyMapping:設為true(預設),即可使用舊版資料類型對應。設為false即可使用更新版資料類型對應。如要進行增量移轉,這個值必須是false。如要進一步瞭解資料類型對應更新,請參閱「2027 年 3 月 16 日」。connector.tls.mode:指定要與這項轉移作業搭配使用的 TLS 設定:ENCRYPT_VERIFY_CA_AND_HOST加密資料,並驗證憑證授權單位和主機名稱ENCRYPT_VERIFY_CA加密資料,且僅驗證憑證授權單位ENCRYPT_VERIFY_NONE(僅用於資料加密)DISABLE:不加密或驗證
connector.tls.trustedServerCertificate:(選用) 提供一或多個 PEM 編碼憑證。只有在connector.tls.mode的值為ENCRYPT_VERIFY_CA_AND_HOST或ENCRYPT_VERIFY_CA時,才需要提供。ingestionType:指定full或incremental。預先發布版支援增量移轉。詳情請參閱「完整或增量移轉」。writeMode:指定WRITE_MODE_APPEND或WRITE_MODE_UPSERT。watermarkColumns:將資料表中的資料欄指定為浮水印資料欄。 如要進行增量移轉,則必須填寫這個欄位。primaryKeys:將資料表中的資料欄指定為主鍵。如要進行增量轉移,這個欄位為必填。assets:Microsoft SQL Server 資料表名稱清單,這些資料表會從 Microsoft SQL Server 資料庫轉移,做為轉移作業的一部分。
舉例來說,下列指令會建立名為 My Transfer 的 Microsoft SQL Server 移轉作業:
bq mk \ --transfer_config --target_dataset=mydataset --data_source=sqlserver --display_name='My Transfer' --params='{"assets":["DB1/DEPARTMENT","DB1/EMPLOYEES"], "connector.authentication.username": "User1", "connector.authentication.password":"ABC12345", "connector.database":"DB1", "connector.endpoint.host":"192.168.0.1", "connector.endpoint.port":"1520", "connector.networkAttachment":"projects/dev-project1/regions/us-central1/networkattachments/na1", "ingestionType":"incremental", "writeMode":"WRITE_MODE_APPEND", "watermarkColumns":["createdAt","createdAt"], "primaryKeys":[['dep_id'], ['report_by','report_title']], "connector.tls.mode": "ENCRYPT_VERIFY_CA_AND_HOST", "connector.tls.trustedServerCertificate": "PEM-encoded certificate"}'
在增量轉移期間指定多項資產時,watermarkColumns 和 primaryKeys 欄位的值會對應至 assets 欄位中的值位置。在以下範例中,dep_id 對應至資料表 DB1/DEPARTMENT,而 report_by 和 report_title 則對應至資料表 DB1/EMPLOYEES。
"primaryKeys":[['dep_id'], ['report_by','report_title']], "assets":["DB1/DEPARTMENT","DB1/EMPLOYEES"],
如要在排程時間以外手動執行資料移轉作業,可以啟動補充執行作業。
疑難排解
如要排解資料移轉問題,請參閱「Microsoft SQL Server 移轉問題」。
轉移中繼資料
您也可以使用 Microsoft SQL Server 連接器,將中繼資料轉移至 Knowledge Catalog。詳情請參閱「將 Microsoft SQL Server 中繼資料載入 Knowledge Catalog」。後續步驟
- 請參閱 BigQuery 資料移轉服務總覽。
- 瞭解如何管理移轉作業,包括取得移轉設定相關資訊、列出移轉設定,以及查看移轉作業的執行記錄。
- 瞭解如何透過 BigQuery Omni 作業載入資料。