Sumber batch Cloud Storage

Halaman ini memberikan panduan tentang cara mengonfigurasi plugin sumber batch Cloud Storage di Cloud Data Fusion.

Plugin sumber batch Cloud Storage memungkinkan Anda membaca data dari bucket Cloud Storage dan membawanya ke Cloud Data Fusion untuk diproses dan diubah lebih lanjut. Fungsi ini memungkinkan Anda memuat data dari beberapa format file, termasuk berikut ini:

  • Terstruktur: CSV, Avro, Parquet, ORC
  • Semi-terstruktur: JSON, XML
  • Lainnya: Teks, Biner

Sebelum memulai

Cloud Data Fusion biasanya memiliki dua akun layanan:

Sebelum menggunakan plugin sumber batch Cloud Storage, berikan peran atau izin berikut ke setiap akun layanan.

Cloud Data Fusion API Service Agent

Akun layanan ini sudah memiliki semua izin yang diperlukan dan Anda tidak perlu menambahkan izin tambahan.

Akun Layanan Compute Engine

Di project Google Cloud Anda, berikan peran atau izin IAM berikut kepada Akun Layanan Compute Engine:

  • Storage Legacy Bucket Reader (roles/storage.legacyBucketReader). Peran bawaan ini berisi izin storage.buckets.get yang diperlukan.
  • Storage Object Viewer (roles/storage.legacyBucketReader). Peran yang telah ditentukan ini berisi izin wajib berikut:

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

Mengonfigurasi plugin

  1. Buka antarmuka web Cloud Data Fusion lalu klik Studio.
  2. Pastikan Data Pipeline - Batch dipilih (bukan Realtime).
  3. Di menu Source, klik GCS. Node Cloud Storage akan muncul di pipeline Anda.
  4. Untuk mengonfigurasi sumber, buka node Cloud Storage, lalu klik Properties.
  5. Masukkan properti berikut. Untuk mengetahui daftar lengkapnya, lihat Properti.

    1. Masukkan Label untuk node Cloud Storage—misalnya, Cloud Storage tables.
    2. Masukkan detail koneksi. Anda dapat menyiapkan koneksi baru satu kali, atau koneksi yang sudah ada dan dapat digunakan kembali.

      Koneksi baru

      Untuk menambahkan koneksi satu kali ke Cloud Storage, ikuti langkah-langkah berikut:

      1. Biarkan Gunakan koneksi dinonaktifkan.
      2. Di kolom Project ID, biarkan nilai sebagai deteksi otomatis.
      3. Di kolom Service account type, gunakan nilai File path dan Service account file path sebagai deteksi otomatis.

      Koneksi yang dapat digunakan kembali

      Untuk menggunakan kembali koneksi yang ada, ikuti langkah-langkah berikut:

      1. Aktifkan Gunakan koneksi.
      2. Klik Jelajahi koneksi.
      3. Klik nama koneksi—misalnya, Cloud Storage Default.

      4. Opsional: jika koneksi tidak ada dan Anda ingin membuat koneksi baru yang dapat digunakan kembali, klik Tambahkan koneksi dan lihat langkah-langkah di tab Koneksi baru di halaman ini.

    3. Di kolom Nama referensi, masukkan nama yang akan digunakan untuk silsilah—misalnya, data-fusion-gcs-campaign.

    4. Di kolom Path, masukkan jalur yang akan dibaca—misalnya, gs://BUCKET_PATH.

    5. Di kolom Format, pilih salah satu format file berikut untuk data yang sedang dibaca:

      • avro
      • blob (format blob memerlukan skema yang berisi kolom bernama body dengan jenis byte)
      • csv
      • dibatasi
      • json
      • parket
      • text (format teks memerlukan skema yang berisi kolom bernama body dengan jenis string)
      • tsv
      • Nama plugin format yang telah Anda deploy di lingkungan Anda
    6. Opsional: untuk menguji konektivitas, klik Dapatkan skema.

    7. Opsional: di kolom Ukuran sampel, masukkan jumlah maksimum baris yang akan diperiksa untuk jenis data yang dipilih—misalnya, 1000.

    8. Opsional: di kolom Ganti, masukkan nama kolom dan jenis datanya masing-masing untuk dilewati.

    9. Opsional: masukkan Properti lanjutan, seperti ukuran pemisahan minimum atau filter jalur ekspresi reguler (lihat Properti).

    10. Opsional: di kolom Temporary bucket name, masukkan nama untuk bucket Cloud Storage.

  6. Opsional: klik Validasi dan atasi error yang ditemukan.

  7. Klik Close. Properti disimpan dan Anda dapat melanjutkan pembangunan pipeline data di Cloud Data Fusion Studio.

