Logo Zephyrnet

Dapatkan wawasan tentang data Amazon RDS untuk MySQL dengan integrasi zero-ETL ke Amazon Redshift | Layanan Web Amazon

Tanggal:

Amazon Relational Database Service (Amazon RDS) untuk MySQL integrasi nol-ETL dengan Pergeseran Merah Amazon adalah mengumumkan dalam pratinjau di AWS re:Invent 2023 untuk Amazon RDS for MySQL versi 8.0.28 atau lebih tinggi. Dalam postingan ini, kami memberikan panduan langkah demi langkah tentang cara memulai analisis operasional hampir real-time menggunakan fitur ini. Postingan ini merupakan kelanjutan dari seri zero-ETL yang dimulai dengan Panduan memulai untuk analisis operasional hampir real-time menggunakan integrasi Amazon Aurora zero-ETL dengan Amazon Redshift.

Tantangan

Pelanggan di berbagai industri saat ini ingin menggunakan data untuk keunggulan kompetitif mereka dan meningkatkan pendapatan serta keterlibatan pelanggan dengan menerapkan kasus penggunaan analisis hampir real-time seperti strategi personalisasi, deteksi penipuan, pemantauan inventaris, dan banyak lagi. Ada dua pendekatan umum untuk menganalisis data operasional untuk kasus penggunaan ini:

  • Analisis data yang ada di database operasional (seperti replika baca, kueri gabungan, dan akselerator analitik)
  • Pindahkan data ke penyimpanan data yang dioptimalkan untuk menjalankan kueri khusus kasus penggunaan seperti gudang data

Integrasi nol-ETL difokuskan pada penyederhanaan pendekatan yang terakhir.

Proses ekstrak, transformasi, dan muat (ETL) telah menjadi pola umum untuk memindahkan data dari database operasional ke gudang data analitik. ELT adalah tempat data yang diekstraksi dimuat apa adanya ke dalam target terlebih dahulu dan kemudian diubah. Pembangunan jaringan pipa ETL dan ELT bisa jadi mahal dan rumit untuk dikelola. Dengan beberapa titik kontak, kesalahan yang terputus-putus dalam saluran ETL dan ELT dapat menyebabkan penundaan yang lama, meninggalkan aplikasi gudang data dengan data yang basi atau hilang, yang selanjutnya menyebabkan hilangnya peluang bisnis.

Alternatifnya, solusi yang menganalisis data di tempat mungkin berfungsi dengan baik untuk mempercepat kueri pada satu database, namun solusi tersebut tidak dapat mengumpulkan data dari beberapa database operasional untuk pelanggan yang perlu menjalankan analisis terpadu.

Nol-ETL

Berbeda dengan sistem tradisional di mana data disimpan dalam satu database dan pengguna harus melakukan trade-off antara analisis terpadu dan kinerja, insinyur data kini dapat mereplikasi data dari beberapa database RDS untuk MySQL ke dalam satu gudang data Redshift untuk mendapatkan wawasan holistik di seluruh database. banyak aplikasi atau partisi. Pembaruan dalam basis data transaksional secara otomatis dan terus-menerus disebarkan ke Amazon Redshift sehingga teknisi data mendapatkan informasi terkini hampir secara real-time. Tidak ada infrastruktur yang perlu dikelola dan integrasi dapat secara otomatis ditingkatkan dan diturunkan skalanya berdasarkan volume data.

Di AWS, kami telah membuat kemajuan yang stabil untuk menghadirkan visi nol-ETL untuk hidup. Sumber berikut saat ini didukung untuk integrasi zero-ETL:

Saat Anda membuat integrasi zero-ETL untuk Amazon Redshift, Anda terus membayar database sumber yang mendasarinya dan menargetkan penggunaan database Redshift. Mengacu pada Biaya integrasi nol-ETL (Pratinjau) untuk informasi lebih lanjut.

Dengan integrasi zero-ETL dengan Amazon Redshift, integrasi tersebut mereplikasi data dari database sumber ke gudang data target. Data tersedia di Amazon Redshift dalam hitungan detik, memungkinkan Anda menggunakan fitur analitik Amazon Redshift dan kemampuan seperti berbagi data, otonomi pengoptimalan beban kerja, penskalaan konkurensi, pembelajaran mesin, dan banyak lagi. Anda dapat melanjutkan pemrosesan transaksi Anda di Amazon RDS atau Amazon Aurora sekaligus menggunakan Amazon Redshift untuk beban kerja analitik seperti pelaporan dan dasbor.

