Cloud Storage 批次來源

本頁面提供相關指引,說明如何在 Cloud Data Fusion 中設定 Cloud Storage 批次來源外掛程式。

您可以使用 Cloud Storage 批次來源外掛程式,從 Cloud Storage bucket 讀取資料,並匯入 Cloud Data Fusion 進行後續處理和轉換。可讓您載入多種檔案格式的資料,包括:

  • 結構化:CSV、Avro、Parquet、ORC
  • 半結構化:JSON、XML
  • 其他:文字、二進位

事前準備

Cloud Data Fusion 通常有兩個服務帳戶:

使用 Cloud Storage 批次來源外掛程式前,請將下列角色或權限授予每個服務帳戶。

Cloud Data Fusion API 服務代理

這個服務帳戶已具備所有必要權限,因此不需要新增其他權限。

Compute Engine 服務帳戶

在 Google Cloud 專案中,將下列 IAM 角色或權限授予 Compute Engine 服務帳戶:

  • Storage 舊版 bucket 讀取者 (roles/storage.legacyBucketReader)。這個預先定義的角色包含必要的 storage.buckets.get 權限。
  • Storage 物件檢視者 (roles/storage.legacyBucketReader)。這個預先定義的角色包含下列必要權限:

    • storage.objects.get
    • storage.objects.list

設定外掛程式

  1. 前往 Cloud Data Fusion 網頁介面,然後點選「Studio」
  2. 確認已選取「Data Pipeline - Batch」(資料管道 - 批次),而非「Realtime」(即時)
  3. 在「來源」選單中,點選「GCS」。Cloud Storage 節點會顯示在管道中。
  4. 如要設定來源,請前往 Cloud Storage 節點,然後按一下「Properties」(屬性)
  5. 輸入下列屬性。如需完整清單,請參閱「屬性」。

    1. 輸入 Cloud Storage 節點的標籤,例如 Cloud Storage tables
    2. 輸入連線詳細資料。您可以設定新的單次連線,或是現有的可重複使用連線。

      新連結

      如要新增與 Cloud Storage 的一次性連線,請按照下列步驟操作:

      1. 請關閉「使用連線」
      2. 保留「專案 ID」欄位中的自動偵測值。
      3. 在「服務帳戶類型」欄位中,將值保留為「檔案路徑」,並將「服務帳戶檔案路徑」保留為自動偵測。

      可重複使用的連線

      如要重複使用現有連線,請按照下列步驟操作:

      1. 開啟「使用連線」
      2. 按一下「Browse connections」(瀏覽連線)
      3. 按一下連線名稱,例如「Cloud Storage Default」

      4. 選用:如果沒有連線,且您想建立新的可重複使用連線,請按一下「新增連線」,然後參閱本頁面「新連線」分頁中的步驟。

    3. 在「Reference name」(參照名稱) 欄位中,輸入要用於沿襲的名稱,例如 data-fusion-gcs-campaign

    4. 在「Path」(路徑) 欄位中,輸入要讀取的路徑,例如 gs://BUCKET_PATH

    5. 在「格式」欄位中,選取要讀取資料的下列其中一種檔案格式:

      • avro
      • blob (blob 格式需要包含名為 body 的欄位,且類型為位元組的結構定義)
      • csv
      • delimited
      • json
      • parquet
      • text (文字格式需要包含名為 body 的欄位,且類型為字串的結構定義)
      • tsv
      • 您在環境中部署的任何格式外掛程式名稱
    6. 選用:如要測試連線,請按一下「取得架構」

    7. 選用:在「樣本大小」欄位中,輸入要檢查所選資料類型的最大列數,例如 1000

    8. 選用:在「Override」(覆寫) 欄位中,輸入要略過的資料欄名稱和各自的資料類型。

    9. 選用:輸入進階屬性,例如最小分割大小或規則運算式路徑篩選器 (請參閱「屬性」)。

    10. 選用:在「Temporary bucket name」(暫時 bucket 名稱) 欄位中,輸入 Cloud Storage bucket 的名稱。

  6. 選用:按一下「驗證」,並修正所有錯誤。

  7. 按一下「關閉」。系統會儲存屬性,您可以在 Cloud Data Fusion Studio 中繼續建構資料管道。

屬性

屬性 含巨集功能 必要屬性 說明
標籤 資料管道中的節點名稱。
使用連線 瀏覽可重複使用的來源連線。如要進一步瞭解如何新增、匯入及編輯瀏覽連線時顯示的連線,請參閱「管理連線」。
連結 如果開啟「使用連線」,這個欄位會顯示您選取的重複使用連線名稱。
專案 ID 僅在關閉「使用連線」時使用。專案的全域專屬 ID。
預設值為 auto-detect
服務帳戶類型 選取下列其中一個選項:
  • 檔案路徑:服務帳戶所在的路徑。
  • JSON:服務帳戶的 JSON 內容。
服務帳戶檔案路徑 只有當服務帳戶類型值為「檔案路徑」時,才會使用這個值。用於授權的服務帳戶金鑰在本機檔案系統中的路徑。如果工作是在 Managed Service for Apache Spark 叢集上執行, 請將值設為自動偵測。如果工作在其他類型的叢集上執行,則叢集中的每個節點都必須有該檔案。
預設值為 auto-detect
服務帳戶 JSON 僅在「服務帳戶類型」值為 JSON 時使用。 服務帳戶的 JSON 檔案內容。
參照名稱 這個名稱可供其他服務 (例如沿襲和註解中繼資料) 專屬識別這個來源。
路徑 要讀取檔案的路徑。如果指定目錄,請以反斜線 (/) 終止路徑。例如:gs://bucket/path/to/directory/。如要比對檔案名稱模式,可以使用星號 (*) 做為萬用字元。如果找不到或沒有相符的檔案,管道就會失敗。
格式 要讀取的資料格式。格式必須為下列其中一種:
  • avro
  • blob (blob 格式需要包含名為 body 的欄位,且類型為位元組的結構定義)
  • csv
  • delimited
  • json
  • parquet
  • text (文字格式需要包含名為 body 的欄位 (類型為字串) 的結構定義)
  • tsv
  • 您在環境中部署的任何格式外掛程式名稱
  • 如果格式為巨集,只能使用預先封裝的格式
