每當您需要從資料庫讀取資料時,就能使用這個通用來源。舉例來說,您可以使用這項功能為一般資料庫表格建立每日快照,並將輸出內容寫入 BigQuery。
設定外掛程式
- 前往 Cloud Data Fusion 網頁介面,然後按一下「Studio」。
- 確認已選取「資料管道 - 批次」 (而非「即時」)。
- 在「來源」選單中,按一下「資料庫」。
- 如要設定外掛程式,請將游標懸停在外掛程式節點上,然後按一下「Properties」。
輸入下列屬性。如要進一步瞭解各項屬性,請參閱「屬性」。
- 輸入資料庫節點的標籤,例如
database tables
。 輸入連線詳細資料。您可以設定新的一次性連線,或現有的可重複使用的連線。
新連結
如要新增一次性資料庫連線,請按照下列步驟操作:
- 關閉「Use connection」。
- 輸入下列連線屬性:
- 在 JDBC 驅動程式名稱欄位中,輸入驅動程式名稱 (如果有)。否則請保留「No JDBC plugins」的選取狀態。
- 在「連線字串」欄位中輸入 JDBC 連線字串,包括資料庫名稱。
- 選用:如果資料庫需要驗證,請輸入資料庫使用者名稱和密碼憑證。
- 選用:如果 JDBC 驅動程式需要額外設定,請在「連線引數」欄位中,輸入連線的鍵/值引數。
可重複使用的連線
如要重複使用現有的連線,請按照下列步驟操作:
- 開啟「Use connection」。
- 按一下「瀏覽連線」。
選取連線來源。
選用步驟:如果沒有連線,且您想要建立可重複使用的新連線,請按一下「新增連線」,然後參閱本頁「新連線」分頁中的步驟。
選用:如要測試連線能力,請按一下「取得架構」。系統會使用這個結構定義,取代查詢傳回的任何結構定義。它必須與查詢傳回的結構定義相符,但您可以將欄位標示為可為空值,且可包含部分欄位。
在「Import query」欄位中,輸入
SELECT
查詢,以便從指定資料表匯入資料,例如select id, name, email, phone from users;
。選用:在「Bounding query」欄位中輸入要讀取的最小值和最大值,例如
SELECT * FROM table WHERE $CONDITIONS
。選用:在「依據欄位名稱分割」欄位中,輸入產生分割項目的欄位名稱。
選用:在「要產生的分割次數」欄位中輸入數字,例如
2
。選用步驟:在「Fetch size」欄位中輸入數字,例如
1000
。選用:輸入進階屬性,例如變更欄名稱的大小寫。
- 輸入資料庫節點的標籤,例如
選用步驟:按一下「驗證」,然後修正所有錯誤。
按一下「關閉」。系統會儲存屬性,您可以繼續在 Cloud Data Fusion Studio 中建構資料管道。
屬性
屬性 | 已啟用巨集 | 必填 | 說明 |
---|---|---|---|
標籤 | 否 | 是 | 資料管道中的節點名稱。 |
使用連線 | 否 | 否 | 瀏覽來源連線。如果選取「Use connection」,您就不需要提供憑證。 |
連線 | 是 | 是 | 要使用的連線名稱。如果選取「Use connection」,這個欄位就會顯示。資料庫和資料表資訊是由連線提供。 |
JDBC 驅動程式名稱 | 是 | 是 | 要使用的 JDBC 驅動程式。 預設值為「No JDBC plugins」。 |
連線字串 | 是 | 是 | JDBC 連線字串,包括資料庫名稱。 |
使用者名稱 | 是 | 否 | 連線至資料庫的使用者身分。需要驗證的資料庫必須提供此值。對於不需要驗證的資料庫,此屬性為選用。 |
密碼 | 是 | 否 | 連線至指定資料庫時要使用的密碼。這是需要驗證的資料庫的必要項目。對於不需要驗證的資料庫,此屬性為選用。 |
連線引數 | 是 | 否 | 任意字串標記/值組合清單,做為連線引數。對於需要額外設定的 JDBC 驅動程式,這些引數會以以下格式傳遞至 JDBC 驅動程式做為連線引數:key1=value1;key2=value 。 |
參照名稱 | 否 | 是 | 這個來源的名稱可用於唯一識別譜系和標註中繼資料。通常是資料表或檢視表的名稱。 |
取得結構定義 | 否 | 否 | 來源輸出的記錄結構定義。可用來取代查詢傳回的結構定義。它必須與查詢傳回的結構定義相符,但可讓您將欄位標示為可為空值,且可包含部分欄位。 |
匯入查詢 | 是 | 是 | SELECT 查詢,用於從指定資料表匯入資料。您可以指定要匯入的任意欄數,也可以使用 * 匯入所有欄。查詢應包含 $CONDITIONS 字串。例如 SELECT * FROM table WHERE $CONDITIONS 。$CONDITIONS 字串會由 Bounding query 欄位中指定的 splitBy 欄位限制取代。如果「分割次數」欄位設為 1,則不需要 $CONDITIONS 字串。 |
邊界查詢 | 是 | 否 | 邊界查詢,會傳回分割欄的值的最小值和最大值。例如 SELECT MIN(id),MAX(id) FROM table 。如果分割數量設為 1,則不需要。 |
依欄位名稱分割 | 是 | 否 | 用於產生分割項目的欄位名稱。如果要產生的分割數量設為 1,則不需要這項屬性。 |
要產生的分割數量 | 是 | 否 | 要產生的分割數量。 預設值為 1。 |
擷取大小 | 是 | 否 | 每次分割時要擷取的資料列數。擷取大小越大,匯入速度就越快,但記憶體用量也會隨之增加。 預設值為 1000。 |
啟用自動提交功能 | 否 | 否 | 是否要為此來源執行的查詢啟用自動提交功能。除非您使用的是會在執行提交作業時導致錯誤的 JDBC 驅動程式,否則請將此屬性設為 False。 預設值為 False。 |
資料欄名稱大小寫 | 是 | 否 | 設定查詢傳回的資料欄名稱大小寫。您可以選擇大寫或小寫字母。根據預設或任何其他輸入內容,系統不會修改資料欄名稱,而是使用資料庫傳回的字母大小寫。設定這個屬性可在不同資料庫之間預測資料欄名稱的大小寫,但如果忽略大小寫,當多個資料欄名稱相同時,可能會導致資料欄名稱發生衝突。 預設值為「無變更」。 |
交易隔離等級 | 是 | 否 | 此匯入項目執行查詢的交易隔離等級。詳情請參閱 setTransactionIsolation() 。如果 Phoenix 資料庫未啟用交易,且此欄位設為 true ,Phoenix JDBC 驅動程式就會擲回例外狀況。對於這類駕駛人,請將這個欄位設為 TRANSACTION_NONE 。預設為 TRANSACTION_SERIALIZABLE。 |
要取代的模式 | 否 | 否 | 在資料表中要取代的欄位名稱模式 (通常會搭配「取代為」屬性使用)。如果未設定 Replace with 屬性,系統會從欄位名稱中移除模式。 |
取代為 | 否 | 否 | 在資料表中,用來取代欄位名稱的字串。您也必須設定「Pattern to replace」欄位。 |
輸出結構定義 | 否 | 否 | 指定輸出結構定義。輸出記錄中只會包含結構定義中的資料欄。 |
最佳做法
檢查資料庫是否有更專門的外掛程式。舉例來說,如果您有 Oracle 資料庫來源,請改用 Oracle 資料庫批次來源外掛程式,因為它是專為與 Oracle 結構定義搭配使用而設計。
後續步驟
- 進一步瞭解 Cloud Data Fusion 中的外掛程式。