Plugin sumber batch Cloud Storage memungkinkan Anda membaca data dari bucket Cloud Storage dan memasukkannya ke Cloud Data Fusion untuk pemrosesan dan transformasi lebih lanjut. Fungsi ini memungkinkan Anda memuat data dari beberapa format file, termasuk yang berikut:
- Terstruktur: CSV, Avro, Parquet, ORC
- Semi-terstruktur: JSON, XML
- Lainnya: Teks, Biner
Sebelum memulai
Cloud Data Fusion biasanya memiliki dua akun layanan:
- Akun layanan waktu desain: Cloud Data Fusion API Service Agent
- Akun layanan waktu eksekusi: Akun Layanan Compute Engine
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 , berikan peran atau izin IAM berikut ke Akun Layanan Compute Engine:
- Storage Legacy Bucket Reader (
roles/storage.legacyBucketReader
). Peran bawaan ini berisi izinstorage.buckets.get
yang diperlukan. Storage Object Viewer (
roles/storage.legacyBucketReader
). Peran yang telah ditentukan sebelumnya ini berisi izin yang diperlukan berikut:storage.objects.get
storage.objects.list
Mengonfigurasi plugin
- Buka antarmuka web Cloud Data Fusion dan klik Studio.
- Pastikan Data Pipeline - Batch dipilih (bukan Real-Time).
- Di menu Source, klik GCS. Node Cloud Storage akan muncul di pipeline Anda.
- Untuk mengonfigurasi sumber, buka node Cloud Storage, lalu klik Properties.
Masukkan properti berikut. Untuk mengetahui daftar lengkapnya, lihat Properti.
- Masukkan Label untuk node Cloud Storage—misalnya,
Cloud Storage tables
. 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:
- Tetap nonaktifkan Gunakan koneksi.
- Di kolom Project ID, biarkan nilainya sebagai deteksi otomatis.
Di kolom Service account type, biarkan nilainya sebagai 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:
- Aktifkan Gunakan koneksi.
- Klik Jelajahi koneksi.
Klik nama koneksi—misalnya, Cloud Storage Default.
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.
Di kolom Reference name, masukkan nama yang akan digunakan untuk lineage—misalnya,
data-fusion-gcs-campaign
.Di kolom Path, masukkan jalur yang akan dibaca—misalnya,
gs://BUCKET_PATH
.Di kolom Format, pilih salah satu format file berikut untuk data yang dibaca:
- avro
- blob (format blob memerlukan skema yang berisi kolom bernama isi dari jenis byte)
- csv
- dibatasi
- json
- parquet
- text (format teks memerlukan skema yang berisi kolom bernama isi dari string jenis)
- tsv
- Nama plugin format yang telah Anda deploy di lingkungan Anda
Opsional: untuk menguji konektivitas, klik Dapatkan skema.
Opsional: di kolom Sample size, masukkan baris maksimum untuk memeriksa jenis data yang dipilih—misalnya,
1000
.Opsional: di kolom Ganti, masukkan nama kolom dan jenis datanya masing-masing yang akan dilewati.
Opsional: masukkan Properti lanjutan, seperti ukuran pemisahan minimum atau filter jalur ekspresi reguler (lihat Properti).
Opsional: di kolom Nama bucket sementara, masukkan nama untuk bucket Cloud Storage.
- Masukkan Label untuk node Cloud Storage—misalnya,
Opsional: klik Validasi dan perbaiki error yang ditemukan.
Klik Close. Properti disimpan dan Anda dapat terus mem-build pipeline data di Cloud Data Fusion Studio.
Properti
Properti | Makro diaktifkan | Properti wajib | Deskripsi |
---|---|---|---|
Label | Tidak | Ya | Nama node di pipeline data Anda. |
Menggunakan koneksi | Tidak | Tidak | Jelajahi koneksi yang dapat digunakan kembali ke sumber. Untuk 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. |
ID Project | Ya | Tidak | Hanya digunakan jika Gunakan koneksi dinonaktifkan. ID unik secara global untuk project. Default-nya adalah auto-detect . |
Jenis akun layanan | Ya | Tidak | Pilih salah satu opsi berikut:
|
Service account file path | Ya | Tidak | Hanya digunakan jika nilai Jenis akun layanan adalah Jalur file. Jalur di sistem file lokal kunci akun layanan
yang digunakan untuk otorisasi. Jika tugas berjalan di cluster Dataproc,
tetapkan nilai ke deteksi otomatis. Jika tugas berjalan pada jenis cluster lain, file tersebut harus ada di setiap node dalam cluster. Default-nya 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 metadata anotasi dan garis keturunan. |
Jalur | 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 berupa salah satu dari berikut ini:
|
Ukuran sampel | Ya | Tidak | Jumlah maksimum baris yang diselidiki untuk deteksi jenis data otomatis. Defaultnya adalah 1000. |
Ganti | Ya | Tidak | Daftar kolom dengan data yang sesuai yang akan dilewati deteksi jenis data otomatis. |
Pemisah | Ya | Tidak | Pemisah yang akan digunakan saat format dibatasi. Properti ini diabaikan untuk format lainnya. |
Mengaktifkan nilai yang diapit tanda kutip | Ya | Tidak | Apakah akan memperlakukan konten di antara tanda kutip sebagai nilai. Properti ini
hanya digunakan untuk format csv, tsv, atau
delimited. Misalnya, jika properti ini ditetapkan ke
true, kode berikut akan menghasilkan dua kolom: 1, "a, b, c" .
Kolom pertama memiliki 1 sebagai nilainya. Yang kedua memiliki
a, b, c . Karakter tanda petik akan dipotong. Pemisah baris baru tidak boleh berada dalam tanda kutip.Plugin mengasumsikan tanda petik diapit 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 teks, csv,
tsv, dan dibatasi. Defaultnya adalah Salah. |
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 ekspresi reguler | 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, pemfilteran file tidak akan dilakukan. Untuk informasi selengkapnya tentang sintaksis ekspresi reguler, lihat Pola. |
Kolom jalur | Ya | Tidak | Kolom output untuk menempatkan jalur file tempat data dibaca. Jika tidak ditentukan, jalur tidak akan disertakan dalam data output. Jika ditentukan, kolom harus ada dalam skema output sebagai string. |
Nama file jalur saja | Ya | Tidak | Jika properti Kolom jalur ditetapkan, hanya gunakan nama file,
bukan URI jalur. Defaultnya adalah False. |
Membaca file secara rekursif | Ya | Tidak | Apakah file akan dibaca secara berulang dari jalur. Defaultnya adalah False. |
Mengizinkan input kosong | Ya | Tidak | Apakah akan mengizinkan jalur input yang tidak berisi data. Jika disetel ke
False, plugin akan mengalami error saat tidak ada data untuk
dibaca. Jika disetel ke True, tidak ada error yang ditampilkan dan tidak ada
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. |
Akhiran file metadata enkripsi | Ya | Tidak | Akhiran nama file untuk file metadata enkripsi. Default-nya 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 ditetapkan, properti Kolom jalur 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 Autentikasi Tambahan yang dienkode Base64 yang digunakan dalam enkripsi. |
key set |
Objek JSON yang mewakili 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 selanjutnya
- Pelajari lebih lanjut plugin di Cloud Data Fusion.