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
Konektor MySQL mencakup topik-topik berikut:
Prasyarat
-
Anda memiliki kluster DataLake, kluster Hadoop dengan layanan Trino, atau kluster Trino mandiri. Untuk detailnya, lihat Buat kluster.
-
Anda memiliki instans ApsaraDB RDS for MySQL. Untuk detailnya, lihat Buat instans ApsaraDB RDS for MySQL dengan cepat.
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:
-
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.
-
Simpan konfigurasi.
-
Di bagian Service Configuration, klik Save.
-
Pada kotak dialog yang muncul, masukkan Execution Reason lalu klik Save.
-
-
Mulai ulang layanan.
-
Di pojok kanan atas, pilih .
-
Pada kotak dialog yang muncul, masukkan Execution Reason lalu klik OK.
-
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:
|
|
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:
|
|
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:
|
Contoh: Kueri MySQL
-
Lihat database RDS.
-
Hubungkan ke kluster menggunakan SSH. Untuk informasi selengkapnya, lihat Masuk ke kluster.
-
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
-
-
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 pada artikel ini, web adalah database yang Anda buat di MySQL.
-
-
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()
-