Properti

Properti Makro diaktifkan Properti wajib Deskripsi
Label Tidak Ya Nama node dalam pipeline data Anda.
Menggunakan koneksi Tidak Tidak Jelajahi koneksi yang dapat digunakan kembali ke sumber. Untuk mengetahui informasi selengkapnya tentang cara menambahkan, mengimpor, dan mengedit koneksi yang muncul saat Anda menjelajahi koneksi, lihat Mengelola koneksi.
Koneksi Ya Ya Jika Gunakan koneksi diaktifkan, nama koneksi yang dapat digunakan kembali yang Anda pilih akan muncul di kolom ini.
Project ID Ya Tidak Hanya digunakan saat Gunakan koneksi dinonaktifkan. ID unik secara global untuk project.
Defaultnya adalah auto-detect.
Jenis akun layanan Ya Tidak Pilih salah satu opsi berikut:
  • Jalur file: jalur tempat akun layanan berada.
  • JSON: Konten JSON akun layanan.
Service account file path Ya Tidak Hanya digunakan jika nilai jenis Akun layanan adalah Jalur file. Jalur pada sistem file lokal kunci akun layanan yang digunakan untuk otorisasi. Jika tugas berjalan di cluster Managed Service untuk Apache Spark, tetapkan nilai ke deteksi otomatis. Jika tugas berjalan di jenis cluster lain, file harus ada di setiap node dalam cluster.
Defaultnya adalah auto-detect.
JSON akun layanan Ya Tidak Hanya digunakan jika nilai jenis Akun layanan adalah JSON. Konten file JSON akun layanan.
Nama referensi Tidak Ya Nama yang mengidentifikasi sumber ini secara unik untuk layanan lain, seperti asal-usul dan anotasi metadata.
Path Ya Ya Jalur ke file yang akan dibaca. Jika direktori ditentukan, akhiri jalur dengan garis miring terbalik (/). Misalnya, gs://bucket/path/to/directory/. Untuk mencocokkan pola nama file, Anda dapat menggunakan tanda bintang (*) sebagai karakter pengganti. Jika tidak ada file yang ditemukan atau cocok, pipeline akan gagal.
Format Tidak Ya Format data yang akan dibaca. Formatnya harus salah satu dari berikut ini:
  • avro
  • blob (format blob memerlukan skema yang berisi kolom bernama body dengan jenis byte)
  • csv
  • dibatasi
  • json
  • parket
  • text (format teks memerlukan skema yang berisi kolom bernama body dengan jenis string)
  • tsv
  • Nama plugin format apa pun yang telah Anda deploy di lingkungan Anda
  • Jika formatnya adalah makro, hanya format yang sudah dikemas sebelumnya yang dapat digunakan