Diagram berikut menggambarkan arsitektur ini.

Diagram arsitektur AWS menampilkan contoh arsitektur zero-ETL

Ikhtisar solusi

Mari kita pertimbangkan TICKIT, situs web fiksi tempat pengguna membeli dan menjual tiket online untuk acara olahraga, pertunjukan, dan konser. Data transaksional dari situs web ini dimuat ke dalam database Amazon RDS for MySQL 8.0.28 (atau versi lebih tinggi). Analis bisnis perusahaan ingin menghasilkan metrik untuk mengidentifikasi pergerakan tiket dari waktu ke waktu, tingkat keberhasilan penjual, dan acara, tempat, dan musim terlaris. Mereka ingin mendapatkan metrik ini hampir secara real-time menggunakan integrasi zero-ETL.

Integrasi diatur antara Amazon RDS for MySQL (sumber) dan Amazon Redshift (tujuan). Data transaksional dari sumber disegarkan hampir secara real-time di tujuan, yang memproses kueri analitis.

Anda dapat menggunakan opsi tanpa server atau klaster RA3 terenkripsi untuk Amazon Redshift. Untuk postingan ini, kami menggunakan database RDS yang disediakan dan gudang data yang disediakan Redshift.

Diagram berikut menggambarkan arsitektur tingkat tinggi.

Arsitektur zero-ETL tingkat tinggi untuk kasus penggunaan data TICKIT

Berikut ini adalah langkah-langkah yang diperlukan untuk menyiapkan integrasi zero-ETL. Langkah-langkah ini dapat dilakukan secara otomatis oleh wizard zero-ETL, namun Anda memerlukan restart jika wizard mengubah pengaturan untuk Amazon RDS atau Amazon Redshift. Anda dapat melakukan langkah-langkah ini secara manual, jika belum dikonfigurasi, dan melakukan restart sesuai keinginan Anda. Untuk panduan memulai yang lengkap, lihat Bekerja dengan integrasi zero-ETL Amazon RDS dengan Amazon Redshift (pratinjau) dan Bekerja dengan integrasi zero-ETL.

  1. Konfigurasikan sumber RDS untuk MySQL dengan grup parameter DB khusus.
  2. Konfigurasikan klaster Redshift untuk mengaktifkan pengidentifikasi peka huruf besar-kecil.
  3. Konfigurasikan izin yang diperlukan.
  4. Buat integrasi nol-ETL.
  5. Buat database dari integrasi di Amazon Redshift.

Konfigurasikan sumber RDS untuk MySQL dengan grup parameter DB yang disesuaikan

Untuk membuat database RDS untuk MySQL, selesaikan langkah-langkah berikut:

  1. Di konsol Amazon RDS, buat grup parameter DB yang disebut zero-etl-custom-pg.

Integrasi Zero-ETL bekerja dengan menggunakan log biner (binlogs) yang dihasilkan oleh database MySQL. Untuk mengaktifkan binlog di Amazon RDS for MySQL, serangkaian parameter tertentu harus diaktifkan.

  1. Tetapkan pengaturan parameter kluster binlog berikut:
    • binlog_format = ROW
    • binlog_row_image = FULL
    • binlog_checksum = NONE

Selain itu, pastikan bahwa binlog_row_value_options parameter tidak disetel ke PARTIAL_JSON. Secara default, parameter ini tidak disetel.

  1. Pilih Database di panel navigasi, lalu pilih Buat database.
  2. Untuk Versi Mesin, pilih MySQL 8.0.28 (atau lebih tinggi).

Mesin edisi Komunitas MySQL yang dipilih versi 8.0.36

  1. Untuk template, pilih Produksi.
  2. Untuk Ketersediaan dan daya tahan, pilih salah satu Instans DB Multi-AZ or Instans DB tunggal (Kluster DB Multi-AZ tidak didukung, hingga tulisan ini dibuat).
  3. Untuk Pengidentifikasi instans DB, Masuk zero-etl-source-rms.

