Edisi Gudang Data tidak lagi tersedia untuk pembelian. Kluster baru dapat dibeli sebagai Edisi Perusahaan atau Edisi Dasar. Jika Anda sudah memiliki kluster Edisi Gudang Data, ikuti panduan ini untuk menyiapkannya dan mulai menjalankan kueri data.
AnalyticDB for MySQL adalah layanan pemrosesan analitik online (OLAP) yang memproses data dalam skala petabyte secara real time. Panduan ini akan memandu Anda melalui lima langkah, mulai dari kluster yang baru dibuat hingga menjalankan kueri pertama Anda.
Pada akhir panduan ini, Anda akan:
Membuat akun database dan menetapkan kata sandi
Mengonfigurasi daftar putih alamat IP untuk mengizinkan koneksi klien
Terhubung ke kluster menggunakan Data Management (DMS) atau klien pilihan Anda
Membuat database
Memuat data dari Object Storage Service (OSS) dan menjalankan kueri
Prasyarat
Sebelum memulai, pastikan Anda memiliki:
Kluster AnalyticDB for MySQL Edisi Gudang Data. Catat ID kluster dan wilayah tempat kluster tersebut berada.
Bucket OSS di wilayah yang sama dengan kluster, dengan direktori dan file data yang telah diunggah. Untuk menyiapkan OSS:
Untuk contoh impor pada Langkah 5, panduan ini menggunakan file bernama oss_import_test_data.txt yang diunggah ke <bucket-name>.oss-cn-hangzhou.aliyuncs.com/adb/. File tersebut menggunakan line feed sebagai pemisah baris dan titik koma (;) sebagai pemisah kolom:
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
...Langkah 1: Membuat akun database
AnalyticDB for MySQL mendukung dua jenis akun: Privileged Account dan akun standar. Untuk perbandingan kedua jenis tersebut, lihat bagian "Jenis akun" pada Membuat akun database.
Membuat akun istimewa
Masuk ke Konsol AnalyticDB for MySQL. Di pojok kiri atas, pilih wilayah. Di panel navigasi sebelah kiri, klik Clusters. Temukan kluster tersebut lalu klik ID klusternya.
Di panel navigasi sebelah kiri, klik Accounts.
Pada tab Accounts, klik Create Privileged Account.
Pada panel Create Account, konfigurasikan parameter berikut.
Parameter Deskripsi Database Account Nama akun istimewa. Harus memenuhi persyaratan yang ditampilkan di layar. Account Type Secara otomatis diatur ke Privileged Account untuk kluster Edisi Gudang Data. New Password Password akun. Harus memenuhi persyaratan yang ditampilkan di layar. Confirm Password Masukkan ulang password. Description (Opsional) Catatan untuk mengidentifikasi akun. Klik OK.
Membuat akun standar
Akun standar yang dibuat melalui pernyataan SQL tidak ditampilkan di konsol. Gunakan perintah SQL berikut untuk mengelolanya:
Membuat akun: CREATE USER
Memberikan izin: GRANT
Mencabut izin: REVOKE
Mengganti nama akun: RENAME USER
Menghapus akun: DROP USER
Langkah 2: Mengonfigurasi daftar putih alamat IP
Daftar putih default hanya berisi 127.0.0.1, yang memblokir semua koneksi eksternal. Tambahkan alamat IP atau blok CIDR klien Anda untuk mengizinkan akses.
Alamat IP 0.0.0.0 tidak diizinkan dalam daftar putih.
Sebelum mengonfigurasi daftar putih:
Untuk mengizinkan semua IP dalam subnet, gunakan notasi CIDR — misalnya,
10.10.10.0/24.Untuk menambahkan beberapa entri, pisahkan dengan koma tanpa spasi — misalnya,
192.168.0.1,172.16.213.9.Perubahan berlaku dalam waktu 1 menit dan tidak mengganggu kluster yang sedang berjalan.
Jika IP publik Anda sering berubah dan Anda perlu mengizinkan semua IP publik, hubungi dukungan teknis.
Mengonfigurasi daftar putih
Di Konsol AnalyticDB for MySQL, buka halaman detail kluster.
Di panel navigasi sebelah kiri, klik Data Security.
Pada tab Whitelist Settings, klik Modify di sebelah kanan daftar putih default.
Untuk membuat daftar putih terpisah alih-alih mengedit yang default, klik Create Whitelist.
Pada panel Edit Whitelist, hapus
127.0.0.1, masukkan alamat IP atau blok CIDR yang ingin diizinkan, lalu klik OK.Untuk mengetahui alamat IP egress mesin klien Anda, lihat Connections.
Langkah 3: Terhubung ke kluster
Lakukan koneksi menggunakan salah satu metode berikut.
Gunakan DMS
Di Konsol AnalyticDB for MySQL, buka halaman detail kluster.
Di pojok kanan atas halaman Cluster Information, klik Log On to Database.
Pada kotak dialog, isi detail koneksi.
- Saat pertama kali terhubung melalui DMS, kluster dikelola dalam mode Flexible ManagementEdit an instance. Untuk mengubah mode kontrol, lihat Modify database instances. Untuk mode kontrol yang tersedia, lihat Control modes. - Klik Test Connection di pojok kiri bawah untuk memverifikasi koneksi sebelum login. - DMS secara otomatis menambahkan IP servernya ke daftar putih kluster. Jika gagal, tambahkan secara manual — lihat Add DMS IP addresses and CIDR blocks to security settings.
Parameter Deskripsi Database Type Default-nya adalah AnalyticDB MySQL 3.0. Instance Region Default-nya adalah wilayah kluster. Instance ID Default-nya adalah ID kluster saat ini. Database Account Nama akun database. Database Password Password untuk akun tersebut. Pilih Remember Password agar tidak perlu memasukkan kredensial lagi lain kali. Klik Login.
Gunakan client atau tool
Klien MySQL:
Alat business intelligence (BI):
Kode aplikasi:
Langkah 4: Membuat database
Setiap kluster mendukung hingga 2.048 database.
Di DMS, pilih database sistem INFORMATION_SCHEMA dan buka tab SQL Console.

