Menyelam ke dalam Pipelines Data – Dasar-dasar Teknik Data

Pipeline info yang dibangun dengan baik melakukan lebih dari sekadar mengekstrak info dari sumber dan memuatnya ke dalam tabel database yang dapat dikelola atau document datar untuk digunakan analis. Mereka melakukan beberapa langkah dengan information mentah, termasuk pembersihan, struktur, normalisasi, penggabungan, agregasi, dan sebagainya. Pipeline information juga membutuhkan aktivitas lain seperti pemantauan, pemeliharaan, peningkatan, dan dukungan berbagai infrastruktur.

Gambar two: Alur kerja pipeline info.

Mungkin tidak ada pola yang dikenal sebagai ETL dan saudara kandungnya yang lebih contemporary, ELT. Keduanya adalah pola yang banyak digunakan dalam pergudangan information dan intelijen bisnis. Mereka telah mendorong pola pipeline untuk sains information dan version pembelajaran mesin yang berjalan dalam produksi dalam beberapa tahun terakhir.

Kedua pola adalah pendekatan untuk pemrosesan info yang digunakan untuk memasukkan info ke dalam gudang info dan membuat information berguna bagi analis dan alat pelaporan. Langkah ekstrak mengumpulkan info dari berbagai sumber untuk persiapan pemuatan dan transformasi. Langkah pemuatan membawa information mentah (dalam kasus ELT) atau info yang sepenuhnya ditransformasikan (dalam kasus ETL) ke tujuan akhir – langkah transformasi, di mana information mentah dari setiap sistem sumber digabungkan dan diformat untuk membantu analis, alat visualisasi, atau kasus penggunaan apa pun yang dilayani oleh pipeline kami.

Kombinasi dari langkah ekstraksi dan pemuatan sering disebut sebagai penyerapan data.

Istilah penyerapan information mengacu pada mengekstrak information dari satu sumber dan memuatnya ke sumber lain. Penyerapan information terjadi secara real time, dalam batch, atau dalam kombinasi dua (juga disebut arsitektur lambda).

Saat information diserap secara berkelompok, pekerjaan dijadwalkan secara teratur dalam period. Ini berinteraksi dan berkomunikasi dengan beberapa sumber, membutuhkan beberapa jenis antarmuka dan struktur info yang berbeda.

Berikut ini adalah antarmuka penyerapan dan struktur info yang paling umum:

Platform Pemrosesan Streaming: RabbitMQ, Kafka.Databases: Database Postgres, MySQL, HDFS, atau HBase. Gudang information atau information lake.JSON, CSV, REST API. Sistem document jaringan bersama atau bucket penyimpanan cloud. Gambar 3: Tumpukan teknologi berbeda.

Mengekstrak Data dari Database MySQL

Kami dapat mengekstrak info dari database MySQL dengan beberapa cara berbeda:

Ekstraksi penuh atau inkremental menggunakan replikasi SQLBinary Log (juga dikenal sebagai binlog)

Ekstraksi Penuh atau Tambahan menggunakan SQL

Ekstraksi penuh atau inkremental menggunakan SQL mudah diterapkan tetapi kurang skalabel untuk kumpulan info besar dengan perubahan yang sering.

Saat kita perlu mencerna semua atau sebagian kolom dari tabel MySQL ke dalam information warehouse atau information lake, kita dapat menggunakan ekstraksi penuh atau ekstraksi inkremental.

Setiap rekaman dalam tabel diekstraksi pada setiap proses ekstraksi, tabel quantity tinggi membutuhkan waktu lama untuk dijalankan.

Replikasi Log Biner (binlog)

Replikasi Log biner lebih kompleks untuk diterapkan, lebih cocok untuk kasus di mana volume information perubahan dalam tabel sumber tinggi, atau ada kebutuhan untuk penyerapan data yang lebih sering dari sumber MySQL. Ini juga merupakan jalur untuk membuat penyerapan information flowing [2].

Gambar 4: SQL di cloud kata.

Orkestrasi memastikan bahwa langkah-langkah dalam pipeline dijalankan dengan benar dan dependensi di antara langkah-langkah ini dikelola dengan tepat. Langkah pipeline selalu diarahkan, yang artinya dimulai dengan satu tugas atau beberapa tugas dan diakhiri dengan tugas atau tugas tertentu. Hal tersebut diperlukan untuk menjamin jalur eksekusi. Dengan kata lain, ini memastikan bahwa tugas tidak dijalankan sebelum semua tugas dependennya berhasil diselesaikan.

