Selamat datang di panduan memulai untuk AnalyticDB for MySQL Data Warehouse Edition. AnalyticDB for MySQL adalah gudang data real-time berbasis cloud yang dikelola secara terpusat, berskala petabyte, dan mendukung konkurensi tinggi, yang dirancang khusus untuk beban kerja pemrosesan analitik online (OLAP). Panduan ini menunjukkan cara menggunakan kluster Data Warehouse Edition.
Data Warehouse Edition tidak lagi tersedia untuk pembelian baru. Anda dapat membeli Enterprise Edition atau Basic Edition. Jika Anda telah membeli kluster Data Warehouse Edition, Anda masih dapat merujuk panduan ini untuk terus menggunakan kluster Data Warehouse Edition.
Alur kerja
Jika Anda baru mengenal AnalyticDB for MySQL Data Warehouse Edition, kami sarankan Anda membaca topik berikut terlebih dahulu:
Ikhtisar produk: Pelajari konsep produk, manfaat, dan kasus penggunaan AnalyticDB for MySQL.
Harga: Pelajari detail harga dan metode penagihan untuk AnalyticDB for MySQL.
Mulai cepat (panduan ini): Memberikan tutorial tentang cara menggunakan kluster AnalyticDB for MySQL Data Warehouse Edition.
Langkah 1: Buat akun database
AnalyticDB for MySQL mendukung dua jenis akun database: akun istimewa dan akun standar. Untuk informasi lebih lanjut mengenai perbedaan keduanya, lihat Jenis akun database.
Buat akun istimewa
Login ke Konsol AnalyticDB for MySQL. Di pojok kiri atas konsol, pilih wilayah. Di panel navigasi sebelah kiri, klik Clusters. Temukan kluster yang ingin Anda kelola dan klik ID kluster tersebut.
Di panel navigasi sebelah kiri, klik Accounts.
Pada halaman Accounts, klik Create Privileged Account.
Di panel Create Account, konfigurasikan parameter-parameter berikut.
Parameter
Deskripsi
Database Account
Nama akun istimewa. Masukkan nama yang memenuhi persyaratan yang ditampilkan di layar.
Account Type
Untuk kluster Data Warehouse Edition, parameter ini secara otomatis diatur ke Privileged Account dan tidak dapat diubah.
New Password
Kata sandi untuk akun istimewa. Masukkan kata sandi yang memenuhi persyaratan yang ditampilkan di layar.
Confirm Password
Masukkan kembali kata sandi untuk konfirmasi.
Description
Opsional. Masukkan deskripsi untuk akun sebagai referensi di masa mendatang.
Klik OK untuk membuat akun.
Buat dan berikan izin kepada akun standar
Akun standar yang dibuat dengan menjalankan pernyataan SQL pada kluster Data Warehouse Edition tidak ditampilkan di konsol.
Untuk membuat akun database, lihat CREATE USER.
Untuk memberikan izin kepada akun database, lihat GRANT.
Untuk mencabut izin dari akun database, lihat REVOKE.
Untuk mengubah nama akun database, lihat RENAME USER.
Untuk menghapus akun database, lihat DROP USER.
Langkah 2: Konfigurasikan daftar putih IP
Secara default, daftar putih alamat IP hanya berisi 127.0.0.1, sehingga mencegah perangkat apa pun mengakses kluster. Tambahkan alamat IP ke daftar putih agar perangkat lain dapat mengakses kluster. Misalnya, Anda dapat menambahkan blok CIDR 10.10.10.0/24 untuk mengizinkan semua alamat IP dalam rentang 10.10.10.X mengakses kluster. Untuk menambahkan beberapa alamat IP atau blok CIDR, pisahkan dengan koma (,) tanpa spasi. Contoh: 192.168.0.1,172.16.213.9.
PeringatanJangan masukkan 0.0.0.0 ke dalam daftar putih alamat IP.
Jika alamat IP publik Anda sering berubah dan Anda ingin mengizinkan akses dari semua alamat IP publik ke kluster AnalyticDB for MySQL, hubungi dukungan teknis.
Daftar putih alamat IP memberikan tingkat keamanan tinggi bagi kluster AnalyticDB for MySQL. Kami menyarankan Anda memelihara daftar putih secara berkala.
Mengonfigurasi daftar putih alamat IP tidak memengaruhi operasi normal kluster AnalyticDB for MySQL. Perubahan pada daftar putih akan berlaku dalam waktu satu menit.
Prosedur
Login ke Konsol AnalyticDB for MySQL. Di pojok kiri atas konsol, pilih wilayah. Di panel navigasi sebelah kiri, klik Clusters. Temukan kluster yang ingin Anda kelola dan klik ID kluster tersebut.
Di panel navigasi sebelah kiri, klik Data Security.
Pada halaman Whitelist Settings, temukan grup daftar putih default dan klik Modify di kolom Actions.
CatatanAnda juga dapat mengklik Create Whitelist untuk membuat grup kustom.
Di kotak dialog Edit Whitelist, hapus alamat IP default 127.0.0.1. Masukkan alamat IP atau blok CIDR yang perlu mengakses kluster, lalu klik OK.
CatatanUntuk menambahkan alamat IP publik klien Anda ke daftar putih, Anda harus terlebih dahulu menentukan alamat IP tersebut. Untuk informasi lebih lanjut, lihat Connections.
Langkah 3: Hubungkan ke kluster
AnalyticDB for MySQL mendukung koneksi ke kluster AnalyticDB for MySQL melalui Data Management Service (DMS), klien MySQL seperti Navicat for MySQL, DBeaver, DBVisualizer, dan SQL WorkBench/J, alat visualisasi BI, atau alat command-line MySQL. Anda juga dapat menghubungkan aplikasi ke kluster AnalyticDB for MySQL dengan mengonfigurasi informasi seperti alamat koneksi kluster, port, dan akun database.
Menggunakan DMS untuk menghubungkan ke AnalyticDB for MySQL
Login ke Konsol AnalyticDB for MySQL. Di pojok kiri atas konsol, pilih wilayah. Di panel navigasi sebelah kiri, klik Clusters. Temukan kluster yang ingin Anda kelola dan klik ID kluster tersebut.
Pada halaman Cluster Information, klik Log On to Database di pojok kanan atas.
Di kotak dialog yang muncul, masukkan informasi login.
Parameter
Deskripsi
Database Type
Nilai default adalah AnalyticDB for MySQL 3.0. Anda tidak perlu mengubahnya.
Instance Region
Nilai default adalah wilayah tempat instans saat ini berada. Anda tidak perlu mengubahnya.
Cluster ID
Nilai default adalah ID kluster dari kluster saat ini. Anda tidak perlu mengubahnya.
Database Account
Nama akun database untuk kluster tersebut.
Database Password
Kata sandi untuk akun database.
CatatanAnda dapat memilih Remember Password untuk login otomatis ke kluster AnalyticDB for MySQL saat ini di masa mendatang tanpa memasukkan akun dan kata sandi database.
CatatanSaat pertama kali menggunakan DMS untuk login ke kluster AnalyticDB for MySQL, mode kontrol diatur ke Flexible Management secara default. Setelah login, Anda juga dapat mengubah mode kontrol dengan mengedit instans. Untuk informasi lebih lanjut, lihat Edit an instance dan Control modes.
Setelah mengonfigurasi parameter login, Anda dapat mengklik Test Connection di pojok kiri bawah. Jika pengujian koneksi gagal, periksa informasi kluster, seperti akun atau kata sandi, berdasarkan pesan error.
Sistem secara otomatis menambahkan alamat IP server DMS ke daftar putih alamat IP database. Jika alamat IP tidak ditambahkan secara otomatis, tambahkan secara manual. Untuk informasi lebih lanjut, lihat Langkah 2: Konfigurasikan daftar putih alamat IP dan DMS IP address whitelist.
Klik Log On.
Hubungkan secara terprogram ke AnalyticDB for MySQL
Gunakan tool command-line MySQL untuk menghubungkan ke AnalyticDB for MySQL
Gunakan klien command-line MySQL untuk menghubungkan ke kluster AnalyticDB for MySQL
Gunakan klien untuk menghubungkan ke AnalyticDB for MySQL
Hubungkan AnalyticDB for MySQL ke tool visualisasi data
Langkah 4: Buat database
Anda dapat membuat maksimal 2.048 database di setiap kluster.
Pada tab SQL INFORMATION_SCHEMA, masukkan pernyataan CREATE DATABASE di SQL Console untuk membuat database.
Sintaks:
CREATE DATABASE [IF NOT EXISTS] $db_nameDeskripsi parameter:
db_nameadalah nama database. Nama harus dimulai dengan huruf kecil, dapat berisi huruf, angka, dan garis bawah (_), serta tidak boleh mengandung dua atau lebih garis bawah berturut-turut (_). Panjang nama maksimal 64 karakter.CatatanNama database tidak boleh
analyticdbkarena merupakan database bawaan.Contoh:
create database adb_demo;create database if not exists adb_demo2;
Klik Execute di pojok kiri atas. Database berhasil dibuat.
Langkah 5: Impor dan kueri data
Prasyarat
Buat direktori di Object Storage Service (OSS) untuk menyimpan data AnalyticDB for MySQL.
Aktifkan OSS. Untuk informasi lebih lanjut, lihat Aktifkan OSS.
Buat bucket. Untuk informasi lebih lanjut, lihat Buat bucket.
PentingBucket OSS harus berada di wilayah yang sama dengan kluster AnalyticDB for MySQL Anda.
Buat direktori. Untuk informasi lebih lanjut, lihat Buat direktori.
Unggah objek uji. Untuk informasi lebih lanjut, lihat Unggah objek.
Dalam contoh ini, objek
oss_import_test_data.txtdiunggah ke direktori<bucket-name>.oss-cn-hangzhou.aliyuncs.com/adb/di OSS. Baris dipisahkan oleh jeda baris dan kolom dipisahkan oleh titik koma (;). Data sampel sebagai berikut:uid;other 12;hello_world_1 27;hello_world_2 28;hello_world_3 33;hello_world_4 37;hello_world_5 40;hello_world_6 ...
Ikuti Panduan Memulai AnalyticDB for MySQL untuk menyelesaikan persiapan, seperti membuat kluster, mengatur daftar putih alamat IP, serta membuat akun dan database. Untuk informasi lebih lanjut, lihat Prosedur.
Prosedur
Jalankan pernyataan CREATE TABLE untuk membuat tabel eksternal di database
adb_demo. Untuk informasi sintaks membuat tabel eksternal OSS untuk data dalam format CSV, Parquet, atau TEXT, lihat Sintaks untuk tabel eksternal OSS.Kueri data OSS.
Mengkueri tabel eksternal menggunakan sintaks yang sama dengan mengkueri tabel internal AnalyticDB for MySQL. Anda dapat langsung mengkueri data, seperti pada contoh berikut:
select uid, other from oss_import_test_external_table where uid < 100 limit 10;Untuk objek data CSV atau TEXT berukuran besar, kami sangat menyarankan Anda mengimpor data ke AnalyticDB for MySQL sebelum melakukan kueri untuk mendapatkan performa kueri yang lebih baik.
Untuk objek data Parquet, kueri langsung umumnya memiliki performa tinggi. Anda dapat memutuskan apakah akan mengimpor data ke AnalyticDB for MySQL sebelum melakukan kueri berdasarkan kebutuhan Anda.
Jalankan pernyataan CREATE TABLE untuk membuat tabel tujuan bernama
adb_oss_import_testdi databaseadb_demoguna menyimpan data yang diimpor dari OSS.CREATE TABLE IF NOT EXISTS adb_oss_import_test ( uid string, other string ) DISTRIBUTED BY HASH(uid);-
Jalankan pernyataan INSERT untuk mengimpor data dari tabel eksternal OSS ke AnalyticDB for MySQL.
PentingSecara default, pernyataan
INSERT INTOdanINSERT OVERWRITE SELECTmengimpor data secara sinkron. Jika Anda mengimpor data dalam jumlah besar, misalnya ratusan gigabyte, koneksi antara klien dan server AnalyticDB for MySQL harus dipertahankan dalam waktu lama. Selama periode ini, masalah jaringan dapat mengganggu koneksi, sehingga menyebabkan kegagalan impor data. Oleh karena itu, jika Anda mengimpor data dalam jumlah besar, kami menyarankan Anda menggunakan pernyataanSUBMIT JOB INSERT OVERWRITE SELECTuntuk mengimpor data secara asinkron.-
Metode 1: Jalankan pernyataan
INSERT INTOuntuk mengimpor data. Jika nilai kunci primer duplikat, data baru diabaikan dan data yang ada tidak diperbarui. Perilaku ini setara dengan menggunakanINSERT IGNORE INTO. Untuk informasi lebih lanjut, lihat INSERT INTO. Berikut contoh pernyataannya:INSERT INTO adb_oss_import_test SELECT * FROM oss_import_test_external_table; -
Metode 2: Jalankan pernyataan INSERT OVERWRITE untuk mengimpor data. Pernyataan ini menimpa data yang ada di tabel. Berikut contoh pernyataannya:
INSERT OVERWRITE adb_oss_import_test SELECT * FROM oss_import_test_external_table; -
Metode 3: Jalankan pernyataan
INSERT OVERWRITEuntuk mengimpor data secara asinkron. Anda dapat menggunakan pernyataanSUBMIT JOBuntuk mengirimkan tugas asinkron. Untuk mempercepat tugas tulis, Anda dapat menambahkan petunjuk/*+ direct_batch_load=true*/. Untuk informasi lebih lanjut, lihat Tulisan asinkron. Berikut contoh pernyataannya:SUBMIT JOB INSERT OVERWRITE adb_oss_import_test SELECT * FROM oss_import_test_external_table;Hasil berikut dikembalikan:
+---------------------------------------+ | job_id | +---------------------------------------+ | 2020112122202917203100908203303****** |Untuk informasi lebih lanjut tentang cara mengirimkan tugas asinkron, lihat Kirimkan tugas impor asinkron.
-
Jalankan perintah berikut untuk mengkueri data di tabel
adb_oss_import_test.SELECT * FROM adb_oss_import_test;
Sintaks untuk tabel eksternal OSS
Tabel eksternal OSS non-partisi
CREATE TABLE [IF NOT EXISTS] table_name
(column_name column_type[, …])
ENGINE='OSS'
TABLE_PROPERTIES='{
"endpoint":"endpoint",
"url":"OSS_LOCATION",
"accessid":"accesskey_id",
"accesskey":"accesskey_secret",
"format":"CSV|ORC|Parquet",
"delimiter":";",
"skip_header_line_count":1,
"charset":"utf-8"
}';
|
Jenis tabel eksternal |
Parameter |
Wajib |
Deskripsi |
|
Tabel eksternal untuk file dalam format CSV, Parquet, atau ORC OSS |
ENGINE='OSS' |
Ya |
Mesin tabel. Atur parameter ini ke OSS. |
|
endpoint |
Endpoint bucket OSS. AnalyticDB for MySQL hanya dapat mengakses OSS melalui VPC. Catatan
Login ke Konsol OSS. Klik nama bucket tujuan. Di halaman Overview bucket, lihat Endpoint. |
||
|
url |
Jalur file atau folder OSS.
|
||
|
accessid |
ID AccessKey dari Akun Alibaba Cloud atau Pengguna RAM yang memiliki izin pengelolaan OSS. Untuk informasi lebih lanjut tentang cara mendapatkan ID AccessKey, lihat Akun dan Izin. |
||
|
accesskey |
Rahasia AccessKey dari Akun Alibaba Cloud atau Pengguna RAM yang memiliki izin pengelolaan OSS. Untuk informasi lebih lanjut tentang cara mendapatkan Rahasia AccessKey, lihat Akun dan Izin. |
||
|
Tabel eksternal untuk file CSV |
delimiter |
Menentukan pemisah kolom untuk file data CSV. |
|
|
Tabel eksternal untuk file Parquet atau ORC OSS |
format |
Format file data.
Catatan
|
|
|
Tabel eksternal untuk file CSV |
null_value |
Tidak |
Menentukan nilai Penting
Parameter ini didukung hanya oleh kluster dengan versi kernel 3.1.4.2 atau lebih baru. |
|
ossnull |
Aturan yang memetakan nilai ke nilai
Catatan
Contoh di atas mengasumsikan bahwa |
||
|
skip_header_line_count |
Jumlah baris header yang dilewati di awal file saat mengimpor data. Baris pertama file CSV adalah header tabel. Jika Anda mengatur parameter ini ke 1, baris pertama akan dilewati secara otomatis selama impor data. Nilai default adalah 0, artinya tidak ada baris yang dilewati. |
||
|
oss_ignore_quote_and_escape |
Menentukan apakah tanda kutip dan karakter escape dalam nilai field diabaikan. Nilai default adalah false, artinya tanda kutip dan karakter escape tidak diabaikan. Penting
Parameter ini didukung hanya oleh kluster dengan versi kernel 3.1.4.2 atau lebih baru. |
||
|
charset |
Set karakter tabel eksternal OSS. Nilai yang valid:
Penting
Parameter ini didukung hanya oleh kluster dengan versi kernel 3.1.10.4 atau lebih baru. |
-
Nama kolom dan urutannya dalam pernyataan CREATE EXTERNAL TABLE harus sesuai dengan file sumber Parquet atau ORC. Nama kolom tidak peka terhadap huruf besar/kecil.
-
Anda dapat membuat tabel eksternal menggunakan subset kolom dari file sumber. Kolom yang tidak ditentukan dalam pernyataan CREATE EXTERNAL TABLE akan diabaikan.
-
Jika pernyataan CREATE EXTERNAL TABLE mencakup kolom yang tidak ada dalam file Parquet atau ORC, kueri pada kolom tersebut akan mengembalikan NULL.
AnalyticDB for MySQL memungkinkan Anda membaca dan menulis file Hive TEXT menggunakan tabel eksternal OSS dalam format CSV. Berikut contoh pernyataan untuk membuat tabel tersebut:
CREATE TABLE adb_csv_hive_format_oss (
a tinyint,
b smallint,
c int,
d bigint,
e boolean,
f float,
g double,
h varchar,
i varchar, -- binary
j timestamp,
k DECIMAL(10, 4),
l varchar, -- char(10)
m varchar, -- varchar(100)
n date
) ENGINE = 'OSS' TABLE_PROPERTIES='{
"format": "csv",
"endpoint":"oss-cn-hangzhou-internal.aliyuncs.com",
"accessid":"LTAI****************",
"accesskey":"yourAccessKeySecret",
"url":"oss://testBucketname/adb_data/",
"delimiter": "\\1",
"null_value": "\\\\N",
"oss_ignore_quote_and_escape": "true",
"ossnull": 2
}';
Saat membuat tabel eksternal OSS dalam format CSV untuk membaca file Hive TEXT, perhatikan hal berikut:
-
Pemisah kolom default untuk file Hive TEXT adalah \1. Jika Anda ingin membaca dan menulis file Hive TEXT menggunakan tabel eksternal OSS dalam format CSV, Anda harus meng-escape
\1menjadi\\1pada parameterdelimiter. -
Nilai
NULLdefault untuk file Hive TEXT adalah \N. Jika Anda ingin membaca dan menulis file Hive TEXT menggunakan tabel eksternal OSS dalam format CSV, Anda harus meng-escape\Nmenjadi\\\\Npada parameternull_value. -
Tipe data primitif lainnya di Hive, seperti
BOOLEAN, memiliki pemetaan satu-ke-satu ke tipe data di AnalyticDB for MySQL. Namun, tipeBINARY,CHAR(n), danVARCHAR(n)semuanya dipetakan ke tipeVARCHARdi AnalyticDB for MySQL.
Tabel eksternal OSS terpartisi
Jika sumber data OSS Anda berisi partisi, data disimpan dalam struktur direktori hierarkis di OSS. Berikut contohnya:
parquet_partition_classic/
├── p1=2020-01-01
│ ├── p2=4
│ │ ├── p3=SHANGHAI
│ │ │ ├── 000000_0
│ │ │ └── 000000_1
│ │ └── p3=SHENZHEN
│ │ └── 000000_0
│ └── p2=6
│ └── p3=SHENZHEN
│ └── 000000_0
├── p1=2020-01-02
│ └── p2=8
│ ├── p3=SHANGHAI
│ │ └── 000000_0
│ └── p3=SHENZHEN
│ └── 000000_0
└── p1=2020-01-03
└── p2=6
├── p2=HANGZHOU
└── p3=SHENZHEN
└── 000000_0
Pada data di atas, p1, p2, dan p3 masing-masing adalah partisi tingkat-1, tingkat-2, dan tingkat-3. Untuk sumber data jenis ini, Anda biasanya mengkueri data berdasarkan partisi. Untuk melakukannya, Anda harus menentukan kolom kunci partisi saat membuat tabel eksternal OSS. Berikut contoh pernyataan untuk membuat tabel eksternal OSS terpartisi untuk file Parquet:
CREATE TABLE [IF NOT EXISTS] table_name
(column_name column_type[, …])
ENGINE='OSS'
TABLE_PROPERTIES='{
"endpoint":"endpoint",
"url":"OSS_LOCATION",
"accessid":"accesskey_id",
"accesskey":"accesskey_secret",
"format":"parquet",
"partition_column":"p1, p2, p3"
}';
-
Parameter
partition_columndalamTABLE_PROPERTIESmenentukan kolom kunci partisi, seperti p1, p2, dan p3. Kolom kunci partisi harus dideklarasikan dalam parameterpartition_columnsesuai urutan dari partisi tingkat-1 hingga tingkat-3. -
Definisi kolom harus mencakup kolom kunci partisi, seperti p1, p2, dan p3, beserta tipe datanya. Kolom kunci partisi harus ditempatkan di akhir definisi kolom.
-
Urutan kolom kunci partisi dalam definisi kolom harus sesuai dengan urutan dalam parameter
partition_column. -
Kolom kunci partisi mendukung tipe data berikut:
BOOLEAN,TINYINT,SMALLINT,INT,INTEGER,BIGINT,FLOAT,DOUBLE,DECIMAL,VARCHAR,STRING,DATE, danTIMESTAMP. -
Saat Anda mengkueri data, kolom kunci partisi ditampilkan dan digunakan seperti kolom data lainnya.
-
Jika Anda tidak menentukan format, format default adalah CSV.
-
Untuk informasi lebih lanjut tentang parameter lainnya, lihat Deskripsi parameter.
Referensi
Untuk cara lain mengimpor data, lihat Sumber data yang didukung.