Dokumen ini memberikan ringkasan deployment pipeline dan menyoroti beberapa operasi yang dapat Anda lakukan pada pipeline yang di-deploy.
Menjalankan pipeline
Setelah membuat dan menguji pipeline Apache Beam, jalankan pipeline. Anda dapat menjalankan pipeline secara lokal, yang memungkinkan Anda menguji dan men-debug pipeline Apache Beam, atau di Dataflow, sistem pemrosesan data yang tersedia untuk menjalankan pipeline Apache Beam.
Menjalankan secara lokal
Jalankan pipeline Anda secara lokal.
Java
Kode contoh berikut, yang diambil dari quickstart, menunjukkan cara menjalankan pipeline WordCount secara lokal. Untuk mempelajari lebih lanjut, lihat cara menjalankan pipeline Java secara lokal.
Di terminal, jalankan perintah berikut:
mvn compile exec:java \ -Dexec.mainClass=org.apache.beam.examples.WordCount \ -Dexec.args="--output=counts"
Python
Contoh kode berikut, yang diambil dari quickstart, menunjukkan cara menjalankan pipeline WordCount secara lokal. Untuk mempelajari lebih lanjut, lihat cara menjalankan pipeline Python secara lokal.
Di terminal, jalankan perintah berikut:
python -m apache_beam.examples.wordcount \ --output outputs
Go
Contoh kode berikut, yang diambil dari quickstart, menunjukkan cara menjalankan pipeline WordCount secara lokal. Untuk mempelajari lebih lanjut, lihat cara menjalankan pipeline Go secara lokal.
Di terminal, jalankan perintah berikut:
go run wordcount.go --input gs://dataflow-samples/shakespeare/kinglear.txt \ --output outputs
Pelajari cara menjalankan pipeline secara lokal, di komputer Anda, menggunakan runner langsung.
Berjalan di Dataflow
Jalankan pipeline Anda di Dataflow.
Java
Contoh kode berikut, yang diambil dari quickstart, menunjukkan cara menjalankan pipeline WordCount di Dataflow. Untuk mempelajari lebih lanjut, lihat cara menjalankan pipeline Java di Dataflow.
Di terminal, jalankan perintah berikut (dari direktori word-count-beam
):
mvn -Pdataflow-runner compile exec:java \ -Dexec.mainClass=org.apache.beam.examples.WordCount \ -Dexec.args="--project=PROJECT_ID \ --gcpTempLocation=gs://BUCKET_NAME/temp/ \ --output=gs://BUCKET_NAME/output \ --runner=DataflowRunner \ --region=REGION"
Ganti kode berikut:
PROJECT_ID
: project ID Google Cloud AndaBUCKET_NAME
: nama bucket Cloud Storage AndaREGION
: Region Dataflow, sepertius-central1
Python
Contoh kode berikut, yang diambil dari quickstart, menunjukkan cara menjalankan pipeline WordCount di Dataflow. Untuk mempelajari lebih lanjut, lihat cara menjalankan pipeline Python di Dataflow.
Di terminal, jalankan perintah berikut:
python -m apache_beam.examples.wordcount \ --region DATAFLOW_REGION \ --input gs://dataflow-samples/shakespeare/kinglear.txt \ --output gs://STORAGE_BUCKET/results/outputs \ --runner DataflowRunner \ --project PROJECT_ID \ --temp_location gs://STORAGE_BUCKET/tmp/
Ganti kode berikut:
DATAFLOW_REGION
: region tempat Anda ingin men-deploy tugas Dataflow—misalnya,europe-west1
Flag
--region
akan mengganti region default yang ditetapkan di server metadata, klien lokal, atau variabel lingkungan.STORAGE_BUCKET
: nama Cloud Storage yang Anda salin sebelumnyaPROJECT_ID
: project ID Google Cloud yang Anda salin sebelumnya
Go
Contoh kode berikut, yang diambil dari quickstart, menunjukkan cara menjalankan pipeline WordCount di Dataflow. Untuk mempelajari lebih lanjut, lihat cara menjalankan pipeline Go di Dataflow.
Di terminal, jalankan perintah berikut:
posix-terminal go run wordcount.go --input gs://dataflow-samples/shakespeare/kinglear.txt \ --output gs://STORAGE_BUCKET/results/outputs \ --runner dataflow \ --project PROJECT_ID \ --region DATAFLOW_REGION \ --staging_location gs://STORAGE_BUCKET/binaries/
Ganti kode berikut:
STORAGE_BUCKET
: Nama bucket Cloud Storage.PROJECT_ID
: project ID Google Cloud.DATAFLOW_REGION
: Region tempat Anda ingin men-deploy tugas Dataflow. Misalnya,europe-west1
. Untuk mengetahui daftar lokasi yang tersedia, lihat Lokasi Dataflow. Perhatikan bahwa flag--region
akan menggantikan region default yang ditetapkan di server metadata, klien lokal, atau variabel lingkungan.
Pelajari cara menjalankan pipeline di layanan Dataflow, menggunakan runner Dataflow.
Saat Anda menjalankan pipeline di Dataflow, Dataflow akan mengubah kode pipeline Apache Beam menjadi tugas Dataflow. Dataflow sepenuhnya mengelola layanan Google Cloud untuk Anda, seperti Compute Engine dan Cloud Storage untuk menjalankan tugas Dataflow, dan secara otomatis mengaktifkan dan menonaktifkan resource yang diperlukan. Anda dapat mempelajari lebih lanjut cara Dataflow mengubah kode Apache Beam menjadi tugas Dataflow di Siklus proses pipeline.
Validasi pipeline
Saat Anda menjalankan pipeline di Dataflow, sebelum tugas diluncurkan, Dataflow akan melakukan pengujian validasi pada pipeline. Jika pengujian validasi menemukan masalah pada pipeline, Dataflow akan gagal mengirimkan tugas lebih awal. Dalam log tugas, Dataflow menyertakan pesan dengan teks berikut. Setiap pesan juga menyertakan detail tentang temuan validasi dan petunjuk untuk menyelesaikan masalah.
The preflight pipeline validation failed for job JOB_ID.
Pengujian validasi yang dijalankan bergantung pada resource dan layanan yang digunakan oleh tugas Dataflow Anda.
- Jika Service Usage API diaktifkan untuk project Anda, pengujian validasi pipeline akan memeriksa apakah layanan yang diperlukan untuk menjalankan tugas Dataflow diaktifkan.
- Jika Cloud Resource Manager API diaktifkan untuk project Anda, pengujian validasi pipeline akan memeriksa apakah Anda memiliki konfigurasi tingkat project yang diperlukan untuk menjalankan tugas Dataflow.
Untuk informasi selengkapnya tentang cara mengaktifkan layanan, lihat Mengaktifkan dan menonaktifkan layanan.
Untuk mengetahui informasi tentang cara menyelesaikan masalah izin yang terdeteksi selama validasi pipeline, lihat Validasi pipeline gagal.
Jika Anda ingin mengganti validasi pipeline dan meluncurkan tugas dengan error validasi, gunakan opsi layanan pipeline berikut:
Java
--dataflowServiceOptions=enable_preflight_validation=false
Python
--dataflow_service_options=enable_preflight_validation=false
Go
--dataflow_service_options=enable_preflight_validation=false
Menetapkan opsi pipeline
Anda dapat mengontrol beberapa aspek cara Dataflow menjalankan tugas dengan menetapkan opsi pipeline dalam kode pipeline Apache Beam. Misalnya, Anda dapat menggunakan opsi pipeline untuk menetapkan apakah pipeline berjalan di virtual machine pekerja, di backend layanan Dataflow, atau secara lokal.
Mengelola dependensi pipeline
Banyak pipeline Apache Beam yang dapat berjalan menggunakan lingkungan runtime Dataflow default. Namun, beberapa kasus penggunaan pemrosesan data mendapatkan manfaat dari penggunaan library atau class tambahan. Dalam kasus ini, Anda mungkin perlu mengelola dependensi pipeline. Untuk informasi selengkapnya tentang cara mengelola dependensi, lihat Mengelola dependensi pipeline di Dataflow.
Memantau tugas Anda
Dataflow memberikan visibilitas ke tugas Anda melalui alat seperti antarmuka pemantauan Dataflow dan antarmuka command line Dataflow.
Mengakses VM pekerja
Anda dapat melihat instance VM untuk pipeline tertentu menggunakan konsol Google Cloud. Dari sana, Anda dapat menggunakan SSH untuk mengakses setiap instance. Namun, setelah tugas Anda selesai atau gagal, layanan Dataflow akan otomatis dimatikan dan membersihkan instance VM.
Pengoptimalan tugas
Selain mengelola resource Google Cloud, Dataflow secara otomatis menjalankan dan mengoptimalkan banyak aspek pemrosesan paralel terdistribusi untuk Anda.
Paralelisasi dan distribusi
Dataflow secara otomatis membagi data Anda dan mendistribusikan kode pekerja ke instance Compute Engine untuk pemrosesan paralel. Untuk mengetahui informasi selengkapnya, lihat paralelisasi dan distribusi.
Pengoptimalan penggabungan dan penggabungan
Dataflow menggunakan kode pipeline untuk membuat
grafik eksekusi yang mewakili PCollection
dan transformasi pipeline,
serta mengoptimalkan grafik untuk mendapatkan performa dan penggunaan resource yang paling efisien.
Dataflow juga secara otomatis mengoptimalkan operasi yang berpotensi mahal, seperti agregasi data. Untuk informasi selengkapnya, lihat Pengoptimalan Fusion dan Kombinasi pengoptimalan.
Fitur penyesuaian otomatis
Layanan Dataflow mencakup beberapa fitur yang menyediakan penyesuaian langsung alokasi resource dan partisi data. Fitur ini membantu Dataflow menjalankan tugas Anda secepat dan seefisien mungkin. Fitur ini mencakup hal berikut:
Streaming Engine
Secara default, runner pipeline Dataflow menjalankan langkah-langkah pipeline streaming Anda sepenuhnya di mesin virtual pekerja, yang menggunakan CPU, memori, dan penyimpanan Persistent Disk pekerja. Streaming Engine Dataflow memindahkan eksekusi pipeline dari VM pekerja ke backend layanan Dataflow. Untuk informasi selengkapnya, lihat Streaming Engine.
Penjadwalan Resource Fleksibel Dataflow
Dataflow FlexRS mengurangi biaya pemrosesan batch dengan menggunakan teknik penjadwalan lanjutan, layanan Dataflow Shuffle, dan kombinasi instance virtual machine (VM) preemptible dan VM reguler. Dengan menjalankan VM preemptible dan VM reguler secara paralel, Dataflow akan meningkatkan pengalaman pengguna jika Compute Engine menghentikan instance VM preemptible selama peristiwa sistem. FlexRS membantu memastikan bahwa pipeline terus mengalami progres dan Anda tidak kehilangan pekerjaan sebelumnya saat Compute Engine menghentikan VM preemptible Anda. Untuk mengetahui informasi selengkapnya tentang FlexRS, lihat Menggunakan Flexible Resource Scheduling di Dataflow.
Shielded VM Dataflow
Mulai 1 Juni 2022, layanan Dataflow menggunakan VM Terlindung untuk semua pekerja. Untuk mempelajari lebih lanjut kemampuan Shielded VM, lihat Shielded VM.