樣本大小 系統會調查的列數上限,以自動偵測資料類型。預設值為 1000
覆寫 系統會略過自動偵測資料類型,並列出對應資料的資料欄。
分隔符號 格式為「分隔」時使用的分隔符號。其他格式會忽略這項屬性。
啟用引用值 是否將引號之間的內容視為值。這個屬性僅適用於 csvtsv分隔格式。舉例來說,如果這項屬性設為 true,下列輸出內容會包含兩個欄位:1, "a, b, c"。第一個欄位的值為 1。第二個具有 a, b, c。引號字元會遭到截斷。換行分隔符號不得位於引號內。
外掛程式會假設引號已正確括住,例如 "a, b, c"。如果沒有關閉引號 ("a,b,c,),就會發生錯誤。
預設值為 False
使用第一列做為標題 是否將每個檔案的第一行做為資料欄標題。支援的格式包括文字CSVTSV分隔
預設值為 False
最低分割大小 每個輸入分區的最小大小 (以位元組為單位)。較小的分割區會提高平行處理層級,但需要更多資源和額外負擔。
如果「格式」值為 blob,您就無法分割資料。
分割大小上限 每個輸入分割區的大小上限 (以位元組為單位)。較小的分割區會提高平行處理層級,但需要更多資源和額外負擔。
如果「格式」值為 blob,您就無法分割資料。
預設值為 128 MB
規則運算式路徑篩選器 檔案路徑必須符合的規則運算式,才能納入輸入內容。系統會比較完整路徑,而不只是檔案名稱。如果未提供任何檔案,系統就不會篩選檔案。如要進一步瞭解規則運算式語法,請參閱模式
路徑欄位 輸出欄位,用於放置記錄讀取來源檔案的路徑。如未指定,輸出記錄中不會包含路徑。如果指定這個值,則欄位必須以字串形式存在於輸出結構定義中。
僅限路徑檔案名稱 如果已設定「路徑欄位」屬性,請只使用檔案名稱,不要使用路徑的 URI。
預設值為 False
以遞迴方式讀取檔案 是否要從路徑以遞迴方式讀取檔案。
預設值為 False
允許輸入空白內容 是否允許輸入路徑不含資料。如果設為 False,外掛程式會在沒有資料可讀取時發生錯誤。設為 True 時,系統不會擲回任何錯誤,且讀取的記錄為零。
預設值為 False
資料檔案已加密 檔案是否經過加密。詳情請參閱「資料檔案加密」。
預設值為 False
加密中繼資料檔案後置字串 加密中繼資料檔案的檔案名稱後置字串。
預設值為 metadata
檔案系統屬性 讀取資料時,要搭配 InputFormat 使用的額外屬性。
檔案編碼 要讀取檔案的字元編碼。
預設值為 UTF-8
輸出內容結構定義 如果設定了「路徑欄位」屬性,則必須以字串形式出現在結構定義中。

資料檔案加密

本節說明「資料檔案加密」屬性。如果設為 true,系統會使用 Tink 程式庫提供的串流 AEAD 解密檔案。每個資料檔案都必須隨附中繼資料檔案,其中包含密碼資訊。舉例來說,gs://BUCKET/PATH_TO_DIRECTORY/file1.csv.enc 的加密資料檔案必須有 gs://BUCKET/ PATH_TO_DIRECTORY/file1.csv.enc.metadata 的中繼資料檔案。中繼資料檔案包含具有下列屬性的 JSON 物件:

屬性 說明
kms 用來加密資料加密金鑰的 Cloud Key Management Service URI。
aad 加密時使用的 Base64 編碼額外驗證資料。
key set JSON 物件,代表 Tink 程式庫中序列化的金鑰組資訊。

範例

    /* Counting example */
    {

      "kms": "gcp-kms://projects/my-key-project/locations/us-west1/keyRings/my-key-ring/cryptoKeys/mykey",

      "aad": "73iT4SUJBM24umXecCCf3A==",

      "keyset": {

          "keysetInfo": {

              "primaryKeyId": 602257784,

              "keyInfo": [{

                  "typeUrl": "type.googleapis.com/google.crypto.tink.AesGcmHkdfStreamingKey",

                  "outputPrefixType": "RAW",

                  "keyId": 602257784,

                  "status": "ENABLED"

              }]

          },

          "encryptedKeyset": "CiQAz5HH+nUA0Zuqnz4LCnBEVTHS72s/zwjpcnAMIPGpW6kxLggSrAEAcJKHmXeg8kfJ3GD4GuFeWDZzgGn3tfolk6Yf5d7rxKxDEChIMWJWGhWlDHbBW5B9HqWfKx2nQWSC+zjM8FLefVtPYrdJ8n6Eg8ksAnSyXmhN5LoIj6az3XBugtXvCCotQHrBuyoDY+j5ZH9J4tm/bzrLEjCdWAc+oAlhsUAV77jZhowJr6EBiyVuRVfcwLwiscWkQ9J7jjHc7ih9HKfnqAZmQ6iWP36OMrEn"

      }

    }
    

版本資訊

後續步驟