Templat Produksi yang dipilih, instans DB Multi-AZ, dan pengidentifikasi instans DB zero-etl-source-rms

  1. Bawah Konfigurasi instans, pilih Kelas yang dioptimalkan memori dan pilih contohnya db.r6g.large, yang seharusnya cukup untuk kasus penggunaan TICKIT.

Memilih db.r6g.large untuk kelas instans DB pada konfigurasi Instans

  1. Bawah Konfigurasi tambahan, Untuk Grup parameter cluster DB, pilih grup parameter yang Anda buat sebelumnya (zero-etl-custom-pg).

Grup parameter DB yang dipilih zero-etl-custom-pg di bawah Konfigurasi tambahan

  1. Pilih Buat database.

Dalam beberapa menit, database RDS untuk MySQL akan dijalankan sebagai sumber integrasi zero-ETL.

Status instans RDS ditampilkan sebagai Tersedia

Konfigurasikan tujuan Redshift

Setelah Anda membuat klaster DB sumber, Anda harus membuat dan mengonfigurasi gudang data target di Amazon Redshift. Gudang data harus memenuhi persyaratan berikut:

  • Menggunakan tipe node RA3 (ra3.16xlarge, ra3.4xlarge, atau ra3.xlplus) atau Amazon Redshift Tanpa Server
  • Terenkripsi (jika menggunakan klaster yang disediakan)

Untuk kasus penggunaan kami, buat cluster Redshift dengan menyelesaikan langkah-langkah berikut:

  1. Di konsol Amazon Redshift, pilih Konfigurasi lalu pilih Manajemen beban kerja.
  2. Di bagian grup parameter, pilih membuat.
  3. Buat grup parameter baru bernama zero-etl-rms.
  4. Pilih Edit parameter dan mengubah nilai dari enable_case_sensitive_identifier untuk True.
  5. Pilih Save.

Anda juga dapat menggunakan Antarmuka Baris Perintah AWS (AWS CLI) perintah perbarui-kelompok kerja untuk Redshift Tanpa Server:

aws redshift-serverless update-workgroup --workgroup-name <your-workgroup-name> --config-parameters parameterKey=enable_case_sensitive_identifier,parameterValue=true

Pengaturan grup parameter cluster

  1. Pilih Dasbor cluster yang disediakan.

Di bagian atas jendela konsol Anda, Anda akan melihat a Coba fitur Amazon Redshift baru dalam pratinjau spanduk.

  1. Pilih Buat kluster pratinjau.

Buat kluster pratinjau

  1. Untuk Pratinjau trek, memilih preview_2023.
  2. Untuk Jenis simpul, pilih salah satu jenis node yang didukung (untuk postingan ini, kami menggunakan ra3.xlplus).

Jenis simpul ra3.xlplus yang dipilih untuk kluster pratinjau

  1. Bawah Konfigurasi tambahan, memperluas Konfigurasi basis data.
  2. Untuk Grup parameter, pilih zero-etl-rms.
  3. Untuk enkripsi, pilih Gunakan Layanan Manajemen Kunci AWS.

Konfigurasi database menampilkan grup parameter dan enkripsi

  1. Pilih Buat klaster.

Cluster seharusnya menjadi Tersedia dalam beberapa menit.

Status klaster ditampilkan sebagai Tersedia

  1. Arahkan ke namespace zero-etl-target-rs-ns Dan pilih Kebijakan sumber daya Tab.
  2. Pilih Tambahkan kepala sekolah yang berwenang.
  3. Masukkan Amazon Resource Name (ARN) pengguna atau peran AWS, atau ID akun AWS (prinsipal IAM) yang diizinkan untuk membuat integrasi.

ID akun disimpan sebagai ARN dengan pengguna root.

Tambahkan perwakilan resmi pada tab kebijakan sumber daya Klaster

  1. Dalam majalah Sumber integrasi resmi bagian, pilih Tambahkan sumber integrasi resmi untuk menambahkan ARN instans DB RDS untuk MySQL yang merupakan sumber data untuk integrasi zero-ETL.

