Oracle 資料轉移簡介
您可以使用 Oracle 連接器,透過 BigQuery 資料移轉服務將資料從 Oracle 資料庫載入 BigQuery。本文提供 Oracle 移轉作業的設定選項,以及資料型別對應和中繼資料移轉的相關資訊。
如要瞭解如何排定 Oracle 轉移作業,請參閱「將 Oracle 資料載入 BigQuery」。
資料擷取選項
設定 Oracle 資料移轉時,下列各節會提供資料擷取選項的相關資訊。
傳輸層安全標準 (TLS) 設定
Oracle 連接器支援傳輸層安全 (TLS) 設定,可加密傳輸至 BigQuery 的資料。Oracle 連接器支援下列 TLS 設定:
「加密資料,並驗證 CA 和主機名稱」模式。這個模式會使用 TCPS 通訊協定透過 TLS 完整驗證伺服器。這項功能會加密所有傳輸中的資料,並驗證資料庫伺服器的憑證是否由信任的憑證授權單位 (CA) 簽署。這個模式也會檢查您連線的主機名稱,是否與伺服器憑證中的一般名稱 (CN) 或主體別名 (SAN) 完全相符。這個模式可防止攻擊者使用其他網域的有效憑證,冒充您的資料庫伺服器。
如果主機名稱與憑證 CN 或 SAN 不符,連線就會失敗。您必須設定 DNS 解析,以符合憑證或使用其他安全模式。如要採取最安全的做法,防止中間人 (PITM) 攻擊,請使用這個模式。
「加密資料,但僅驗證 CA」模式。這個模式會透過 TCPS 通訊協定使用 TLS 加密所有資料,並驗證伺服器憑證是否由用戶端信任的 CA 簽署。不過,這個模式不會驗證伺服器的主機名稱。只要憑證有效且由可信任的 CA 發行,這個模式就能成功連線,無論憑證中的主機名稱是否與您連線的主機名稱相符。
如果您想確保連線至憑證由信任的 CA 簽署的伺服器,但主機名稱無法驗證,或您無法控管主機名稱設定,請使用這個模式。
「僅加密」模式。這個模式會透過標準 TCP 連接埠,使用 Oracle 的原生網路加密技術,加密用戶端與伺服器之間的所有資料。不會執行任何憑證或主機名稱驗證。
這個模式會保護傳輸中的資料,提供一定程度的安全性,但可能容易受到中間人攻擊。
如果您需要確保所有資料都經過加密,但無法或不想驗證伺服器的身分,請使用這個模式。使用私人虛擬私有雲時,建議採用這個模式。
「無加密或驗證」模式。這個模式不會加密任何資料,也不會執行任何憑證或主機名稱驗證。所有資料都會以純文字形式傳送。
我們不建議在處理機密資料的環境中使用這個模式。建議您只在安全無虞的獨立網路中,將這個模式用於測試。
信任的伺服器憑證 (PEM)
如果您使用「加密資料,並驗證 CA 和主機名稱」模式或「加密資料,並驗證 CA」模式,也可以提供一或多個 PEM 編碼的憑證。在某些情況下,BigQuery 資料移轉服務需要在 TLS 連線期間驗證資料庫伺服器的身分,這時就需要這些憑證:
- 如果使用貴機構內私人 CA 簽署的憑證或自行簽署的憑證,請提供完整的憑證鏈結或單一自行簽署憑證。如果是透過代管雲端服務的內部 CA 發行的憑證,例如 Amazon Relational Database Service (RDS),則必須執行這項操作。
- 如果資料庫伺服器憑證是由公開 CA 簽署 (例如 Let's Encrypt、DigiCert 或 GlobalSign),您就不需要提供憑證。BigQuery 資料移轉服務會預先安裝並信任這些公開 CA 的根憑證。
您可以在轉移設定的「信任的 PEM 憑證」欄位中指定 PEM 編碼憑證,但須符合下列規定:
- 憑證必須是有效的 PEM 編碼憑證鏈結。
- 憑證必須完全正確。如果鏈結中缺少任何憑證或內容有誤,TLS 連線就會失敗。
- 如果是單一憑證,您可以提供資料庫伺服器中的單一自行簽署憑證。
- 如為私人 CA 核發的完整憑證鏈結,您必須提供完整的信任鏈結。包括資料庫伺服器的憑證,以及任何中繼和根 CA 憑證。
完整或累加轉移
設定 Oracle 移轉作業時,您可以在移轉設定中選取「完整」或「增量」寫入偏好設定,指定資料載入 BigQuery 的方式。預先發布版支援增量轉移。
您可以設定完整資料轉移,在每次資料轉移時轉移 Oracle 資料集的所有資料。或者,您也可以設定增量資料移轉作業 (搶先版),只移轉上次資料移轉後變更的資料,而不是在每次資料移轉時載入整個資料集。如果為資料移轉作業選取「增量」,則必須指定「附加」或「更新插入」寫入模式,定義在增量資料移轉期間,資料如何寫入 BigQuery。以下各節說明可用的寫入模式。
附加寫入模式
附加寫入模式只會將新資料列插入目的地資料表。這個選項會嚴格附加移轉的資料,不會檢查現有記錄,因此這個模式可能會導致目的地表格中的資料重複。
選取附加模式時,必須選取浮水印欄。Oracle 連接器必須使用浮水印資料欄,才能追蹤來源資料表中的變更。
如果是 Oracle 轉移作業,建議選取只在建立記錄時更新的資料欄,後續更新不會變更該資料欄。例如「CREATED_AT」欄。
Upsert 寫入模式
系統會檢查主鍵,以更新資料列或在目標資料表中插入新資料列。您可以指定主鍵,讓 Oracle 連接器判斷需要哪些變更,才能讓目標資料表與來源資料表保持同步。如果在資料移轉期間,指定的主鍵出現在目標 BigQuery 資料表中,Oracle 連接器就會使用來源資料表中的新資料更新該資料列。如果資料轉移期間沒有主鍵,Oracle 連接器就會插入新資料列。
選取「新增或更新」模式時,必須選取浮水印欄和主鍵:
- Oracle 連接器必須使用浮水印資料欄,才能追蹤來源資料表中的變更。
- 選取每次修改資料列時都會更新的水印資料欄。建議使用與
UPDATED_AT或LAST_MODIFIED欄類似的資料欄。
- 選取每次修改資料列時都會更新的水印資料欄。建議使用與
主鍵可以是資料表上的一或多個資料欄,Oracle 連接器需要這些資料欄,才能判斷是否需要插入或更新資料列。
選取包含非空值的資料欄,這些值在資料表的所有資料列中都是不重複的。建議您使用包含系統產生的 ID、不重複的參照代碼 (例如自動遞增 ID) 或不可變動的時間序列 ID 的資料欄。
為避免資料遺失或損毀,您選取的主鍵資料欄必須具有不重複的值。如果您對所選主鍵欄的唯一性有疑慮,建議改用附加寫入模式。
增量擷取行為
在資料來源中變更資料表結構定義時,這些資料表的增量資料移轉作業會以以下方式反映在 BigQuery 中:
資料類型對應
下表列出 Oracle 資料類型對應的 BigQuery 資料類型:
| Oracle 資料類型 | BigQuery 資料類型 |
|---|---|
BFILE |
BYTES |
BINARY_DOUBLE |
FLOAT |
BINARY_FLOAT |
FLOAT |
BLOB |
BYTES |
CHAR |
STRING |
CLOB |
STRING |
DATE |
DATETIME |
FLOAT |
FLOAT |
INTERVAL DAY TO SECOND |
STRING |
INTERVAL YEAR TO MONTH |
STRING |
LONG |
STRING |
LONG RAW |
BYTES |
NCHAR |
STRING |
NCLOB |
STRING |
NUMBER (without precision and scale) |
STRING |
NUMBER (with precision and scale lower than the BigQuery Numeric range) |
NUMERIC |
NUMBER (with precision and scale lower than the BigQuery BigNumeric range) |
BIGNUMERIC |
NUMBER (with precision and scale greater than the BigQuery BigNumeric range) |
STRING |
NVARCHAR2 |
STRING |
RAW |
BYTES |
ROWID |
STRING |
TIMESTAMP |
DATETIME |
TIMESTAMP WITH LOCAL TIME ZONE |
DATETIME |
TIMESTAMP WITH TIME ZONE |
TIMESTAMP |
UROWID |
STRING |
VARCHAR |
STRING |
VARCHAR2 |
STRING |
轉移中繼資料
您也可以使用 Oracle 連接器將中繼資料轉移至 Knowledge Catalog。詳情請參閱「將 Oracle 中繼資料載入 Knowledge Catalog」。定價
如要瞭解 Oracle 移轉作業的定價資訊,請參閱「資料移轉服務定價」。
後續步驟
- 瞭解如何設定 Oracle 轉移作業。
- 進一步瞭解 BigQuery 資料移轉服務。