全部产品
Search
文档中心

E-MapReduce:Konektor MySQL

更新时间:Jul 06, 2025

Gunakan Konektor MySQL untuk mengkueri data dalam tabel di instance MySQL eksternal dan membuat tabel di instance tersebut. Konektor ini juga memungkinkan penggabungan tabel antara dua sistem seperti MySQL dan Hive atau antara dua instance MySQL.

Informasi latar belakang

Topik ini mencakup informasi tentang Konektor MySQL dalam bagian-bagian berikut:

Prasyarat

  • Sebuah kluster Hadoop atau datalake dengan layanan Trino telah dibuat, atau sebuah kluster Trino tersedia. Untuk detail lebih lanjut, lihat Buat Kluster.

  • Sebuah instance ApsaraDB RDS for MySQL telah dibeli. Untuk informasi lebih lanjut, lihat Buat Instance ApsaraDB RDS for MySQL.

Batasan

  • Hanya kluster Hadoop atau Trino dari E-MapReduce (EMR) V3.38.0 ke atas yang mendukung Konektor MySQL.

  • Konektor MySQL hanya dapat terhubung ke instance ApsaraDB RDS for MySQL yang menjalankan MySQL versi 5.7, 8.0, atau yang lebih baru.

  • Pastikan node koordinator dan semua node pekerja Trino dapat mengakses MySQL. Port default adalah 3306.

  • Konektor MySQL tidak mendukung pernyataan SQL berikut:

    • DELETE

    • GRANT

    • REVOKE

    • SHOW GRANTS

    • SHOW ROLES

    • SHOW ROLE GRANTS

Konfigurasi Konektor MySQL

Untuk mengubah konfigurasi Konektor MySQL, lihat Konfigurasikan Konektor.

Konfigurasi Default Konektor

Masuk ke konsol EMR. Buka tab Configure layanan Trino. Di tab Konfigurasi, klik tab mysql.properties. Sesuaikan item konfigurasi sesuai kebutuhan bisnis Anda. Tabel berikut menjelaskan item konfigurasi.

Item Konfigurasi

Deskripsi

connection-url

URL database ApsaraDB RDS for MySQL yang ingin Anda akses. Untuk informasi lebih lanjut, lihat Lihat dan Kelola Titik Akhir dan Port Instance.

Contoh: jdbc:mysql://rm-2ze5ipacsu8265q****.mysql.rds.aliyuncs.com:3306.

connection-user

Nama pengguna yang digunakan untuk mengakses database. Pastikan akun tersebut memiliki izin untuk mengakses tabel dalam database.

connection-password

Kata sandi akun yang ditentukan oleh item konfigurasi connection-user.

Konfigurasi Beberapa Layanan MySQL

Untuk terhubung ke beberapa layanan MySQL, buat beberapa file konfigurasi di direktori etc/catalog. Pastikan nama filenya unik dan memiliki ekstensi .properties. Sebagai contoh, jika Anda membuat file bernama sales.properties, Trino akan menggunakan konektor yang dikonfigurasi dalam file tersebut untuk membuat katalog bernama sales.

Contoh

Untuk terhubung ke beberapa layanan MySQL, tambahkan item konfigurasi kustom pada tab connector[x].properties untuk mengonfigurasi properti konektor MySQL. Dalam nama setiap tab connector[x].properties, x menunjukkan bilangan bulat mulai dari 1. Ikuti langkah-langkah berikut:

  1. Masuk ke konsol EMR. Pergi ke tab Configure layanan Trino. Di tab Konfigurasi, klik tab mysql.properties. Ubah item konfigurasi connection-user, connection-password, dan connection-url.

    Anda juga dapat mengklik Add Configuration Item di bagian atas tab Konfigurasi untuk menambahkan item konfigurasi kustom. Untuk informasi lebih lanjut, lihat bagian Tambahkan Item Konfigurasi dari topik "Kelola Item Konfigurasi".

  2. Simpan konfigurasi.

    1. Di bagian bawah tab Configure, klik Save.

    2. Dalam kotak dialog yang muncul, konfigurasikan parameter Execution Reason dan klik Save.

  3. Mulai ulang layanan Trino.

    1. Di sudut kanan atas, pilih More > Restart.

    2. Dalam kotak dialog yang muncul, masukkan alasan di bidang Execution Reason dan klik OK.

    3. Dalam pesan Confirm, klik OK.

Pemetaan Tipe Data

Pengolahan Data Tipe DECIMAL