Anda dapat menemukan nilai ini dengan masuk ke konsol Amazon RDS dan menavigasi ke konfigurasi tab dari zero-etl-source-rms instans DB.

Tambahkan sumber integrasi resmi ke tab Konfigurasi instans DB zero-etl-source-rms

Kebijakan sumber daya Anda harus menyerupai tangkapan layar berikut.

Penyiapan kebijakan sumber daya telah selesai

Konfigurasikan izin yang diperlukan

Untuk membuat integrasi zero-ETL, pengguna atau peran Anda harus memiliki lampiran kebijakan berbasis identitas dengan yang sesuai Identitas AWS dan Manajemen Akses (IAM) izin. Pemilik akun AWS bisa konfigurasikan izin yang diperlukan untuk pengguna atau peran yang dapat membuat integrasi zero-ETL. Kebijakan sampel memungkinkan entitas utama terkait untuk melakukan tindakan berikut:

  • Buat integrasi zero-ETL untuk instans DB RDS untuk MySQL sumber.
  • Lihat dan hapus semua integrasi nol-ETL.
  • Buat integrasi masuk ke gudang data target. Izin ini tidak diperlukan jika akun yang sama memiliki gudang data Redshift dan akun ini adalah perwakilan resmi untuk gudang data tersebut. Perhatikan juga bahwa Amazon Redshift memiliki format ARN yang berbeda untuk klaster yang disediakan dan tanpa server:
    • Disediakan - arn:aws:redshift:{region}:{account-id}:namespace:namespace-uuid
    • Tanpa Server - arn:aws:redshift-serverless:{region}:{account-id}:namespace/namespace-uuid

Selesaikan langkah-langkah berikut untuk mengonfigurasi izin:

  1. Di konsol IAM, pilih Kebijakan di panel navigasi.
  2. Pilih Buat kebijakan.
  3. Buat kebijakan baru bernama rds-integrations menggunakan JSON berikut (ganti region dan account-id dengan nilai Anda yang sebenarnya):
{
    "Version": "2012-10-17",
    "Statement": [{
        "Effect": "Allow",
        "Action": [
            "rds:CreateIntegration"
        ],
        "Resource": [
            "arn:aws:rds:{region}:{account-id}:db:source-instancename",
            "arn:aws:rds:{region}:{account-id}:integration:*"
        ]
    },
    {
        "Effect": "Allow",
        "Action": [
            "rds:DescribeIntegration"
        ],
        "Resource": ["*"]
    },
    {
        "Effect": "Allow",
        "Action": [
            "rds:DeleteIntegration"
        ],
        "Resource": [
            "arn:aws:rds:{region}:{account-id}:integration:*"
        ]
    },
    {
        "Effect": "Allow",
        "Action": [
            "redshift:CreateInboundIntegration"
        ],
        "Resource": [
            "arn:aws:redshift:{region}:{account-id}:cluster:namespace-uuid"
        ]
    }]
}
  1. Lampirkan kebijakan yang Anda buat ke izin pengguna atau peran IAM Anda.

Buat integrasi nol-ETL

Untuk membuat integrasi zero-ETL, selesaikan langkah-langkah berikut:

  1. Di konsol Amazon RDS, pilih Integrasi nol-ETL di panel navigasi.
  2. Pilih Buat integrasi nol-ETL.

Buat integrasi zero-ETL di konsol Amazon RDS

  1. Untuk Pengidentifikasi integrasi, masukkan nama, misalnya zero-etl-demo.

Masukkan pengidentifikasi Integrasi

  1. Untuk Basis data sumber, pilih Jelajahi database RDS dan pilih cluster sumber zero-etl-source-rms.
  2. Pilih Selanjutnya.

Telusuri database RDS untuk sumber zero-ETL

  1. Bawah target, Untuk Gudang data Amazon Redshift, pilih Telusuri gudang data Redshift dan pilih gudang data Redshift (zero-etl-target-rs).
  2. Pilih Selanjutnya.

Telusuri gudang data Redshift untuk integrasi zero-ETL

  1. Tambahkan tag dan enkripsi, jika ada.
  2. Pilih Selanjutnya.
  3. Verifikasi nama integrasi, sumber, target, dan pengaturan lainnya.
  4. Pilih Buat integrasi nol-ETL.