Ukuran sampel Ya Tidak Jumlah maksimum baris yang diselidiki untuk deteksi jenis data otomatis. Defaultnya adalah 1000.
Mengganti Ya Tidak Daftar kolom dengan data terkait yang pendeteksian jenis datanya secara otomatis dilewati.
Pembatas Ya Tidak Pembatas yang akan digunakan jika formatnya adalah delimited. Properti ini diabaikan untuk format lainnya.
Aktifkan nilai yang dikutip Ya Tidak Apakah konten di antara tanda kutip akan diperlakukan sebagai nilai. Properti ini hanya digunakan untuk format csv, tsv, atau delimited. Misalnya, jika properti ini ditetapkan ke true, output berikut akan menampilkan dua kolom: 1, "a, b, c". Kolom pertama memiliki 1 sebagai nilainya. Yang kedua memiliki a, b, c. Karakter tanda petik akan dipangkas. Pembatas baris baru tidak boleh berada dalam tanda petik.
Plugin mengasumsikan tanda petik disertakan dengan benar, misalnya, "a, b, c". Tidak menutup tanda kutip ("a,b,c,) akan menyebabkan error.
Nilai defaultnya adalah False.
Gunakan baris pertama sebagai header Ya Tidak Apakah akan menggunakan baris pertama setiap file sebagai header kolom. Format yang didukung adalah text, csv, tsv, dan delimited.
Defaultnya adalah False.
Ukuran pemisahan minimum Ya Tidak Ukuran minimum, dalam byte, untuk setiap partisi input. Partisi yang lebih kecil meningkatkan tingkat paralelisme, tetapi memerlukan lebih banyak resource dan overhead.
Jika nilai Format adalah blob, Anda tidak dapat memisahkan data.
Ukuran pemisahan maksimum Ya Tidak Ukuran maksimum, dalam byte, untuk setiap partisi input. Partisi yang lebih kecil meningkatkan tingkat paralelisme, tetapi memerlukan lebih banyak resource dan overhead.
Jika nilai Format adalah blob, Anda tidak dapat memisahkan data.
Defaultnya adalah 128 MB.
Filter jalur Regex Ya Tidak Ekspresi reguler yang harus cocok dengan jalur file agar disertakan dalam input. Jalur lengkap dibandingkan, bukan hanya nama file. Jika tidak ada file yang diberikan, tidak ada pemfilteran file yang dilakukan. Untuk mengetahui informasi selengkapnya tentang sintaksis ekspresi reguler, lihat Pola.
Kolom jalur Ya Tidak Kolom output untuk menempatkan jalur file yang dibaca dari data. Jika tidak ditentukan, jalur tidak disertakan dalam rekaman output. Jika ditentukan, kolom harus ada dalam skema output sebagai string.
Path filename only Ya Tidak Jika properti Kolom jalur ditetapkan, gunakan hanya nama file dan bukan URI jalur.
Defaultnya adalah False.
Membaca file secara rekursif Ya Tidak Apakah file akan dibaca secara rekursif dari jalur.
Defaultnya adalah False.
Izinkan input kosong Ya Tidak Apakah akan mengizinkan jalur input yang tidak berisi data. Jika disetel ke False, plugin akan error jika tidak ada data yang dibaca. Jika disetel ke True, tidak ada error yang ditampilkan dan nol data yang dibaca.
Defaultnya adalah False.
File data dienkripsi Ya Tidak Apakah file dienkripsi. Untuk mengetahui informasi selengkapnya, lihat Enkripsi file data.
Defaultnya adalah False.
Sufiks file metadata enkripsi Ya Tidak Akhiran nama file untuk file metadata enkripsi.
Defaultnya adalah metadata.
Properti sistem file Ya Tidak Properti tambahan yang akan digunakan dengan InputFormat saat membaca data.
Encoding file Ya Tidak Encoding karakter untuk file yang akan dibaca.
Defaultnya adalah UTF-8.
Skema output Ya Tidak Jika properti Path field ditetapkan, properti tersebut harus ada dalam skema sebagai string.

Enkripsi file data

Bagian ini menjelaskan properti Enkripsi file data. Jika Anda menyetelnya ke true, file akan didekripsi menggunakan Streaming AEAD yang disediakan oleh library Tink. Setiap file data harus disertai dengan file metadata yang berisi informasi cipher. Misalnya, file data terenkripsi di gs://BUCKET/PATH_TO_DIRECTORY/file1.csv.enc harus memiliki file metadata di gs://BUCKET/ PATH_TO_DIRECTORY/file1.csv.enc.metadata. File metadata berisi objek JSON dengan properti berikut:

Properti Deskripsi
kms URI Cloud Key Management Service yang digunakan untuk mengenkripsi Kunci Enkripsi Data.
aad Data Tambahan yang Diautentikasi yang dienkode Base64 yang digunakan dalam enkripsi.
key set Objek JSON yang merepresentasikan informasi keyset yang diserialisasi dari library Tink.

Contoh

    /* 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"

      }

    }
    

Catatan rilis

Langkah berikutnya