Untuk memetakan tipe DECIMAL MySQL dengan presisi lebih besar dari 38 ke tipe DECIMAL Trino, tentukan properti konfigurasi decimal_mapping atau atur properti sesi dari decimal_mapping menjadi allow_overflow. Ruang lingkup tipe data yang dihasilkan ditentukan oleh properti konfigurasi decimal-default-scale atau decimal-rounding-mode, dengan presisi tetap sebesar 38.

Secara default, nilai yang memerlukan pembulatan atau pemotongan untuk pemetaan menyebabkan kegagalan saat runtime. Mode pembulatan ditentukan oleh properti konfigurasi decimal-rounding-mode atau properti sesi dari decimal-rounding-mode. Properti ini dapat disetel ke UNNECESSARY, UP, DOWN, CEILING, FLOOR, HALF_UP, HALF_DOWN, atau HALF_EVEN. Nilai defaultnya adalah UNNECESSARY.

Properti Konfigurasi Umum

Konfigurasikan properti dalam tabel berikut untuk memetakan tipe data sumber data ke tipe data Trino dan menyimpan metadata di Trino.

Properti

Deskripsi

unsupported-type-handling

Metode yang digunakan untuk memproses kolom yang tipe datanya tidak didukung. Nilai valid:

  • IGNORE: Kolom tidak dapat diakses. Ini adalah nilai default.

  • CONVERT_TO_VARCHAR: Tipe data kolom diubah menjadi tipe VARCHAR tanpa batas.

jdbc-types-mapped-to-varchar

Menentukan apakah akan mengizinkan konversi paksa data yang terdiri dari elemen-elemen yang dipisahkan oleh koma (,) menjadi data tipe VARCHAR tanpa batas.

case-insensitive-name-matching

Menentukan apakah nama database dan tabel bersifat case-sensitive. Nilai valid:

  • true: Nama tidak sensitif huruf besar/kecil.

  • false: Nama sensitif huruf besar/kecil. Ini adalah nilai default.

case-insensitive-name-matching.cache-ttl

Waktu hidup cache (TTL) nama database dan tabel yang tidak sensitif huruf besar/kecil.

Nilai default: 1. Unit: menit.

metadata.cache-ttl

TTL cache metadata, yang mencakup informasi statistik tabel dan kolom.

Nilai default: 0. Nilai 0 menunjukkan bahwa metadata tidak dapat disimpan dalam cache.

metadata.cache-missing

Menentukan apakah akan menyimpan status metadata, yang mencakup informasi statistik tabel dan kolom. Nilai valid:

  • true: Status disimpan dalam cache.

  • false: Status tidak disimpan dalam cache. Ini adalah nilai default.

Contoh: Kueri Data MySQL

  1. Lihat informasi database ApsaraDB RDS for MySQL Anda.

    1. Masuk ke kluster Anda melalui SSH. Untuk detail lebih lanjut, lihat Masuk ke Kluster.

    2. Jalankan perintah berikut untuk terhubung ke klien Trino:

      • Kluster DataLake

        trino --server master-1-1:9090 --catalog iceberg --schema default
      • Kluster Hadoop atau Trino

        trino --server emr-header-1:9090 --catalog iceberg --schema default
    3. Jalankan perintah berikut untuk melihat skema:

      SHOW schemas FROM mysql;
      Catatan

      mysql adalah nama file konfigurasi .properties.

    4. Jalankan perintah berikut untuk melihat database:

      SHOW tables FROM mysql.web;
      Catatan

      Dalam contoh ini, web adalah nama database ApsaraDB RDS for MySQL Anda.

  2. Kueri data dalam tabel.

    • Eksekusi pernyataan berikut untuk mengkueri data dalam tabel mysql.web.clicks:

      SELECT * FROM mysql.web.clicks
    • Eksekusi pernyataan berikut untuk mengkueri informasi kolom dalam tabel mysql.web.clicks:

      SHOW columns FROM mysql.web.clicks;

      Anda juga dapat mengeksekusi pernyataan berikut untuk mengkueri informasi kolom:

      DESCRIBE mysql.web.clicks;

Pushdown

Untuk informasi lebih lanjut tentang fitur pushdown, lihat Pushdown dalam dokumentasi resmi Trino.

Konektor MySQL mendukung fitur pushdown untuk operator dan fungsi berikut:

  • Operator

    • Join

    • Limit

    • Top-N

  • Fungsi

    • avg()

    • count()

    • max()

    • min()

    • sum()

    • stddev()

    • stddev_pop()

    • stddev_samp()

    • variance()

    • var_pop()

    • var_samp()