Dokumen ini memberikan ringkasan tentang deployment pipeline dan menyoroti beberapa operasi yang dapat Anda lakukan pada pipeline yang di-deploy.
Menjalankan pipeline Anda
Setelah membuat dan menguji pipeline Apache Beam, jalankan pipeline Anda. 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.
Dijalankan secara lokal
Jalankan pipeline secara lokal.
Java
Kode contoh berikut, yang diambil dari panduan memulai, menunjukkan cara menjalankan pipeline WordCount secara lokal. Untuk mempelajari lebih lanjut, lihat cara menjalankan pipeline Java secara lokal.
Di terminal Anda, jalankan perintah berikut:
mvn compile exec:java \ -Dexec.mainClass=org.apache.beam.examples.WordCount \ -Dexec.args="--output=counts"
Python
Kode contoh berikut, yang diambil dari panduan memulai, menunjukkan cara menjalankan pipeline WordCount secara lokal. Untuk mempelajari lebih lanjut, lihat cara menjalankan pipeline Python secara lokal.
Di terminal Anda, jalankan perintah berikut:
python -m apache_beam.examples.wordcount \ --output outputs
Go
Kode contoh berikut, yang diambil dari panduan memulai, menunjukkan cara menjalankan pipeline WordCount secara lokal. Untuk mempelajari lebih lanjut, lihat cara menjalankan pipeline Go secara lokal.
Di terminal Anda, 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.
Menjalankan di Dataflow
Jalankan pipeline Anda di Dataflow.
Java
Kode contoh berikut, yang diambil dari panduan memulai, menunjukkan cara menjalankan pipeline WordCount di Dataflow. Untuk mempelajari lebih lanjut, lihat cara menjalankan pipeline Java di Dataflow.
Di terminal Anda, jalankan perintah berikut (dari direktori word-count-beam
Anda):
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
Kode contoh berikut, yang diambil dari panduan memulai, menunjukkan cara menjalankan pipeline WordCount di Dataflow. Untuk mempelajari lebih lanjut, lihat cara menjalankan pipeline Python di Dataflow.
Di terminal Anda, 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
menggantikan region default yang ditetapkan di server metadata, klien lokal, atau variabel lingkungan Anda.STORAGE_BUCKET
: nama Cloud Storage yang Anda salin sebelumnyaPROJECT_ID
: project ID Google Cloud yang Anda salin sebelumnya
Go
Kode contoh berikut, yang diambil dari panduan memulai, menunjukkan cara menjalankan pipeline WordCount di Dataflow. Untuk mempelajari lebih lanjut, lihat cara menjalankan pipeline Go di Dataflow.
Di terminal Anda, 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
: ID project Google Cloud.DATAFLOW_REGION
: Region tempat Anda ingin men-deploy tugas Dataflow. Misalnya,europe-west1
. Untuk daftar lokasi yang tersedia, lihat Lokasi Dataflow. Perhatikan bahwa flag--region
menggantikan region default yang ditetapkan di server metadata, klien lokal, atau variabel lingkungan Anda.
Pelajari cara menjalankan pipeline di layanan Dataflow, menggunakan runner Dataflow.
Saat Anda menjalankan pipeline di Dataflow, Dataflow 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, serta secara otomatis memutar dan memusnahkan 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. Saat pengujian validasi menemukan masalah pada pipeline, Dataflow akan gagal mengirim 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 tugas Dataflow Anda.
- Jika Service Usage API diaktifkan untuk project Anda, pengujian validasi pipeline akan memeriksa apakah layanan yang diperlukan untuk menjalankan tugas Dataflow Anda diaktifkan.
- Jika Cloud Resource Manager API diaktifkan untuk project Anda, pengujian validasi pipeline akan memeriksa apakah Anda memiliki konfigurasi level project yang diperlukan untuk menjalankan tugas Dataflow.
Untuk mengetahui informasi selengkapnya tentang cara mengaktifkan layanan, lihat Mengaktifkan dan menonaktifkan layanan.
Untuk mengetahui informasi tentang cara menyelesaikan masalah izin yang tertangkap 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
Menyetel opsi pipeline
Anda dapat mengontrol beberapa aspek tentang cara Dataflow menjalankan tugas dengan menetapkan opsi pipeline dalam kode pipeline Apache Beam Anda. Misalnya, Anda dapat menggunakan opsi pipeline untuk menyetel apakah pipeline Anda 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 dapat memperoleh manfaat dari penggunaan library atau class tambahan. Dalam hal ini, Anda mungkin perlu mengelola dependensi pipeline Anda. Untuk mengetahui informasi selengkapnya tentang 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 dinonaktifkan dan membersihkan instance VM.
Pengoptimalan pekerjaan
Selain mengelola resource Google Cloud, Dataflow secara otomatis menjalankan dan mengoptimalkan banyak aspek pemrosesan paralel terdistribusi untuk Anda.
Paralelisasi dan distribusi
Dataflow secara otomatis mempartisi data dan mendistribusikan kode pekerja ke instance Compute Engine untuk pemrosesan paralel. Untuk mengetahui informasi selengkapnya, lihat paralelisasi dan distribusi.
Memadukan dan menggabungkan pengoptimalan
Dataflow menggunakan kode pipeline untuk membuat grafik eksekusi yang merepresentasikan PCollection
dan transformasi pipeline, serta mengoptimalkan grafik untuk penggunaan resource dan performa yang paling efisien.
Dataflow juga secara otomatis mengoptimalkan operasi yang berpotensi mahal, seperti agregasi data. Untuk mengetahui informasi selengkapnya, lihat Pengoptimalan Fusion
dan Pengoptimalan gabungan.
Fitur penyesuaian otomatis
Layanan Dataflow mencakup beberapa fitur yang menyediakan penyesuaian alokasi resource dan partisi data dengan cepat. Fitur-fitur ini membantu Dataflow mengeksekusi tugas Anda secepat dan seefisien mungkin. Fitur-fitur ini meliputi:
Mesin Streaming
Secara default, runner pipeline Dataflow mengeksekusi langkah-langkah pipeline streaming Anda sepenuhnya di virtual machine pekerja, menggunakan CPU pekerja, memori, dan penyimpanan Persistent Disk. 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 batch processing menggunakan teknik penjadwalan lanjutan, layanan Dataflow Shuffle, serta kombinasi instance preemptible virtual machine (VM) dan VM reguler. Dengan menjalankan preemptible VM dan VM reguler secara paralel, Dataflow meningkatkan pengalaman pengguna jika Compute Engine menghentikan instance preemptible VM selama peristiwa sistem. FlexRS membantu memastikan bahwa pipeline terus menghasilkan progres dan Anda tidak kehilangan pekerjaan sebelumnya saat Compute Engine melakukan preemption terhadap preemptible VM Anda. Untuk mengetahui informasi selengkapnya tentang FlexRS, lihat Menggunakan Penjadwalan Resource Fleksibel di Dataflow.
VM Terlindungi Dataflow
Mulai 1 Juni 2022, layanan Dataflow menggunakan Shielded VM untuk semua pekerja. Untuk mempelajari kapabilitas Shielded VM lebih lanjut, lihat Shielded VM.