Buat integrasi zero-ETL langkah 4

Anda dapat memilih integrasi untuk melihat detailnya dan memantau kemajuannya. Butuh waktu sekitar 30 menit untuk mengubah status membuat untuk Aktif.

Detail integrasi Zero-ETL

Waktunya akan bervariasi bergantung pada ukuran kumpulan data Anda di sumbernya.

Buat database dari integrasi di Amazon Redshift

Untuk membuat database Anda dari integrasi zero-ETL, selesaikan langkah-langkah berikut:

  1. Di konsol Amazon Redshift, pilih Cluster di panel navigasi.
  2. Buka zero-etl-target-rs gugus.
  3. Pilih Data kueri untuk membuka editor kueri v2.

Data kueri melalui Editor Kueri v2

  1. Hubungkan ke gudang data Redshift dengan memilih Save.

Hubungkan ke gudang data Redshift

  1. Dapatkan integration_id dari svv_integration tabel sistem:

select integration_id from svv_integration; -- copy this result, use in the next sql

Kueri untuk pengidentifikasi integrasi

  1. Gunakan integration_id dari langkah sebelumnya untuk membuat database baru dari integrasi:

CREATE DATABASE zetl_source FROM INTEGRATION '<result from above>';

Buat database dari integrasi

Integrasi kini telah selesai, dan keseluruhan cuplikan sumber akan terlihat seperti di tujuan. Perubahan yang sedang berlangsung akan disinkronkan hampir secara real-time.

Analisis data transaksi hampir real-time

Sekarang kami dapat menjalankan analitik pada data operasional TICKIT.

Mengisi data TICKIT sumber

Untuk mengisi data sumber, selesaikan langkah-langkah berikut:

  1. Salin file data masukan CSV ke direktori lokal. Berikut contoh perintahnya:

aws s3 cp 's3://redshift-blogs/zero-etl-integration/data/tickit' . --recursive

  1. Hubungkan ke klaster RDS untuk MySQL Anda dan buat database atau skema untuk model data TICKIT, verifikasi bahwa tabel dalam skema tersebut memiliki kunci utama, dan mulai proses pemuatan:

mysql -h <rds_db_instance_endpoint> -u admin -p password --local-infile=1

Hubungkan ke kluster RDS untuk MySQL Anda dan buat database atau skema untuk model data TICKIT

  1. Gunakan yang berikut ini perintah BUAT TABEL.
  2. Muat data dari file lokal menggunakan perintah LOAD DATA.

Berikut ini adalah contohnya. Perhatikan bahwa file CSV masukan dipecah menjadi beberapa file. Perintah ini harus dijalankan untuk setiap file jika Anda ingin memuat semua data. Untuk tujuan demo, pemuatan sebagian data juga dapat dilakukan.

Buat tabel pengguna untuk demo

Menganalisis sumber data TICKIT di tujuan

Di konsol Amazon Redshift, buka editor kueri v2 menggunakan database yang Anda buat sebagai bagian dari pengaturan integrasi. Gunakan kode berikut untuk memvalidasi aktivitas seed atau CDC:

SELECT * FROM SYS_INTEGRATION_ACTIVITY ORDER BY last_commit_timestamp DESC;

Kueri untuk memvalidasi aktivitas seed atau CDC

Anda kini dapat menerapkan logika bisnis Anda untuk transformasi secara langsung pada data yang telah direplikasi ke gudang data. Anda juga dapat menggunakan teknik pengoptimalan kinerja seperti membuat tampilan terwujud Redshift yang menggabungkan tabel yang direplikasi dan tabel lokal lainnya untuk meningkatkan kinerja kueri untuk kueri analitis Anda.

Pemantauan

Anda dapat menanyakan tampilan sistem dan tabel berikut di Amazon Redshift untuk mendapatkan informasi tentang integrasi zero-ETL Anda dengan Amazon Redshift:

Untuk melihat metrik terkait integrasi yang dipublikasikan amazoncloudwatch, buka konsol Amazon Redshift. Memilih Integrasi nol-ETL di panel navigasi dan pilih integrasi untuk menampilkan metrik aktivitas.

Metrik aktivitas integrasi Zero-ETL

