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:
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".
Simpan konfigurasi.
Di bagian bawah tab Configure, klik Save.
Dalam kotak dialog yang muncul, konfigurasikan parameter Execution Reason dan klik Save.
Mulai ulang layanan Trino.
Di sudut kanan atas, pilih .
Dalam kotak dialog yang muncul, masukkan alasan di bidang Execution Reason dan klik OK.
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:
|
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:
|
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:
|
Contoh: Kueri Data MySQL
Lihat informasi database ApsaraDB RDS for MySQL Anda.
Masuk ke kluster Anda melalui SSH. Untuk detail lebih lanjut, lihat Masuk ke Kluster.
Jalankan perintah berikut untuk terhubung ke klien Trino:
Kluster DataLake
trino --server master-1-1:9090 --catalog iceberg --schema defaultKluster Hadoop atau Trino
trino --server emr-header-1:9090 --catalog iceberg --schema default
Jalankan perintah berikut untuk melihat skema:
SHOW schemas FROM mysql;Catatanmysql adalah nama file konfigurasi .properties.
Jalankan perintah berikut untuk melihat database:
SHOW tables FROM mysql.web;CatatanDalam contoh ini, web adalah nama database ApsaraDB RDS for MySQL Anda.
Kueri data dalam tabel.
Eksekusi pernyataan berikut untuk mengkueri data dalam tabel mysql.web.clicks:
SELECT * FROM mysql.web.clicksEksekusi 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()