Memproses data menggunakan template

Dataplex menyediakan template, yang didukung oleh Dataflow, untuk melakukan tugas pemrosesan data umum seperti penyerapan, pemrosesan, dan pengelolaan data siklus proses. Panduan ini menjelaskan cara mengonfigurasi dan menjalankan template pemrosesan data.

Sebelum memulai

Template Dataplex didukung oleh Dataflow. Sebelum Anda menggunakan template, aktifkan Dataflow API.

Mengaktifkan Dataflow API

Notes

  • Semua template mendukung Opsi pipeline Dataflow umum.

  • Dataplex menggunakan pipeline data untuk menjadwalkan tugas yang ditentukan oleh template.

  • Anda hanya dapat melihat tugas yang Anda jadwalkan melalui Dataplex di halaman Dataplex konsol Google Cloud.

Template: Mengonversi data mentah menjadi data hasil seleksi

Template konversi format file Dataplex mengonversi data dalam aset Cloud Storage Dataplex, atau daftar entity Dataplex yang disimpan dalam format CSV atau JSON, menjadi data format Parquet atau Avro dalam aset Dataplex lainnya. Tata letak partisi dipertahankan dalam konversi. Juga mendukung kompresi file {i>output<i}.

Parameter template

Parameter Deskripsi
inputAssetOrEntitiesList Aset Dataplex atau entity Dataplex yang berisi file input. Parameter ini harus mengikuti format: projects/<name>/locations/<loc>/lakes/<lake-name>/zones/<zone-name>/assets/<asset-name> atau projects/<name>/locations/<loc>/lakes/<lake-name>/zones/<zone-name>/entities/<entity1-name>,projects/<name>/locations/<loc>/lakes/<lake-name>/zones/<zone-name>/entities/<entity 2 name>...
outputFileFormat Format file output di Cloud Storage. Parameter ini harus mengikuti format: PARQUET atau AVRO.
outputAsset Nama aset Dataplex yang berisi bucket Cloud Storage tempat file output akan disimpan. Parameter ini harus mengikuti format: projects/<name>/locations/<loc>/lakes/<lake-name>/zones/<zone-name>/assets/<asset-name>. Anda dapat menemukan outputAsset di Konsol Google Cloud, di tab Details aset Dataplex.
outputFileCompression Opsional: Kompresi file output. Nilai default untuk parameter ini adalah SNAPPY. Nilai lain untuk parameter ini dapat berupa UNCOMPRESSED, SNAPPY, GZIP, atau BZIP2. BZIP2 tidak didukung untuk file PARQUET.
writeDisposition Opsional: Menentukan tindakan yang terjadi jika file tujuan sudah ada. Nilai default untuk parameter ini adalah SKIP, yang menandakan untuk hanya memproses file yang tidak ada di direktori tujuan. Nilai lain untuk parameter ini dapat berupa OVERWRITE (menimpa file yang ada) atau FAIL (jangan memproses apa pun dan menghasilkan error jika setidaknya satu file tujuan sudah ada).
updateDataplexMetadata

Opsional: Apakah akan memperbarui metadata Dataplex untuk entity yang baru dibuat atau tidak. Nilai default untuk parameter ini adalah false.

Jika diaktifkan, pipeline akan otomatis menyalin skema dari sumber ke entitas Dataplex tujuan, dan Dataplex Discovery otomatis tidak akan berjalan untuk entitas tersebut. Gunakan tanda ini jika skema data sumber (mentah) dikelola oleh Dataplex.

Menjalankan template

Konsol

  1. Di konsol Google Cloud, buka halaman Dataplex:

    Buka Dataplex

  2. Buka tampilan Process.

  3. Klik Create task.

  4. Pada bagian Konversikan ke Format Pilihan, klik Buat tugas.

  5. Pilih danau Dataplex.

  6. Berikan nama tugas.

  7. Pilih region untuk eksekusi tugas.

  8. Isi parameter yang diperlukan.

  9. Klik Lanjutkan.

gcloud

Ganti kode berikut:

JOB_NAME: a job name of your choice
PROJECT_ID: your template project ID
REGION_NAME: region in which to run the job
INPUT_ASSET_OR_ENTITIES_LIST: path to your JDBC drivers
OUTPUT_FILE_FORMAT: your output file format in Cloud Storage
OUTPUT_ASSET: your Dataplex output asset ID

Di shell atau terminal Anda, jalankan template:

gcloud beta dataflow flex-template run JOB_NAME \
--project=PROJECT_ID \
--region=REGION_NAME \
--template-file-gcs-location=gs://dataflow-templates-REGION_NAME/latest/flex/Dataplex_File_Format_Conversion_Preview \
--parameters \
inputAssetOrEntitiesList=INPUT_ASSET_OR_ENTITIES_LIST,\
outputFileFormat=OUTPUT_FILE_FORMAT,\
outputAsset=OUTPUT_ASSET

REST API

Ganti kode berikut:

PROJECT_ID: your template project ID
REGION_NAME: region in which to run the job
JOB_NAME: a job name of your choice
INPUT_ASSET_OR_ENTITIES_LIST: path to your JDBC drivers
OUTPUT_FILE_FORMAT: your output file format in Cloud Storage
OUTPUT_ASSET: your Dataplex output asset ID

Kirim permintaan POST HTTP:

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/REGION_NAME/flexTemplates:launch
{
  "launch_parameter": {
    "jobName": "JOB_NAME",
    "parameters": {
        "inputAssetOrEntitiesList": "INPUT_ASSET_OR_ENTITIES_LIST",
        "outputFileFormat": "OUTPUT_FILE_FORMAT",
        "outputAsset": "OUTPUT_ASSET",
    },
    "containerSpecGcsPath": "gs://dataflow-templates-REGION_NAME/latest/flex/Dataplex_File_Format_Conversion_Preview",
 }
}

Template: Data tingkat dari aset BigQuery ke aset Cloud Storage

Template BigQuery Dataplex ke Cloud Storage menyalin data dari aset BigQuery Dataplex ke aset Dataplex Cloud Storage dalam tata letak dan format yang kompatibel dengan Dataplex. Anda dapat menentukan set data BigQuery atau daftar tabel BigQuery yang akan disalin. Untuk fleksibilitas tambahan, template memungkinkan penyalinan data yang lebih lama dari tanggal perubahan yang ditentukan dan memungkinkan penghapusan data secara opsional dari BigQuery setelah penyalinan berhasil.

Saat menyalin tabel yang dipartisi dari BigQuery ke Cloud Storage, template ini akan membuat partisi bergaya Hive di bucket Cloud Storage. Saat menulis ke Cloud Storage, template ini akan membuat kunci partisi baru dengan menambahkan akhiran _pid ke kolom partisi yang sudah ada. Langkah ini diperlukan agar data dapat diakses di BigQuery sebagai tabel eksternal. Saat ini, BigQuery tidak boleh memiliki kunci partisi bergaya Hive yang sama dengan kolom yang sudah ada. Akibatnya, jika tabel yang disalin dilihat dari BigQuery sebagai tabel eksternal, memiliki kolom tambahan untuk kunci partisi. Sisa data akan dipertahankan sebagaimana adanya.

Saat menyalin tabel yang dipartisi dari BigQuery ke Cloud Storage:

  • Template ini membuat partisi bergaya Hive pada bucket Cloud Storage. Saat ini, BigQuery tidak dapat memiliki kunci partisi bergaya Hive yang sama dengan kolom yang sudah ada. Anda dapat menggunakan opsi enforceSamePartitionKey untuk membuat kunci partisi baru atau mempertahankan kunci partisi yang sama, tetapi mengganti nama kolom yang ada.
  • Dataplex Discovery mendaftarkan jenis partisi sebagai string saat membuat tabel BigQuery (dan tabel di Metastore Dataproc). Hal ini dapat memengaruhi filter partisi yang sudah ada.

Ada batas jumlah tabel dan partisi yang dapat diubah dalam satu template yang dijalankan, yaitu sekitar 300. Jumlah persisnya bergantung pada panjang nama tabel dan faktor lainnya.

Parameter template