Jalankan pernyataan berikut untuk membuat database:
Panjang maksimal 64 karakter
Hanya berisi huruf, angka, dan garis bawah (
_)Dimulai dengan huruf kecil
Tidak mengandung garis bawah berturut-turut
Jangan gunakan
analyticdbsebagai nama database. Nama tersebut dicadangkan untuk database bawaan.CREATE DATABASE [IF NOT EXISTS] db_name;Nilai
db_nameharus: Contoh:CREATE DATABASE adb_demo; CREATE DATABASE IF NOT EXISTS adb_demo2;Di pojok kiri atas tab SQL Console, klik Execute. Database berhasil dibuat.

Langkah 5: Impor dan kueri data
Langkah ini menunjukkan cara memuat data dari OSS ke AnalyticDB for MySQL menggunakan tabel eksternal, lalu menyalinnya ke tabel internal untuk kueri yang efisien.
Impor data dari OSS
Di SQL Console, pilih database
adb_demodan buat tabel eksternal OSS:CREATE TABLE oss_import_test_external_table ( uid STRING, other STRING ) ENGINE='OSS' TABLE_PROPERTIES='{ "endpoint": "oss-cn-hangzhou-internal.aliyuncs.com", "url": "oss://<bucket-name>/adb/oss_import_test_data.txt", "accessid": "<your-access-key-id>", "accesskey": "<your-access-key-secret>", "format": "csv", "delimiter": ";" }';Untuk sintaks lengkap dan semua parameter yang didukung, lihat Referensi tabel eksternal OSS.
Jalankan kueri uji untuk memverifikasi bahwa tabel eksternal membaca data dengan benar:
Untuk file format CSV dan TEXT dengan volume data besar, impor data ke tabel internal sebelum menjalankan kueri. Kueri langsung terhadap tabel eksternal berukuran besar mungkin memiliki performa lebih rendah. Untuk file format Parquet, kueri langsung juga didukung.
SELECT uid, other FROM oss_import_test_external_table WHERE uid < 100 LIMIT 10;Kueri tersebut mengembalikan baris-baris dari file OSS. Jika tidak ada baris yang dikembalikan, periksa apakah endpoint, URL, dan kredensial sudah benar.
Buat tabel tujuan internal:
CREATE TABLE IF NOT EXISTS adb_oss_import_test ( uid STRING, other STRING ) DISTRIBUTED BY HASH(uid);Impor data OSS ke tabel internal. Pilih salah satu metode berikut berdasarkan volume data Anda: Metode 1 — Impor sinkron (set data kecil): Gunakan
INSERT INTOketika kunci primer duplikat harus diabaikan (setara denganINSERT IGNORE INTO):PentingKedua perintah
INSERT INTOdanINSERT OVERWRITE SELECTdijalankan secara sinkron. Untuk set data besar (ratusan gigabyte), pemutusan jaringan selama impor berdurasi panjang akan menyebabkan pekerjaan gagal. Gunakan Metode 2 sebagai gantinya.INSERT INTO adb_oss_import_test SELECT * FROM oss_import_test_external_table;Gunakan
INSERT OVERWRITEketika kunci primer duplikat harus menimpa baris yang sudah ada:INSERT OVERWRITE adb_oss_import_test SELECT * FROM oss_import_test_external_table;Metode 2 — Impor asinkron (set data besar, direkomendasikan): Kirim impor sebagai pekerjaan latar belakang menggunakan
SUBMIT JOB. Anda dapat menambahkan petunjuk (/*+ direct_batch_load=true*/) untuk mempercepat proses muat:SUBMIT JOB INSERT OVERWRITE adb_oss_import_test SELECT * FROM oss_import_test_external_table;Perintah tersebut langsung mengembalikan ID pekerjaan:
+---------------------------------------+ | job_id | +---------------------------------------+ | 2020112122202917203100908203303****** | +---------------------------------------+Untuk memantau status pekerjaan, lihat Asynchronously submit an import job.
Setelah impor selesai, kueri tabel internal untuk memverifikasi data:
SELECT * FROM adb_oss_import_test;
Referensi tabel eksternal OSS
Tabel non-partisi
CREATE TABLE [IF NOT EXISTS] table_name
(column_name column_type[, ...])
ENGINE='OSS'
TABLE_PROPERTIES='{
"endpoint": "endpoint",
"url": "oss://bucket-name/path/",
"accessid": "your-access-key-id",
"accesskey": "your-access-key-secret",
"format": "text|orc|parquet",
"delimiter": ";",
"skip_header_line_count": 1,
"charset": "utf-8"
}';Referensi parameter:
| Parameter | Wajib | Deskripsi |
|---|---|---|
ENGINE='OSS' | Ya | Diatur ke OSS untuk semua tabel eksternal OSS. |
endpoint | Ya | Titik akhir virtual private cloud (VPC) bucket OSS. AnalyticDB for MySQL mengakses OSS melalui VPC. Temukan titik akhir tersebut di halaman Overview bucket di Konsol OSS. |
url | Ya | Jalur ke objek atau direktori OSS. Tiga format didukung: jalur mutlak objek (oss://bucket/path/file.csv), jalur direktori yang diakhiri dengan / (oss://bucket/path/), atau pola wildcard yang diakhiri dengan * (oss://bucket/path/prefix*). Menetapkan url ke direktori mencakup semua objek dalam direktori tersebut. |
accessid | Ya | ID AccessKey dari Akun Alibaba Cloud atau Pengguna Resource Access Management (RAM) yang memiliki izin OSS. Lihat Accounts and permissions. |
accesskey | Ya | Rahasia AccessKey untuk akun atau Pengguna RAM tersebut. |
format | Untuk Parquet dan ORC | Diatur ke parquet untuk file Parquet atau orc untuk file ORC. Jika dihilangkan, diasumsikan format CSV. |
delimiter | Untuk CSV | Karakter pemisah kolom. |
null_value | Tidak | String yang merepresentasikan NULL dalam file CSV. Default-nya adalah string kosong. Memerlukan versi kluster V3.1.4.2 atau lebih baru. |
ossnull | Tidak | Aturan deteksi NULL untuk file CSV. 1 (default): hanya string kosong. 2: hanya string kosong yang dikutip. 3: keduanya. 4: tidak satupun. |
skip_header_line_count | Tidak | Jumlah baris header yang dilewati. Default-nya adalah 0. Atur ke 1 untuk melewati baris pertama. |
oss_ignore_quote_and_escape | Tidak | Apakah tanda kutip dan karakter escape diabaikan. Default-nya adalah false. Memerlukan versi kluster V3.1.4.2 atau lebih baru. |
charset | Tidak | Set karakter file. utf-8 (default) atau gbk. Memerlukan versi kluster V3.1.10.4 atau lebih baru. |
Saat membuat tabel eksternal untuk file Parquet atau ORC:
Nama kolom dalam pernyataan CREATE TABLE harus sesuai dengan nama kolom dalam file (tidak case-sensitive).Urutan kolom dalam pernyataan harus sesuai dengan urutan kolom dalam file.
Kolom dalam file yang tidak tercantum dalam pernyataan dikecualikan dari tabel.
Kolom yang tercantum dalam pernyataan tetapi tidak ada dalam file akan mengembalikan NULL.
Tabel partisi
Untuk data OSS yang diorganisir ke dalam partisi direktori bergaya Hive, tentukan partition_column untuk mengaktifkan pemangkasan partisi selama kueri.
Struktur direktori contoh:
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_0Pernyataan pembuatan:
CREATE TABLE [IF NOT EXISTS] table_name
(column_name column_type[, ...])
ENGINE='OSS'
TABLE_PROPERTIES='{
"endpoint": "endpoint",
"url": "oss://bucket-name/parquet_partition_classic/",
"accessid": "your-access-key-id",
"accesskey": "your-access-key-secret",
"format": "parquet",
"partition_column": "p1, p2, p3"
}';Aturan kunci partisi:
Cantumkan kolom kunci partisi (
partition_column) dalam urutan yang sama dengan hierarki direktori.Letakkan kolom kunci partisi di end definisi kolom.
Kolom kunci partisi mendukung:
BOOLEAN,TINYINT,SMALLINT,INT,INTEGER,BIGINT,FLOAT,DOUBLE,DECIMAL,VARCHAR,STRING,DATE,TIMESTAMP.Kolom kunci partisi dapat dikueri dan ditampilkan seperti kolom lainnya.
Pemetaan tipe data antara Parquet, ORC, dan AnalyticDB for MySQL
Pemetaan tipe data antara Parquet dan AnalyticDB for MySQL
Dari Parquet ke AnalyticDB for MySQL:
| Tipe dasar Parquet | Tipe logis Parquet | Tipe AnalyticDB for MySQL |
|---|---|---|
| BOOLEAN | — | BOOLEAN |
| INT32 | INT_8 | TINYINT |
| INT32 | INT_16 | SMALLINT |
| INT32 | — | INT atau INTEGER |
| INT64 | — | BIGINT |
| FLOAT | — | FLOAT |
| DOUBLE | — | DOUBLE |
| FIXED_LEN_BYTE_ARRAY / BINARY / INT64 / INT32 | DECIMAL | DECIMAL |
| BINARY | UTF-8 | VARCHAR / STRING / JSON |
| INT32 | DATE | DATE |
| INT64 | TIMESTAMP_MILLIS | TIMESTAMP atau DATETIME |
| INT96 | — | TIMESTAMP atau DATETIME |
Tabel eksternal Parquet dengan kolom bertipe STRUCT tidak dapat dibuat.
Pemetaan tipe data antara ORC dan AnalyticDB for MySQL
Dari ORC ke AnalyticDB for MySQL:
| Tipe ORC | Jenis AnalyticDB for MySQL |
|---|---|
| BOOLEAN | BOOLEAN |
| BYTE | TINYINT |
| SHORT | SMALLINT |
| INT | INT atau INTEGER |
| LONG | BIGINT |
| DECIMAL | DECIMAL |
| FLOAT | FLOAT |
| DOUBLE | DOUBLE |
| BINARY / STRING / VARCHAR | VARCHAR / STRING / JSON |
| TIMESTAMP | TIMESTAMP atau DATETIME |
| DATE | DATE |
Tabel eksternal ORC dengan tipe LIST, STRUCT, atau UNION tidak dapat dibuat. Tabel eksternal ORC dengan tipe MAP dapat dibuat tetapi tidak dapat dikueri.
Membaca file TEXT Hive
Untuk membaca file TEXT Hive menggunakan tabel eksternal CSV, escape delimiter default Hive:
Delimiter kolom default Hive
\1— escape sebagai\\1dalamdelimiterNilai NULL default Hive
\N— escape sebagai\\\\Ndalamnull_valueTipe Hive
BINARY,CHAR(N), danVARCHAR(N)semuanya dipetakan keVARCHARdi AnalyticDB for MySQL
Contoh:
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 di Hive
j TIMESTAMP,
k DECIMAL(10, 4),
l VARCHAR, -- CHAR(10) di Hive
m VARCHAR, -- VARCHAR(100) di Hive
n DATE
)
ENGINE='OSS'
TABLE_PROPERTIES='{
"format": "csv",
"endpoint": "oss-cn-hangzhou-internal.aliyuncs.com",
"accessid": "LTAI****************",
"accesskey": "<your-access-key-secret>",
"url": "oss://testBucketname/adb_data/",
"delimiter": "\\1",
"null_value": "\\\\N",
"oss_ignore_quote_and_escape": "true",
"ossnull": 2
}';Langkah selanjutnya
Untuk opsi ingesti data lainnya (Kafka, MySQL, dan lainnya), lihat Sumber data yang didukung.
Untuk mempelajari konsep dan kasus penggunaan AnalyticDB for MySQL, lihat Pengenalan produk.
Untuk meninjau detail penagihan Edisi Gudang Data, lihat Harga.