Ketika rekayasa data menjadi semakin kompleks, organisasi mencari cara baru untuk menyederhanakan alur kerja pemrosesan data mereka. Banyak teknisi data saat ini menggunakan Apache Airflow untuk membangun, menjadwalkan, dan memantau saluran data mereka.
Namun, seiring dengan bertambahnya volume data, pengelolaan dan penskalaan pipeline ini bisa menjadi tugas yang berat. Alur Kerja Terkelola Amazon untuk Apache Airflow (Amazon MWAA) dapat membantu menyederhanakan proses membangun, menjalankan, dan mengelola saluran data. Dengan menyediakan Apache Airflow sebagai platform yang terkelola sepenuhnya, Amazon MWAA memungkinkan teknisi data untuk fokus membangun alur kerja data alih-alih mengkhawatirkan infrastruktur.
Saat ini, bisnis dan organisasi memerlukan cara yang hemat biaya dan efisien untuk memproses data dalam jumlah besar. Amazon EMR Tanpa Server adalah solusi hemat biaya dan terukur untuk pemrosesan data besar yang dapat menangani data dalam jumlah besar. Penyedia Amazon di Apache Airflow hadir dengan operator EMR Tanpa Server dan sudah disertakan dalam Amazon MWAA, sehingga memudahkan teknisi data untuk membangun jalur pemrosesan data yang dapat diskalakan dan andal. Anda dapat menggunakan EMR Tanpa Server untuk menjalankan tugas Spark pada data, dan menggunakan Amazon MWAA untuk mengelola alur kerja dan dependensi di antara tugas-tugas ini. Integrasi ini juga dapat membantu mengurangi biaya dengan secara otomatis menskalakan sumber daya yang diperlukan untuk memproses data.
Amazon Athena adalah layanan analitik interaktif tanpa server yang dibangun pada kerangka kerja sumber terbuka, mendukung format tabel terbuka dan file. Anda dapat menggunakan SQL standar untuk berinteraksi dengan data. Athena, layanan analitik tanpa server dan interaktif, memungkinkan hal ini tanpa perlu mengelola infrastruktur yang rumit.
Dalam postingan ini, kami menggunakan Amazon MWAA, EMR Serverless, dan Athena untuk membangun pipeline pemrosesan data end-to-end yang lengkap.
Ikhtisar solusi
Diagram berikut menggambarkan arsitektur solusi.
Alur kerja meliputi langkah-langkah berikut:
- Buat alur kerja Amazon MWAA yang mengambil data dari input Anda Layanan Penyimpanan Sederhana Amazon (Amazon S3).
- Gunakan EMR Tanpa Server untuk memproses data yang disimpan di Amazon S3. EMR Tanpa Server secara otomatis menaikkan atau menurunkan skala berdasarkan beban kerja, jadi Anda tidak perlu khawatir tentang penyediaan atau pengelolaan infrastruktur apa pun.
- Gunakan EMR Tanpa Server untuk mengubah data menggunakan kode PySpark lalu menyimpan kembali data yang diubah ke dalam bucket S3 Anda.
- Gunakan Athena untuk membuat tabel eksternal berdasarkan himpunan data S3 dan menjalankan kueri untuk menganalisis data yang diubah. Athena menggunakan Lem AWS Katalog Data untuk menyimpan metadata tabel.
Prasyarat
Anda harus memiliki prasyarat berikut:
Persiapan data
Untuk mengilustrasikan penggunaan tugas Tanpa Server EMR dengan Apache Spark melalui Amazon MWAA dan validasi data menggunakan Athena, kami menggunakan kumpulan data taksi NYC yang tersedia untuk umum. Unduh kumpulan data berikut ke mesin lokal Anda:
- Catatan perjalanan taksi hijau dan taksi kuning – Catatan perjalanan taksi kuning dan hijau, yang mencakup informasi seperti tanggal dan waktu penjemputan dan pengantaran, lokasi, jarak perjalanan, dan jenis pembayaran. Pada contoh kami, kami menggunakan file Parket terbaru tahun 2022.
- Kumpulan data untuk pencarian zona Taksi – Kumpulan data yang menyediakan ID lokasi dan detail zona terkait untuk taksi.
Pada langkah selanjutnya, kami mengunggah kumpulan data ini ke Amazon S3.
Buat sumber solusi
Bagian ini menguraikan langkah-langkah untuk menyiapkan pemrosesan dan transformasi data.
Buat aplikasi EMR Tanpa Server
Anda dapat membuat satu atau beberapa aplikasi EMR Tanpa Server yang menggunakan kerangka analitik sumber terbuka seperti Apache Spark atau Apache Hive. Berbeda dengan EMR di EC2, Anda tidak perlu menghapus atau menghentikan aplikasi EMR Serverless. Aplikasi EMR Serverless hanya sebatas definisi dan setelah dibuat, dapat digunakan kembali selama diperlukan. Hal ini membuat alur MWAA lebih sederhana karena sekarang Anda hanya perlu mengirimkan pekerjaan ke aplikasi Tanpa Server EMR yang telah dibuat sebelumnya.
Secara default, Aplikasi Tanpa Server EMR akan mulai otomatis saat penyerahan pekerjaan dan berhenti otomatis saat menganggur selama 15 menit secara default untuk memastikan efisiensi biaya. Anda dapat mengubah jumlah waktu idle atau memilih untuk mematikan fitur tersebut.
Untuk membuat aplikasi menggunakan konsol EMR Serverless, ikuti petunjuk di “Buat aplikasi EMR Tanpa Server". Catat ID aplikasi karena kami akan menggunakannya dalam langkah-langkah berikut.
Buat ember dan folder S3
Selesaikan langkah-langkah berikut untuk menyiapkan bucket dan folder S3 Anda:
- Di konsol Amazon S3, buat ember S3 untuk menyimpan kumpulan data.
- Catat nama bucket S3 yang akan digunakan pada langkah selanjutnya.
- Buat
input_data
folder untuk menyimpan data masukan. - Di dalam folder tersebut, buat tiga folder terpisah, satu untuk setiap kumpulan data:
green
,yellow
, danzone_lookup
.
Anda dapat mengunduh dan bekerja dengan kumpulan data terbaru yang tersedia. Untuk pengujian kami, kami menggunakan file berikut:
- Grafik
green/
folder memiliki filegreen_tripdata_2022-06.parquet
- Grafik
yellow/
folder memiliki fileyellow_tripdata_2022-06.parquet
- Grafik
zone_lookup/
folder memiliki filetaxi_zone_lookup.csv
Siapkan skrip Amazon MWAA DAG
Selesaikan langkah-langkah berikut untuk menyiapkan skrip DAG Anda:
- Unduh skrip berikut ke mesin lokal Anda:
- requirement.txt – Ketergantungan Python adalah paket atau distribusi apa pun yang tidak termasuk dalam instalasi dasar Apache Airflow untuk versi Apache Airflow Anda di lingkungan Amazon MWAA Anda. Untuk posting ini, kami menggunakan Boto3
version >=1.23.9
. - blog_dag_mwaa_emrs_ny_taxi.py – Skrip ini adalah bagian dari Amazon MWAA DAG dan terdiri dari tugas-tugas berikut:
yellow_taxi_zone_lookup
,green_taxi_zone_lookup
, danny_taxi_summary
,. Tugas ini melibatkan menjalankan pekerjaan Spark untuk mencari zona taksi, dan menghasilkan ringkasan data. - zona_hijau.py – Skrip PySpark ini membaca file data untuk perjalanan taksi ramah lingkungan dan pencarian zona, melakukan operasi gabungan untuk menggabungkannya, dan menghasilkan file keluaran yang berisi perjalanan taksi ramah lingkungan dengan informasi zona. Ini menggunakan tampilan sementara untuk
df_green
dandf_zone
bingkai data, melakukan penggabungan berbasis kolom, dan mengumpulkan data seperti jumlah penumpang, jarak perjalanan, dan jumlah tarif. Terakhir, ini menciptakanoutput_data
folder di bucket S3 yang ditentukan untuk menulis bingkai data yang dihasilkan,df_green_zone
, sebagai file Parket. - zona_kuning.py – Skrip PySpark ini memproses file data naik taksi kuning dan pencarian zona dengan menggabungkannya untuk menghasilkan file keluaran yang berisi naik taksi kuning dengan informasi zona. Skrip menerima nama bucket S3 yang disediakan pengguna dan memulai sesi Spark dengan nama aplikasi
yellow_zone
. Ia membaca file taksi kuning dan file pencarian zona dari bucket S3 yang ditentukan, membuat tampilan sementara, melakukan penggabungan berdasarkan ID lokasi, dan menghitung statistik seperti jumlah penumpang, jarak perjalanan, dan jumlah tarif. Terakhir, ini menciptakanoutput_data
folder di bucket S3 yang ditentukan untuk menulis bingkai data yang dihasilkan,df_yellow_zone
, sebagai file Parket. - ny_taxi_summary.py – Skrip PySpark ini memproses
green_zone
danyellow_zone
file untuk mengumpulkan statistik perjalanan taksi, mengelompokkan data berdasarkan zona layanan dan ID lokasi. Ini memerlukan nama bucket S3 sebagai argumen baris perintah, membuat nama SparkSessionny_taxi_summary
, membaca file dari S3, melakukan penggabungan, dan menghasilkan bingkai data baru bernamany_taxi_summary
. Ini membuat folder output_data di bucket S3 yang ditentukan untuk menulis bingkai data yang dihasilkan ke file Parket baru.
- requirement.txt – Ketergantungan Python adalah paket atau distribusi apa pun yang tidak termasuk dalam instalasi dasar Apache Airflow untuk versi Apache Airflow Anda di lingkungan Amazon MWAA Anda. Untuk posting ini, kami menggunakan Boto3
- Di komputer lokal Anda, perbarui
blog_dag_mwaa_emrs_ny_taxi.py
skrip dengan informasi berikut:- Perbarui nama bucket S3 Anda dalam dua baris berikut:
- Perbarui nama peran Anda ARN:
- Perbarui ID Aplikasi Tanpa Server EMR. Gunakan ID Aplikasi yang dibuat sebelumnya.
- Unggah
requirements.txt
file ke bucket S3 yang dibuat sebelumnya - Di bucket S3, buat folder bernama
dags
dan unggah yang diperbaruiblog_dag_mwaa_emrs_ny_taxi.py
file dari mesin lokal Anda. - Di konsol Amazon S3, buat folder baru bernama
scripts
di dalam bucket S3 dan unggah skrip ke folder ini dari mesin lokal Anda.
Buat lingkungan Amazon MWAA
Untuk membuat lingkungan Airflow, selesaikan langkah-langkah berikut:
- Di konsol Amazon MWAA, pilih Ciptakan lingkungan.
- Untuk Nama, Masuk
mwaa_emrs_athena_pipeline
. - Untuk Versi aliran udara, pilih versi terbaru (untuk postingan ini, 2.5.1).
- Untuk Ember S3, masukkan jalur ke bucket S3 Anda.
- Untuk folder DAG, masukkan jalur ke Anda
dags
folder. - Untuk Berkas persyaratan, masukkan jalan ke
requirements.txt
file. - Pilih Selanjutnya.
- Untuk Awan pribadi maya (VPC), pilih VPC yang memiliki minimal dua subnet privat.
Ini akan mengisi dua subnet privat di VPC Anda.
- Bawah Akses server web, pilih Jaringan publik.
Hal ini memungkinkan UI Apache Airflow diakses melalui internet oleh pengguna yang diberi akses ke Kebijakan IAM untuk lingkungan Anda.
- Untuk Grup keamanan, pilih Buat grup keamanan baru.
- Untuk Kelas lingkungan, pilih mw1.kecil.
- Untuk Peran eksekusi, pilih Buat peran baru.
- Untuk Nama peran, masukkan nama.
- Biarkan konfigurasi lainnya sebagai default dan pilih Selanjutnya.
- Di halaman berikutnya, pilih membuat lingkungan Hidup.
Mungkin diperlukan waktu sekitar 20–30 menit untuk membuat lingkungan Amazon MWAA Anda.
- Ketika status lingkungan Amazon MWAA berubah menjadi Tersedia, navigasikan ke konsol IAM dan perbarui peran eksekusi cluster untuk ditambahkan memberikan hak istimewa peran untuk
emr_serverless_execution_role
.
Memicu Amazon MWAA DAG
Untuk memicu DAG, selesaikan langkah-langkah berikut:
- Di konsol Amazon MWAA, pilih Lingkungan di panel navigasi.
- Buka lingkungan Anda dan pilih Buka UI Aliran Udara.
- Pilih
blog_dag_mwaa_emr_ny_taxi
, pilih ikon putar, dan pilih Pemicu DAG. - Saat DAG berjalan, pilih DAG
blog_dag_mwaa_emrs_ny_taxi
Dan pilihlah Grafik untuk menemukan alur kerja eksekusi DAG Anda.
DAG akan memakan waktu sekitar 4–6 menit untuk menjalankan semua skrip. Anda akan melihat semua tugas selesai dan status keseluruhan DAG akan ditampilkan sebagai sukses.
Untuk menjalankan kembali DAG, hapus s3://<<your_s3_bucket here >>/output_data/
.
Opsional, untuk memahami bagaimana Amazon MWAA menjalankan tugas-tugas ini, pilih tugas yang ingin Anda periksa.
Pilih Run untuk melihat detail tugas yang dijalankan.
Tangkapan layar berikut menunjukkan contoh log tugas.
Jika Anda ingin mendalami log eksekusi, lalu di konsol EMR Serverless, navigasikan ke “Aplikasi”. Log driver Apache Spark akan menunjukkan inisiasi pekerjaan Anda beserta detail untuk pelaksana, tahapan, dan tugas yang dibuat oleh EMR Serverless. Log ini dapat berguna untuk memantau kemajuan pekerjaan Anda dan memecahkan masalah kegagalan.
Secara default, EMR Tanpa Server akan menyimpan log aplikasi dengan aman di penyimpanan terkelola Amazon EMR untuk jangka waktu 30 hari. Namun, Anda juga bisa menentukannya Amazon S3 atau Amazon CloudWatch sebagai opsi pengiriman log Anda selama penyerahan pekerjaan.
Validasi hasil akhir yang ditetapkan dengan Athena
Mari kita validasi data yang dimuat oleh proses menggunakan kueri Athena SQL.
- Di konsol Athena, pilih Editor-kueri di panel navigasi.
- Jika Anda menggunakan Athena untuk pertama kalinya, di bawah Settings, pilih Mengelola dan masukkan lokasi bucket S3 yang telah Anda buat sebelumnya (
<S3_BUCKET_NAME>/athena
), lalu pilih Save. - Di editor kueri, masukkan kueri berikut untuk membuat tabel eksternal:
Jalankan kueri berikut pada yang baru dibuat ny_taxi_summary
tabel untuk mengambil 10 baris pertama untuk memvalidasi data:
Membersihkan
Untuk mencegah tagihan di masa mendatang, selesaikan langkah-langkah berikut:
- Di konsol Amazon S3, hapus bucket S3 yang Anda buat untuk menyimpan DAG Amazon MWAA, skrip, dan log.
- Di konsol Athena, letakkan tabel yang Anda buat:
- Di konsol Amazon MWAA, navigasikan ke lingkungan yang Anda buat dan pilih Delete.
- Di konsol EMR Studio, hapus aplikasi.
Untuk menghapus aplikasi, navigasikan ke Daftar aplikasi halaman. Pilih aplikasi yang Anda buat dan pilih Tindakan → Berhenti untuk menghentikan aplikasi. Setelah aplikasi dalam keadaan BERHENTI, pilih aplikasi yang sama dan pilih Tindakan → Hapus.
Kesimpulan
Rekayasa data adalah komponen penting di banyak organisasi, dan seiring dengan pertumbuhan volume data, penting untuk menemukan cara menyederhanakan alur kerja pemrosesan data. Kombinasi Amazon MWAA, EMR Serverless, dan Athena memberikan solusi canggih untuk membangun, menjalankan, dan mengelola pipeline data secara efisien. Dengan jalur pemrosesan data end-to-end ini, data engineer dapat dengan mudah memproses dan menganalisis data dalam jumlah besar dengan cepat dan hemat biaya tanpa perlu mengelola infrastruktur yang rumit. Integrasi layanan AWS ini memberikan solusi yang kuat dan terukur untuk pemrosesan data, membantu organisasi membuat keputusan berdasarkan wawasan data mereka.
Sekarang Anda telah melihat cara mengirimkan pekerjaan Spark di EMR Serverless melalui Amazon MWAA, kami mendorong Anda untuk menggunakan Amazon MWAA untuk membuat alur kerja yang akan menjalankan pekerjaan PySpark melalui EMR Serverless.
Kami menyambut masukan dan pertanyaan Anda. Silakan menghubungi kami jika Anda memiliki pertanyaan atau komentar.
Tentang penulis
Rahul Sonawane adalah Arsitek Solusi Analisis Utama di AWS dengan AI/ML dan Analytics sebagai bidang spesialisasinya.
Gaurav Parekh adalah Arsitek Solusi yang membantu pelanggan AWS membangun arsitektur modern berskala besar. Dia berspesialisasi dalam analisis data dan jaringan. Di luar pekerjaan, Gaurav menikmati bermain kriket, sepak bola, dan bola voli.
Riwayat Audit
Desember 2023: Postingan ini ditinjau keakuratan teknisnya oleh Santosh Gantaram, Sr. Technical Account Manager.
- Konten Bertenaga SEO & Distribusi PR. Dapatkan Amplifikasi Hari Ini.
- PlatoData.Jaringan Vertikal Generatif Ai. Berdayakan Diri Anda. Akses Di Sini.
- PlatoAiStream. Intelijen Web3. Pengetahuan Diperkuat. Akses Di Sini.
- PlatoESG. Karbon, teknologi bersih, energi, Lingkungan Hidup, Tenaga surya, Penanganan limbah. Akses Di Sini.
- PlatoHealth. Kecerdasan Uji Coba Biotek dan Klinis. Akses Di Sini.
- Sumber: https://aws.amazon.com/blogs/big-data/orchestrate-amazon-emr-serverless-spark-jobs-with-amazon-mwaa-and-data-validation-using-amazon-athena/
- :memiliki
- :adalah
- :bukan
- $NAIK
- 1
- 10
- 100
- 118
- 15%
- 16
- 2022
- 2023
- 23
- 25
- 30
- 300
- 7
- 700
- 8
- 9
- 990
- a
- Tentang Kami
- Menerima
- mengakses
- diakses
- Akun
- ketepatan
- menambahkan
- Setelah
- agregat
- AI / ML
- Semua
- memungkinkan
- sepanjang
- sudah
- juga
- Amazon
- Amazon Athena
- Amazon ESDM
- Amazon Web Services
- jumlah
- jumlah
- an
- analisis
- menganalisa
- dan
- Apa pun
- Apache
- Apache Spark
- Aplikasi
- aplikasi
- sekitar
- arsitektur
- ADALAH
- DAERAH
- argumen
- AS
- At
- secara otomatis
- tersedia
- AWS
- kembali
- mendasarkan
- berdasarkan
- BE
- menjadi
- menjadi
- antara
- Besar
- Big data
- membangun
- Bangunan
- dibangun di
- bisnis
- by
- menghitung
- CAN
- katalog
- perubahan
- Perubahan
- beban
- Pilih
- klasifikasi
- awan
- Kelompok
- kode
- kombinasi
- menggabungkan
- datang
- komentar
- lengkap
- kompleks
- komponen
- terdiri
- konsul
- terus
- Sesuai
- Biaya
- hemat biaya
- Biaya
- membuat
- dibuat
- menciptakan
- jangkrik
- kritis
- pelanggan
- DAG
- data
- Data Analytics
- pengolahan data
- kumpulan data
- Tanggal
- Hari
- keputusan
- mendalam
- Default
- definisi
- pengiriman
- ketergantungan
- Ketergantungan
- rincian
- jarak
- distribusi
- menyelam
- do
- Dont
- dua kali lipat
- turun
- Download
- pengemudi
- Menjatuhkan
- selama
- e
- setiap
- Terdahulu
- mudah
- Mudah
- editor
- efisiensi
- efisien
- efisien
- mendorong
- ujung ke ujung
- Teknik
- Insinyur
- memastikan
- Enter
- Lingkungan Hidup
- penting
- Eter (ETH)
- contoh
- eksekusi
- luar
- tambahan
- kegagalan
- Fitur
- umpan balik
- merasa
- File
- File
- terakhir
- Menemukan
- Pertama
- pertama kali
- Fokus
- mengikuti
- berikut
- Untuk
- format
- FRAME
- kerangka
- Gratis
- dari
- sepenuhnya
- masa depan
- menghasilkan
- menghasilkan
- menghasilkan
- diberikan
- Hijau
- Tumbuh
- tumbuh
- Hadoop
- menangani
- Memiliki
- he
- membantu
- bermanfaat
- membantu
- di sini
- -nya
- Sarang lebah
- Seterpercayaapakah Olymp Trade? Kesimpulan
- How To
- Namun
- HTML
- http
- HTTPS
- IAM
- ICON
- ID
- Siaga
- id
- if
- menjelaskan
- menggambarkan
- in
- memasukkan
- termasuk
- termasuk
- makin
- menunjukkan
- informasi
- informasi
- Infrastruktur
- Inisiat
- inisiasi
- memasukkan
- Pertanyaan
- dalam
- wawasan
- install
- sebagai gantinya
- instruksi
- integrasi
- berinteraksi
- interaktif
- Internet
- melibatkan
- IT
- Pekerjaan
- Jobs
- ikut
- bergabung
- Bergabung
- jpg
- hanya
- besar
- akhirnya
- kemudian
- Terbaru
- 'like'
- MEMBATASI
- baris
- baris
- lokal
- tempat
- lokasi
- mencatat
- Panjang
- mencari
- lookup
- mesin
- membuat
- MEMBUAT
- Membuat
- mengelola
- berhasil
- manajer
- pelaksana
- banyak
- Mungkin..
- Metadata
- minimum
- menit
- modern
- memodifikasi
- Memantau
- lebih
- nama
- Bernama
- Arahkan
- Navigasi
- Perlu
- dibutuhkan
- jaringan
- New
- berikutnya
- None
- sekarang
- NYC
- of
- lepas
- on
- sekali
- ONE
- hanya
- Buka
- open source
- operasi
- operator
- Opsi
- or
- organisasi
- Lainnya
- kami
- di luar
- menguraikan
- keluaran
- di luar
- lebih
- secara keseluruhan
- paket
- halaman
- pane
- bagian
- path
- pembayaran
- melakukan
- periode
- pipa saluran
- Platform
- plato
- Kecerdasan Data Plato
- Data Plato
- Bermain
- bermain
- silahkan
- kebijaksanaan
- mungkin
- Pos
- kuat
- prasyarat
- mencegah
- Utama
- swasta
- proses
- proses
- pengolahan
- Kemajuan
- pemberi
- menyediakan
- menyediakan
- di depan umum
- Ular sanca
- query
- Pertanyaan
- segera
- mencapai
- baru-baru ini
- arsip
- menurunkan
- dapat diandalkan
- menghapus
- membutuhkan
- membutuhkan
- Sumber
- mengakibatkan
- dihasilkan
- review jurnal
- Mengendarai
- wahana
- kuat
- Peran
- BARIS
- Run
- berjalan
- berjalan
- s
- sama
- terukur
- Skala
- sisik
- skala
- menjadwalkan
- naskah
- script
- Bagian
- aman
- keamanan
- melihat
- terlihat
- memilih
- terpisah
- Server
- Tanpa Server
- layanan
- Layanan
- Sidang
- set
- pengaturan
- harus
- Menunjukkan
- Pertunjukkan
- Sederhana
- menyederhanakan
- So
- Sepak bola
- larutan
- Solusi
- sumber
- percikan
- spesialisasi
- Khusus
- ditentukan
- SQL
- magang
- standar
- Negara
- statistika
- Status
- Tangga
- berhenti
- terhenti
- penyimpanan
- menyimpan
- tersimpan
- mempersingkat
- Tali
- studio
- pengajuan
- menyerahkan
- subnet
- seperti itu
- RINGKASAN
- pendukung
- tabel
- Mengambil
- tugas
- tugas
- Teknis
- sementara
- pengujian
- bahwa
- Grafik
- mereka
- Mereka
- kemudian
- Ini
- ini
- tiga
- waktu
- kali
- untuk
- hari ini
- Mengubah
- Transformasi
- berubah
- memicu
- perjalanan
- MENGHIDUPKAN
- dua
- jenis
- ui
- bawah
- memahami
- tidak seperti
- Memperbarui
- diperbarui
- us
- menggunakan
- Pengguna
- kegunaan
- menggunakan
- memanfaatkan
- MENGESAHKAN
- pengesahan
- versi
- melalui
- View
- 'view'
- volume
- volume
- ingin
- adalah
- cara
- we
- jaringan
- layanan web
- selamat datang
- adalah
- ketika
- yang
- akan
- dengan
- tanpa
- Kerja
- alur kerja
- Alur kerja
- kuatir
- mengkhawatirkan
- menulis
- kuning
- kamu
- Anda
- zephyrnet.dll
- zona