Parameter Deskripsi
sourceBigQueryDataset Set data BigQuery yang menjadi asal pembagian data. Parameter ini harus berisi nama aset Dataplex dalam format projects/<name>/locations/<loc>/lakes/<lake-name>/zones/<zone-name>/assets/<asset-name> atau ID set data BigQuery dalam format projects/<name>/datasets/<dataset-id>.
destinationStorageBucketAssetName Nama aset Dataplex untuk bucket Cloud Storage yang menjadi tujuan tingkatan data. Parameter ini harus mengikuti format projects/<name>/locations/<loc>/lakes/<lake-name>/zones/<zone-name>/assets/<asset-name>.
tables Opsional: Daftar tabel BigQuery yang dipisahkan koma untuk tingkatan. Jika tidak ada daftar yang diberikan, semua tabel akan dibuat bertingkat. Tabel harus ditentukan hanya berdasarkan namanya (tanpa awalan project/set data) dan peka huruf besar/kecil.
exportDataModifiedBeforeDateTime Opsional: Gunakan parameter ini untuk memindahkan data yang lebih lama dari tanggal ini (dan waktu opsional). Untuk tabel BigQuery yang dipartisi, pindahkan partisi yang terakhir diubah sebelum tanggal/waktu ini. Untuk tabel yang tidak dipartisi, pindahkan jika tabel terakhir diubah sebelum tanggal/waktu ini. Jika tidak ditentukan, pindahkan semua tabel/partisi. Tanggal/waktu diuraikan dalam zona waktu default secara default, tetapi akhiran opsional Z dan +HH:mm didukung. Parameter ini harus mengikuti format YYYY-MM-DD atau YYYY-MM-DDTHH:mm:ss atau YYYY-MM-DDTHH:mm:ss+03:00. Tanggal/waktu relatif juga didukung, dan harus mengikuti format -PnDTnHnMn.nS (harus diawali dengan -P, yang menunjukkan waktu di masa lalu).
fileFormat Opsional: Format file output di Cloud Storage. Nilai default untuk parameter ini adalah PARQUET. Nilai lain untuk parameter ini dapat berupa AVRO.
fileCompression Opsional: Kompresi file output. Nilai default untuk parameter ini adalah SNAPPY. Nilai lain untuk parameter ini dapat berupa UNCOMPRESSED, SNAPPY, GZIP, atau BZIP2. BZIP2 tidak didukung untuk file PARQUET.
deleteSourceData Opsional: Apakah akan menghapus data sumber dari BigQuery setelah ekspor berhasil. Nilai dapat berupa true atau false. Nilai default untuk parameter ini adalah false.
partitionIdRegExp Opsional: Proses partisi dengan ID partisi yang cocok dengan ekspresi reguler ini saja. Jika tidak ada nilai yang diberikan, parameter ini akan diproses secara default untuk memproses semua.
writeDisposition Opsional: Menentukan tindakan yang terjadi jika file tujuan sudah ada, yang berarti satu atau beberapa tabel/partisi telah dibuat bertingkat. Nilai default untuk parameter ini adalah SKIP, yang menandakan untuk hanya memproses tabel/partisi yang belum bertingkat. Nilai lain untuk parameter ini dapat berupa OVERWRITE (menimpa file yang ada) atau FAIL (jangan memproses apa pun dan menghasilkan error jika setidaknya satu file tujuan sudah ada).
enforceSamePartitionKey

Opsional: Apakah akan menerapkan kunci partisi yang sama atau tidak. Karena keterbatasan BigQuery, kunci partisi (di jalur file) di tabel eksternal yang dipartisi tidak dapat memiliki nama yang sama dengan salah satu kolom dalam file tersebut. Jika parameter ini bernilai benar (true) (yang merupakan nilai default), kunci partisi file target akan ditetapkan ke nama kolom partisi asli dan nama kolom dalam file tersebut akan diganti. Jika nilainya adalah salah (false), kunci partisi akan diganti namanya.

Misalnya, jika tabel asli dipartisi pada kolom bernama TS dan enforceSamePartitionKey=true, maka jalur file tujuan adalah gs://<bucket>/TS=<partition ID>/<file> dan kolom diganti namanya menjadi TS_pkey dalam file tersebut. Dengan cara ini, kueri yang ada dapat dijalankan dengan partisi yang sama, baik di tabel lama maupun yang baru.