Metrik yang tersedia di konsol Amazon Redshift adalah metrik integrasi dan statistik tabel, dengan statistik tabel memberikan rincian setiap tabel yang direplikasi dari Amazon RDS for MySQL ke Amazon Redshift.

Metrik integrasi dan statistik tabel

Metrik integrasi berisi jumlah keberhasilan dan kegagalan replikasi tabel serta detail kelambatan.

Metrik integrasi menunjukkan jumlah keberhasilan dan kegagalan replikasi tabel serta detail kelambatan. Metrik integrasi menunjukkan jumlah keberhasilan dan kegagalan replikasi tabel serta detail kelambatan. Metrik integrasi menunjukkan jumlah keberhasilan dan kegagalan replikasi tabel serta detail kelambatan.

Sinkronisasi ulang manual

Integrasi nol-ETL akan secara otomatis memulai sinkronisasi ulang jika status sinkronisasi tabel ditampilkan sebagai gagal atau diperlukan sinkronisasi ulang. Namun jika sinkronisasi ulang otomatis gagal, Anda dapat memulai sinkronisasi ulang pada perincian tingkat tabel:

ALTER DATABASE zetl_source INTEGRATION REFRESH TABLES tbl1, tbl2;

Sebuah tabel dapat memasuki keadaan gagal karena beberapa alasan:

  • Kunci utama telah dihapus dari tabel. Dalam kasus seperti itu, Anda perlu menambahkan kembali kunci utama dan menjalankan perintah ALTER yang disebutkan sebelumnya.
  • Nilai yang tidak valid ditemukan selama replikasi atau kolom baru ditambahkan ke tabel dengan tipe data yang tidak didukung. Dalam kasus seperti itu, Anda perlu menghapus kolom dengan tipe data yang tidak didukung dan menjalankan perintah ALTER yang disebutkan sebelumnya.
  • Kesalahan internal, dalam kasus yang jarang terjadi, dapat menyebabkan kegagalan tabel. Perintah ALTER harus memperbaikinya.

Membersihkan

Saat Anda menghapus integrasi zero-ETL, data transaksional Anda tidak dihapus dari RDS sumber atau database Redshift target, namun Amazon RDS tidak mengirimkan perubahan baru apa pun ke Amazon Redshift.

Untuk menghapus integrasi nol-ETL, selesaikan langkah-langkah berikut:

  1. Di konsol Amazon RDS, pilih Integrasi nol-ETL di panel navigasi.
  2. Pilih integrasi nol-ETL yang ingin Anda hapus dan pilih Delete.
  3. Untuk mengonfirmasi penghapusan, pilih Delete.

hapus integrasi nol-ETL

Kesimpulan

Dalam postingan ini, kami menunjukkan kepada Anda cara menyiapkan integrasi zero-ETL dari Amazon RDS untuk MySQL ke Amazon Redshift. Hal ini meminimalkan kebutuhan untuk memelihara saluran data yang kompleks dan memungkinkan analisis hampir real-time pada data transaksional dan operasional.

Untuk mempelajari selengkapnya tentang integrasi Amazon RDS zero-ETL dengan Amazon Redshift, lihat Bekerja dengan integrasi zero-ETL Amazon RDS dengan Amazon Redshift (pratinjau).


 Tentang Penulis

Milind Oke adalah arsitek solusi spesialis senior Redshift yang telah bekerja di Amazon Web Services selama tiga tahun. Dia adalah pemegang sertifikasi Associate SA, Spesialis Keamanan, dan Spesialisasi Analytics tersertifikasi AWS, yang berbasis di Queens, New York.

Aditya Samant adalah veteran industri basis data relasional dengan pengalaman lebih dari 2 dekade bekerja dengan basis data komersial dan sumber terbuka. Dia saat ini bekerja di Amazon Web Services sebagai Arsitek Solusi Spesialis Basis Data Utama. Dalam perannya, ia menghabiskan waktu bekerja dengan pelanggan untuk merancang arsitektur cloud native yang skalabel, aman, dan tangguh. Aditya bekerja sama dengan tim layanan dan berkolaborasi dalam merancang dan menghadirkan fitur-fitur baru untuk database terkelola Amazon.

tempat_img

Intelijen Terbaru

tempat_img