All Products
Search
Document Center

E-MapReduce:Konektor MySQL

Last Updated:Jul 18, 2026

Konektor MySQL memungkinkan Anda menjalankan kueri dan membuat tabel di instans MySQL eksternal, serta melakukan operasi JOIN antar sistem berbeda (seperti MySQL dan Hive) atau antara dua instans MySQL.

Latar Belakang

Prasyarat

Batasan

  • Konektor MySQL didukung pada kluster Hadoop dan kluster Trino yang menjalankan EMR V3.38.0 atau versi lebih baru.

  • Diperlukan MySQL 5.7, 8.0, atau versi lebih baru.

  • Koordinator Trino dan semua node pekerja memerlukan akses jaringan ke instans MySQL. Port default adalah 3306.

  • Pernyataan SQL berikut tidak didukung:

    • DELETE

    • GRANT

    • REVOKE

    • SHOW GRANTS

    • SHOW ROLES

    • SHOW ROLE GRANTS

Konfigurasikan konektor MySQL

Untuk mengubah pengaturan konektor MySQL, lihat Konfigurasikan konektor.

Konfigurasi konektor default

Pada halaman Configure layanan Trino di Konsol EMR, di bagian Service Configuration, klik tab mysql.properties dan konfigurasikan parameter berikut.

Parameter

Deskripsi

connection-url

String koneksi JDBC untuk database. Untuk detailnya, lihat Lihat dan kelola titik akhir serta port instans.

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

connection-user

Username database. Pengguna ini harus memiliki izin untuk mengakses tabel di database ApsaraDB RDS for MySQL.

connection-password

Password untuk connection-user.

Konfigurasikan beberapa layanan MySQL

Jika Anda memiliki beberapa layanan MySQL, buat file konfigurasi unik untuk setiap layanan di direktori etc/catalog. Setiap file harus memiliki ekstensi .properties. Sebagai contoh, file konfigurasi bernama sales.properties akan membuat katalog bernama sales di Trino.

Contoh konfigurasi

Untuk mengonfigurasi beberapa layanan MySQL di kluster EMR, tambahkan item konfigurasi kustom menggunakan connector[x].properties, dengan x bernilai 1, 2, 3, dan seterusnya. Lakukan langkah-langkah berikut:

  1. Pada halaman konfigurasi layanan Trino di Konsol EMR, di bagian Service Configuration, pada tab mysql.properties, ubah parameter connection-user, connection-password, dan connection-url.

    Klik Add Configuration Item di bagian atas untuk menambahkan item konfigurasi yang diperlukan. Untuk detailnya, lihat Tambahkan item konfigurasi.

  2. Simpan konfigurasi.

    1. Di bagian Service Configuration, klik Save.

    2. Pada kotak dialog yang muncul, masukkan Execution Reason lalu klik Save.

  3. Mulai ulang layanan.

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

    2. Pada kotak dialog yang muncul, masukkan Execution Reason lalu klik OK.

    3. Pada kotak dialog Confirm, klik OK.

Pemetaan tipe

Tipe DECIMAL

Anda dapat memetakan tipe DECIMAL dengan presisi lebih dari 38 ke tipe DECIMAL Trino dengan mengatur item konfigurasi decimal_mapping atau properti sesi decimal_mapping ke nilai allow_overflow. Rentang tipe hasil dikendalikan oleh item konfigurasi decimal-default-scale atau decimal-rounding-mode, dan presisinya tetap pada 38.

Secara default, nilai yang memerlukan pembulatan atau pemotongan akan gagal saat waktu proses. Perilaku ini dikendalikan oleh item konfigurasi decimal-rounding-mode atau properti sesi decimal-rounding-mode. Nilai yang valid: UNNECESSARY (default), UP, DOWN, CEILING, FLOOR, HALF_UP, HALF_DOWN, dan HALF_EVEN.

Properti umum

Properti berikut mengontrol pemetaan tipe data dan cache metadata di Trino.

Parameter

Deskripsi

unsupported-type-handling

Menentukan cara menangani tipe data kolom yang tidak didukung. Nilai yang valid:

  • IGNORE (default): Kolom tidak dapat diakses.

  • CONVERT_TO_VARCHAR: Kolom dikonversi ke VARCHAR tanpa batas.

jdbc-types-mapped-to-varchar

Memetakan daftar tipe data yang dipisahkan koma ke VARCHAR tanpa batas.

case-insensitive-name-matching

Menentukan apakah pencocokan nama database dan skema remote dilakukan tanpa membedakan huruf besar/kecil. Nilai yang valid:

  • true: Tidak membedakan huruf besar/kecil.

  • false (default): Membedakan huruf besar/kecil.

case-insensitive-name-matching.cache-ttl

Durasi cache untuk pencocokan nama remote yang tidak membedakan huruf besar/kecil.

Nilai default adalah 1m.

metadata.cache-ttl

Durasi cache untuk metadata, seperti statistik tabel dan kolom.

Nilai default 0 menonaktifkan cache.

metadata.cache-missing

Menentukan apakah hasil pencarian metadata yang gagal, termasuk statistik tabel dan kolom, disimpan dalam cache. Nilai yang valid:

  • true: Menyimpan ketidakhadiran dalam cache.

  • false (default): Tidak menyimpan ketidakhadiran dalam cache.

Contoh: Kueri MySQL

  1. Lihat database RDS.

    1. Hubungkan ke kluster menggunakan SSH. Untuk informasi selengkapnya, 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 mandiri

        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 pada artikel ini, web adalah database yang Anda buat di MySQL.

  2. Kueri data tabel.

    • Kueri data dari tabel mysql.web.clicks.

      SELECT * FROM mysql.web.clicks;
    • Kueri informasi kolom untuk tabel mysql.web.clicks.

      SHOW columns FROM mysql.web.clicks;

      Atau, jalankan perintah berikut untuk mendeskripsikan tabel.

      DESCRIBE mysql.web.clicks;

Pushdown

Untuk detail tentang pushdown, lihat Pushdown dalam dokumentasi Trino.

Konektor MySQL melakukan pushdown 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()