Grafik pipeline juga harus asiklik, artinya tugas tidak dapat mengarah kembali ke tugas yang telah diselesaikan sebelumnya. Dengan kata lain, itu tidak bisa berputar kembali. Jika bisa, maka pipa bisa berjalan tanpa henti.

Gambar 5: Langkah-langkah dalam retrieval info.

Misalnya, Apache Airflow adalah alat orkestrator tugas pipeline info sumber terbuka yang telah dibuat untuk memecahkan tantangan sehari-hari yang dihadapi oleh tim teknik info: cara membangun, mengelola, dan memantau alur kerja yang melibatkan banyak tugas dengan ketergantungan bersama.

Aliran udara memiliki opsi konfigurasi yang sangat baik, seperti:

Penjadwal, Pelaksana, Operator.

Tampilan grafik ETL DAG (Airflow):

Gambar 5: Langkah HARI.

Implementasi kode DAG:

dari datetime import timedelta
dari aliran udara impor DAG
dari airflow.operators.bash_operator
impor BashOperator
dari airflow.operators.postgres_operator
impor PostgresOperator
dari airflow.utils.dates import days_ago

day = DAY (
‘elt_pipeline_sample’,
description =’Contoh pipa ELT’,
schedule_interval = timedelta (hari = 1),
start_date = days_ago (1),
)

extract_orders_task = BashOperator (
task_id =’extract_order_data’,
bash_command =’python /p/extract_orders.py’,
day daily,
)

extract_customers_task = BashOperator (
task_id =’extract_customer_data’,
bash_command =’python /p/extract_customers.py’,
day daily,
)

load_orders_task = BashOperator (
task_id =’load_order_data’,
bash_command =’python /p/load_orders.py’,
day daily,
)

load_customers_task = BashOperator (
task_id =’load_customer_data’,
bash_command =’python /p/load_customers.py’,
day daily,
)

revenue_model_task = PostgresOperator (
task_id =’build_data_model’,
postgres_conn_id =’redshift_dw’,
sql =’/ sql / order_revenue_model.sql’, respectively
day daily,
)

extract_orders_task >> load_orders_task
extract_customers_task >> load_customers_task
load_orders_task >> revenue_model_task
load_customers_task >> revenue_model_task

Tentu saja, bahkan dalam pipeline info dengan desain terbaik, ada yang tidak beres. Beberapa masalah dapat dihindari, atau setidaknya dimitigasi, dengan desain proses, orkestrasi, dan infrastruktur yang hebat. Validasi info juga merupakan langkah penting untuk memastikan kualitas dan validitas info karena info yang belum diuji tidak aman digunakan dalam analitik.

Mendapatkan masalah kualitas information di akhir pipeline dan menelusurinya kembali ke awal adalah situasi kasus terburuk. Dengan memvalidasi setiap langkah dalam pipeline, kami lebih cenderung menemukan akar masalah pada langkah saat ini daripada langkah sebelumnya.

Dalam peningkatan masalah kualitas dalam sistem sumber, ada kemungkinan proses penyerapan information itu sendiri mengakibatkan masalah kualitas data. Ini adalah beberapa risiko penyerapan information umum atau langkah pemuatan penyerapan

Kesalahan logika dalam penyerapan bertahap. Masalah penguraian dalam file yang diekstrak. Gambar 5: Langkah-langkah validasi info.

Memvalidasi information di setiap langkah pipeline sangatlah penting. Meskipun information sumber lolos validasi yang dimulai di pipeline, menjalankan validasi pada version info yang dibuat di akhir pipeline selalu merupakan praktik yang baik.

Langkah-langkah berikut mewakili cara untuk memeriksa proses ini:

Memastikan metrik berada dalam batas bawah dan atas tertentu.Meninjau pertumbuhan jumlah baris (atau pengurangan) dalam version data.Memeriksa untuk melihat apakah ada ketidakkekalan yang tidak terduga dalam nilai metrik tertentu.

Skrip Python dapat ditulis untuk melakukan validasi info, juga ada beberapa kerangka kerja yang tersedia:

dbt: Ini adalah alat baris perintah yang memungkinkan analis information dan insinyur mengubah info di gudang mereka secara lebih efektif.