Jika enforceSamePartitionKey=false, maka jalur file tujuan adalah gs://<bucket>/TS_pid=<partition ID>/<file>, tetapi nama kolom disimpan sebagai TS dalam file.

updateDataplexMetadata

Opsional: Apakah akan memperbarui metadata Dataplex untuk entity yang baru dibuat atau tidak. Nilai default untuk parameter ini adalah false.

Jika diaktifkan, pipeline akan otomatis menyalin skema dari sumber ke entitas Dataplex tujuan, dan Dataplex Discovery otomatis tidak akan berjalan untuk entitas tersebut. Gunakan flag ini jika Anda mengelola skema tabel BigQuery sumber.

Menjalankan template

Konsol

  1. Di konsol Google Cloud, buka halaman Dataplex:

    Buka Dataplex

  2. Buka tampilan Process.

  3. Klik Create Task.

  4. Di bagian Tier from BQ to GCS Assets, klik Create task.

  5. Pilih danau Dataplex.

  6. Berikan nama tugas.

  7. Pilih region untuk eksekusi tugas.

  8. Isi parameter yang diperlukan.

  9. Klik Lanjutkan.

gcloud

Ganti kode berikut:

JOB_NAME: a job name of your choice
PROJECT_ID: your template project ID
REGION_NAME: region in which to run the job
SOURCE_ASSET_NAME_OR_DATASET_ID: your Dataplex asset
name for the source BigQuery dataset, or the dataset ID
DESTINATION_ASSET_NAME: your Dataplex asset name for
the destination Cloud Storage bucket

Di shell atau terminal Anda, jalankan template:

gcloud beta dataflow flex-template run JOB_NAME \
--project=PROJECT_ID \
--region=REGION_NAME \
--template-file-gcs-location=gs://dataflow-templates-REGION_NAME/latest/flex/Dataplex_BigQuery_to_GCS_Preview \
--parameters \
sourceBigQueryDataset=SOURCE_ASSET_NAME_OR_DATASET_ID,\
destinationStorageBucketAssetName=DESTINATION_ASSET_NAME

REST API

Ganti kode berikut:

PROJECT_ID: your template project ID
REGION_NAME: region in which to run the job
JOB_NAME: a job name of your choice
SOURCE_ASSET_NAME_OR_DATASET_ID: your Dataplex asset
name for the source BigQuery dataset, or the dataset ID
DESTINATION_ASSET_NAME: your Dataplex asset name for
the destination Cloud Storage bucket
REGION_NAME: region in which to run the job

Kirim permintaan POST HTTP:

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/REGION_NAME/flexTemplates:launch
{
 "launch_parameter": {
    "jobName": "JOB_NAME",
    "parameters": {
        "sourceBigQueryDataset": "SOURCE_ASSET_NAME_OR_DATASET_ID",
        "destinationStorageBucketAssetName": "DESTINATION_ASSET_NAME",
    },
    "containerSpecGcsPath": "gs://dataflow-templates-REGION_NAME/latest/flex/Dataplex_BigQuery_to_GCS_Preview",
 }
}

Menjadwalkan template Dataflow kustom atau yang disediakan Google Cloud lainnya

Dengan Dataplex, Anda dapat menjadwalkan dan memantau template Dataflow yang disediakan Google Cloud atau template Dataflow kustom Anda di konsol.

Jadwal

Konsol

  1. Di konsol Google Cloud, buka halaman Dataplex:

    Buka Dataplex

  2. Buka tampilan Process.

  3. Klik Create Task.

  4. Di bagian Menulis pipeline Dataflow, klik Buat pipeline Dataflow.

  5. Pilih danau Dataplex.

  6. Berikan nama tugas.

  7. Pilih region tempat menjalankan tugas.

  8. Pilih template Dataflow.

  9. Isi parameter yang diperlukan.

  10. Klik Lanjutkan.

Memantau

Konsol

  1. Di konsol Google Cloud, buka halaman Dataplex:

    Buka Dataplex

  2. Buka tampilan Process.

  3. Klik Pipeline Dataflow.

  4. Filter menurut nama lake atau pipeline.