Tutorial ini ditujukan untuk pengembang yang baru mengenal MaxCompute. Anda akan menggunakan klien MaxCompute untuk terhubung ke MaxCompute dan menjalankan alur kerja analisis data dasar: membuat proyek dan tabel, mengunggah serta mengkueri data, dan mengunduh hasilnya.
MaxCompute mendukung berbagai metode koneksi. Jika Anda lebih suka menggunakan antarmuka visual untuk PoC produk atau memerlukan solusi satu atap untuk sinkronisasi data, desain proses bisnis, pengembangan data, manajemen, dan O&M,ikuti tutorial Mulai cepat dengan MaxCompute menggunakan DataWorks untuk terhubung ke MaxCompute dan menganalisis data.
Apa yang akan Anda pelajari
Tutorial ini mencakup operasi utama berikut:
Create a MaxCompute project: Pelajari cara membuat proyek MaxCompute sebagai lingkungan terisolasi untuk tugas pemrosesan data Anda.
Configure and start the MaxCompute client: Instal dan konfigurasikan klien MaxCompute untuk menghubungkan lingkungan lokal Anda ke MaxCompute.
Create tables: Pelajari cara mendefinisikan dan membuat berbagai jenis struktur tabel di MaxCompute untuk menyimpan dan mengorganisasi data.
Import data: Gunakan tool Tunnel untuk mengunggah data lokal ke MaxCompute secara efisien.
Run SQL queries and analysis: Gunakan SQL standar di MaxCompute untuk mengkueri, mentransformasi, dan mengagregasi data guna mendapatkan insight.
Export result data: Unduh hasil yang telah diproses ke mesin lokal Anda.
Kasus penggunaan
Bayangkan Anda seorang analis data di lembaga keuangan. Anda memiliki data mentah tentang individu lajang, termasuk pendidikan, informasi kredit, dan status kepemilikan rumah mereka. Tugas Anda adalah menganalisis perilaku pinjaman rumah mereka untuk mendapatkan insight yang membantu lembaga tersebut mengoptimalkan produk kreditnya atau menerapkan kampanye pemasaran yang ditargetkan.
Langkah 1: Persiapkan akun Anda
1.1 Daftar Akun Alibaba Cloud
Jika Anda sudah memiliki Akun Alibaba Cloud, Anda dapat melewati langkah ini.
Kunjungi atau situs web resmi Alibaba Cloud. Di sudut kanan atas halaman utama, klik atau Free Trial.
Pada halaman Account Registration, ikuti petunjuk di layar untuk menyelesaikan pendaftaran.
1.2 Buat AccessKey
Buka halaman AccessKey dan klik Create AccessKey.
Pilih I understand the security risks of using the AccessKey of my cloud account, lalu klik Continue to use cloud account AccessKey.
Ikuti petunjuk di layar untuk membuat AccessKey. Klik Download CSV File atau Copy untuk menyimpan ID AccessKey dan AccessKey Secret ke mesin lokal Anda.
AccessKey Secret hanya ditampilkan sekali saat pembuatan. Simpan dengan aman.
Simpan AccessKey Anda di lokasi yang aman dan jangan bagikan kepada siapa pun.
Jika AccessKey Anda dikompromikan, segera hapus dan buat yang baru.
Langkah 2: Buat proyek MaxCompute
2.1 Aktifkan MaxCompute
Login ke halaman produk MaxCompute Alibaba Cloud dan ikuti petunjuk di halaman tersebut untuk mengaktifkan layanan MaxCompute.
Metode Penagihan: pay-as-you-go.
Wilayah: Singapura (Tutorial ini menggunakan wilayah Singapura sebagai contoh).
Ikuti petunjuk di layar untuk menyelesaikan aktivasi layanan.
2.2 Buat proyek
Login ke Konsol MaxCompute dan pilih wilayah di pojok kiri atas.
Tutorial ini menggunakan wilayah Singapore.
Di panel navigasi kiri, pilih .
Pada tab Internal Project, klik Create Project.
Pada kotak dialog Create Project, konfigurasikan pengaturan proyek sesuai petunjuk.
Project Name (Globally Unique): Masukkan nama proyek, misalnya mc_dev.
Konfigurasi lainnya: Atur opsi lain sesuai kebutuhan bisnis Anda.
Klik OK untuk membuat proyek.
Langkah 3: Konfigurasikan dan jalankan klien MaxCompute
3.1 Unduh dan ekstrak paket klien
Unduh versi terbaru dari paket klien MaxCompute (GitHub).
Ekstrak paket yang telah diunduh. Folder-folder berikut akan dihasilkan:
bin: Direktori untuk file yang dapat dieksekusi.conf: Direktori untuk file konfigurasi.lib: Direktori untuk file pustaka.plugins: Direktori untuk plug-in.
Catat jalur tempat paket diekstrak. Anda akan membutuhkannya pada langkah selanjutnya.
3.2 Konfigurasikan klien
Buka folder
confdan temukan file konfigurasiodps_config.ini.Buka file
odps_config.inidengan editor teks dan konfigurasikan parameter berikut:project_name=<your_project_name> access_id=<your_access_key_id> access_key=<your_access_key_secret> end_point=https://service.ap-southeast-1.maxcompute.aliyun.com/apiDeskripsi parameter:
project_name: Masukkan nama proyek MaxCompute yang Anda buat di Langkah 2.access_id: Masukkan ID AccessKey yang Anda buat di Langkah 1.2.access_key: Masukkan AccessKey Secret yang Anda buat di Langkah 1.2.end_point: Titik akhir layanan MaxCompute. Tutorial ini menggunakan titik akhir untuk wilayah Singapura.
PentingJika wilayah yang Anda pilih di Langkah 1 bukan Singapura, Anda perlu mencari titik akhir publik yang sesuai untuk wilayah yang Anda pilih.
3.3 Jalankan klien MaxCompute
Anda dapat menjalankan klien MaxCompute dengan salah satu cara berikut:
Gunakan file skrip
Windows:
Di folder
bindirektori instalasi klien MaxCompute, klik ganda fileodpscmd.bat.macOS:
Di folder
bindirektori instalasi klien MaxCompute, klik ganda fileodpscmd.
Gunakan CLI
Buka CLI sistem operasi Anda (Command Prompt atau PowerShell untuk Windows; Terminal untuk macOS/Linux).
Navigasi ke direktori
bindalam jalur instalasi klien MaxCompute:# Untuk Windows cd <installation_path>\bin # Untuk macOS/Linux cd <installation_path>/binJalankan perintah startup:
# Untuk Windows odpscmd # Untuk Linux atau macOS sh odpscmd # Untuk Ubuntu (instruksi khusus) ./odpscmd
Di Ubuntu, menjalankan sh odpscmd dapat menyebabkan error. Coba jalankan klien dengan perintah ./odpscmd sebagai gantinya.
Hasil yang diharapkan: Klien berhasil dijalankan dan mengembalikan pesan berikut, yang menunjukkan bahwa koneksi ke proyek MaxCompute telah terbentuk:
__ __
___ ___/ /___ ___ ____ __ _ ___/ /
/ _ \/ _ // _ \ (_-</ __// ' \/ _ /
\___/\_,_// .__//___/\__//_/_/_/\_,_/
/_/
Aliyun ODPS Command Line Tool
Version x.xx.x-public
@Copyright 2026 Alibaba Cloud Computing Co., Ltd. All rights reserved.
Connecting to https://service.ap-**.maxcompute.aliyun.com/api, project: <your_project_name>
Endpoint: https://service.ap-**.maxcompute.aliyun.com/api
Project: <your_project_name>
Quota: default in region N/A
Timezone: **
Connected!
<your_project_name> >Langkah 4: Persiapkan data sampel
4.1 Unduh data sampel
Tutorial ini menggunakan empat file data sampel. Ikuti langkah-langkah berikut untuk mengunduhnya:
banking.txt (Dataset mentah lengkap, 41.188 catatan)
banking_yescreditcard.csv (Pelanggan dengan kartu kredit, 3 catatan)
banking_nocreditcard.csv (Pelanggan tanpa kartu kredit, 32.588 catatan)
banking_uncreditcard.csv (Pelanggan dengan status kartu kredit tidak diketahui, 8.597 catatan)
4.2 Pahami struktur data
Hubungan logis antara keempat dataset tersebut adalah sebagai berikut:
banking.txt (Dataset mentah lengkap, 41.188 catatan)
├─ banking_yescreditcard.csv (Pelanggan dengan kartu kredit, 3 catatan)
├─ banking_nocreditcard.csv (Pelanggan tanpa kartu kredit, 32.588 catatan)
└─ banking_uncreditcard.csv (Pelanggan dengan status kartu kredit tidak diketahui, 8.597 catatan)4.3 Pratinjau format data
Analisis sampel dataset banking.txt menunjukkan bahwa setiap catatan pelanggan berisi beberapa atribut. Atribut tersebut mencakup informasi demografis dasar seperti usia, jenis pekerjaan, status perkawinan, dan tingkat pendidikan, serta fitur yang terkait dengan layanan keuangan.
Data sampel:
44,blue-collar,married,basic.4y,unknown,yes,no,cellular,aug,thu,210,1,999,0,nonexistent,1.4,93.444,-36.1,4.963,5228.1,0
53,technician,married,unknown,no,no,no,cellular,nov,fri,138,1,999,0,nonexistent,-0.1,93.2,-42,4.021,5195.8,0
28,management,single,university.degree,no,yes,no,cellular,jun,thu,339,3,6,2,success,-1.7,94.055,-39.8,0.729,4991.6,1Deskripsi format data:
Pemisah: Koma (
,)Header: Tidak ada baris header
Jumlah bidang: 21
4.4 Tempatkan file data
Tempatkan file data yang telah diunduh di direktori bin klien MaxCompute, atau catat jalur lengkap ke file data tersebut. Jika data sampel yang diunduh tidak berada di direktori bin, Anda harus memberikan jalur file yang benar saat menjalankan perintah impor.
Langkah 5: Buat tabel
5.1 Rancang struktur tabel
Berdasarkan data sampel dan hubungan logisnya, tutorial ini menggunakan struktur tabel berikut:
tabel non-partisi bank_data: Menyimpan dataset mentah lengkap dari
banking.txt(41.188 catatan).tabel partisi bank_data_pt: Menyimpan tiga dataset CSV, dipartisi berdasarkan bidang
credit(status kartu kredit).credit='yes': Pelanggan dengan kartu kredit (3 catatan)credit='no': Pelanggan tanpa kartu kredit (32.588 catatan)credit='unknown': Pelanggan dengan status kartu kredit tidak diketahui (8.597 catatan)
tabel non-partisi result_table1: Menyimpan hasil kueri untuk statistik tingkat pendidikan.
tabel non-partisi result_table2: Menyimpan hasil kueri untuk statistik tingkat pendidikan dan status kartu kredit.
CatatanPartisi seperti kategori. Dengan mengkategorikan data, Anda menempatkan jenis data yang berbeda ke dalam direktori yang berbeda. Tabel partisi mengoptimalkan kueri. Dengan menentukan partisi dalam klausa WHERE, Anda menghindari pemindaian tabel penuh, yang meningkatkan efisiensi pemrosesan dan mengurangi biaya komputasi.
5.2 Buat tabel non-partisi bank_data
Jalankan pernyataan SQL berikut di klien MaxCompute:
-- Buat tabel non-partisi bank_data untuk menyimpan dataset mentah lengkap.
CREATE TABLE IF NOT EXISTS bank_data
(
age BIGINT comment 'Age',
job STRING comment 'Job type',
marital STRING comment 'Marital status',
education STRING comment 'Education level',
credit STRING comment 'Credit card status',
housing STRING comment 'Home loan status',
loan STRING comment 'Personal loan status',
contact STRING comment 'Contact method',
month STRING comment 'Month',
day_of_week STRING comment 'Day of the week',
duration STRING comment 'Duration',
campaign BIGINT comment 'Number of contacts during this campaign',
pdays DOUBLE comment 'Days since the last contact',
previous DOUBLE comment 'Number of contacts before this campaign',
poutcome STRING comment 'Outcome of the previous marketing campaign',
emp_var_rate DOUBLE comment 'Employment variation rate',
cons_price_idx DOUBLE comment 'Consumer price index',
cons_conf_idx DOUBLE comment 'Consumer confidence index',
euribor3m DOUBLE comment 'Euribor 3-month rate',
nr_employed DOUBLE comment 'Number of employees',
fixed_deposit BIGINT comment 'Has a fixed deposit'
);5.3 Buat tabel partisi bank_data_pt
Jalankan pernyataan SQL berikut di klien MaxCompute:
-- Buat tabel partisi bank_data_pt, dengan 'credit' (status kartu kredit) sebagai kunci partisi.
CREATE TABLE IF NOT EXISTS bank_data_pt
(
age BIGINT comment 'Age',
job STRING comment 'Job type',
marital STRING comment 'Marital status',
education STRING comment 'Education level',
housing STRING comment 'Home loan status',
loan STRING comment 'Personal loan status',
contact STRING comment 'Contact method',
month STRING comment 'Month',
day_of_week STRING comment 'Day of the week',
duration STRING comment 'Duration',
campaign BIGINT comment 'Number of contacts during this campaign',
pdays DOUBLE comment 'Days since the last contact',
previous DOUBLE comment 'Number of contacts before this campaign',
poutcome STRING comment 'Outcome of the previous marketing campaign',
emp_var_rate DOUBLE comment 'Employment variation rate',
cons_price_idx DOUBLE comment 'Consumer price index',
cons_conf_idx DOUBLE comment 'Consumer confidence index',
euribor3m DOUBLE comment 'Euribor 3-month rate',
nr_employed DOUBLE comment 'Number of employees',
fixed_deposit BIGINT comment 'Has a fixed deposit'
)partitioned by (credit STRING comment 'Credit card status');
-- Tambahkan tiga partisi: yes, no, dan unknown.
alter table bank_data_pt add if not exists partition (credit='yes') partition (credit='no') partition (credit='unknown');5.4 Buat tabel hasil result_table1
Jalankan pernyataan SQL berikut di klien MaxCompute:
-- Buat tabel hasil result_table1 untuk menyimpan statistik tingkat pendidikan.
CREATE TABLE IF NOT EXISTS result_table1
(
education STRING comment 'Education level',
num BIGINT comment 'Count'
);5.5 Buat tabel hasil result_table2
Jalankan pernyataan SQL berikut di klien MaxCompute:
-- Buat tabel hasil result_table2 untuk menyimpan statistik tingkat pendidikan dan status kartu kredit.
CREATE TABLE IF NOT EXISTS result_table2
(
education STRING comment 'Education level',
num BIGINT comment 'Count',
credit STRING comment 'Credit card status'
);5.6 Verifikasi pembuatan tabel
5.6.1 Lihat tabel yang dibuat
Jalankan perintah berikut untuk melihat tabel yang telah dibuat:
SHOW tables;Output yang diharapkan:
ALIYUN$****:bank_data
ALIYUN$****:bank_data_pt
ALIYUN$****:result_table1
ALIYUN$****:result_table2
OK5.6.2 Lihat struktur tabel
Jalankan perintah berikut untuk melihat struktur tabel:
-- Lihat struktur tabel bank_data.
DESC bank_data;
-- Lihat struktur tabel bank_data_pt.
DESC bank_data_pt;
-- Lihat struktur tabel result_table1.
DESC result_table1;
-- Lihat struktur tabel result_table2.
DESC result_table2;Output yang diharapkan (menggunakan bank_data_pt sebagai contoh):
+------------------------------------------------------------------------------------+
| Owner: ALIYUN$**** | Project: doc_test_dev |
| TableComment: |
+------------------------------------------------------------------------------------+
| CreateTime: 2026-05-17 14:02:21 |
| LastDDLTime: 2026-05-17 14:02:21 |
| LastModifiedTime: 2026-05-17 14:02:21 |
+------------------------------------------------------------------------------------+
| InternalTable: YES | Size: 0 |
+------------------------------------------------------------------------------------+
| Native Columns: |
+------------------------------------------------------------------------------------+
| Field | Type | Label | Comment |
+------------------------------------------------------------------------------------+
| age | bigint | | Age |
| job | string | | Job type |
| marital | string | | Marital status |
| education | string | | Education level |
| housing | string | | Home loan status |
| loan | string | | Personal loan status |
| contact | string | | Contact method |
| month | string | | Month |
| day_of_week | string | | Day of the week |
| duration | string | | Duration |
| campaign | bigint | | Number of contacts during this campaign |
| pdays | double | | Days since the last contact |
| previous | double | | Number of contacts before this campaign |
| poutcome | string | | Outcome of the previous marketing campaign |
| emp_var_rate | double | | Employment variation rate |
| cons_price_idx | double | | Consumer price index |
| cons_conf_idx | double | | Consumer confidence index |
| euribor3m | double | | Euribor 3-month rate |
| nr_employed | double | | Number of employees |
| fixed_deposit | bigint | | Has a fixed deposit |
+------------------------------------------------------------------------------------+
| Partition Columns: |
+------------------------------------------------------------------------------------+
| credit | string | Credit card status |
+------------------------------------------------------------------------------------+
OKJalankan perintah berikut untuk melihat partisi:
SHOW partitions bank_data_pt;Output yang diharapkan:
credit=no
credit=unknown
credit=yes
OKLangkah 6: Impor data
6.1 Tool Tunnel
Tunnel adalah saluran data yang berfungsi sebagai tool impor dan ekspor data untuk MaxCompute. Anda dapat menggunakan Tunnel untuk mengunggah data ke atau mengunduh data dari MaxCompute.
6.2 Impor data ke tabel bank_data
Jalankan perintah berikut untuk mengimpor file banking.txt ke tabel bank_data:
tunnel upload banking.txt bank_data;Format perintah:
tunnel upload <path_to_the_data_file_to_import> <destination_table>Output yang diharapkan:
Upload session: 20260202192653092c3b1a0d8ed099
Start upload:banking.txt
Using \n to split records
Upload in strict schema mode: true
Total bytes:4841548 Split input to 1 blocks
2026-05-02 19:26:53 scan block: '1'
2026-05-02 19:26:53 scan block complete, block id: 1
2026-05-02 19:26:53 upload block: '1'
2026-05-02 19:26:55 Block info: 1:0:4841548:banking.txt, progress: 100%, bs: 4.6 MB, speed: 2.3 MB/s
2026-05-02 19:26:55 upload block complete, block id: 1
upload complete, average speed is 1.5 MB/s
OK6.3 Impor data ke tabel partisi
Jalankan perintah berikut untuk mengimpor tiga file CSV ke partisi yang sesuai di tabel bank_data_pt:
-- Impor data untuk pelanggan dengan kartu kredit ke partisi credit='yes'.
tunnel upload banking_yescreditcard.csv bank_data_pt/credit="yes";
-- Impor data untuk pelanggan dengan status tidak diketahui ke partisi credit='unknown'.
tunnel upload banking_uncreditcard.csv bank_data_pt/credit="unknown";
-- Impor data untuk pelanggan tanpa kartu kredit ke partisi credit='no'.
tunnel upload banking_nocreditcard.csv bank_data_pt/credit="no";Format perintah (untuk tabel partisi):
tunnel upload <path_to_the_data_file_to_import> <destination_table>/<partition_key>="<partition_value>"Output yang diharapkan (menggunakan perintah pertama sebagai contoh):
Upload session: 20260202192822042e3b1a0d8f28f6
Start upload:banking_yescreditcard.csv
Using \r\n to split records
Upload in strict schema mode: true
Total bytes:351 Split input to 1 blocks
2026-05-02 19:28:22 scan block: '1'
2026-05-02 19:28:22 scan block complete, block id: 1
2026-05-02 19:28:22 upload block: '1'
2026-05-02 19:28:22 upload block complete, block id: 1
upload complete, average speed is 351 bytes/s
OKPesan OK dalam output menunjukkan bahwa data berhasil diimpor.
6.4 Verifikasi impor data
Jalankan perintah berikut untuk memeriksa apakah jumlah baris di setiap tabel sudah benar:
-- Periksa jumlah baris di tabel bank_data (seharusnya 41.188).
select count(*) as num1 from bank_data;
-- Periksa jumlah baris di partisi credit='yes' tabel bank_data_pt (seharusnya 3).
select count(*) as num2 from bank_data_pt where credit="yes";
-- Periksa jumlah baris di partisi credit='unknown' tabel bank_data_pt (seharusnya 8.597).
select count(*) as num3 from bank_data_pt where credit="unknown";
-- Periksa jumlah baris di partisi credit='no' tabel bank_data_pt (seharusnya 32.588).
select count(*) as num4 from bank_data_pt where credit="no";Output yang diharapkan:
-- Jumlah baris di bank_data
+------------+
| num1 |
+------------+
| 41188 |
+------------+
A total of 1 records fetched by instance tunnel. Max record number: 10000
-- Jumlah baris di bank_data_pt dengan credit='yes'
+------------+
| num2 |
+------------+
| 3 |
+------------+
A total of 1 records fetched by instance tunnel. Max record number: 10000
-- Jumlah baris di bank_data_pt dengan credit='unknown'
+------------+
| num3 |
+------------+
| 8597 |
+------------+
A total of 1 records fetched by instance tunnel. Max record number: 10000
-- Jumlah baris di bank_data_pt dengan credit='no'
+------------+
| num4 |
+------------+
| 32588 |
+------------+
A total of 1 records fetched by instance tunnel. Max record number: 10000Hasil verifikasi:
Tabel
bank_data: 41.188 baris (sesuai denganbanking.txt)Tabel
bank_data_pt, partisicredit='yes': 3 baris (sesuai denganbanking_yescreditcard.csv)Tabel
bank_data_pt, partisicredit='unknown': 8.597 baris (sesuai denganbanking_uncreditcard.csv)Tabel
bank_data_pt, partisicredit='no': 32.588 baris (sesuai denganbanking_nocreditcard.csv)
Jika jumlah baris tidak sesuai, periksa hal berikut:
Pastikan file data telah diunduh secara lengkap.
Verifikasi bahwa perintah impor telah dijalankan dengan benar.
Periksa apakah format file data sudah benar.
Langkah 7: Kueri dan analisis data dengan SQL
7.1 Jalankan kueri sederhana (Opsional)
Sebelum menjalankan kueri kompleks, Anda dapat menjalankan kueri sederhana untuk memverifikasi bahwa data telah diimpor dengan benar:
-- Lihat 10 baris pertama tabel bank_data.
select * from bank_data limit 10;Output yang diharapkan: Perintah mengembalikan 10 catatan data, termasuk nilai untuk semua 21 bidang.
7.2 Kueri data dari tabel non-partisi
Jalankan perintah SQL berikut untuk mengkueri tabel non-partisi bank_data guna mendapatkan jumlah individu lajang dengan pinjaman rumah, dikelompokkan berdasarkan tingkat pendidikan. Simpan hasilnya ke result_table1.
-- Kueri jumlah individu lajang dengan pinjaman rumah dari tabel non-partisi bank_data, dikelompokkan berdasarkan tingkat pendidikan.
-- Tulis hasil kueri ke result_table1.
INSERT OVERWRITE TABLE result_table1
SELECT education, COUNT(marital) AS num
FROM bank_data
WHERE housing = 'yes' AND marital = 'single'
GROUP BY education;Deskripsi SQL:
insert overwrite table: Menimpa tabel tujuan dengan hasil kueri.where housing = 'yes' and marital = 'single': Menentukan kondisi filter (memiliki pinjaman rumah dan lajang).group by education: Mengelompokkan hasil berdasarkan tingkat pendidikan.count(marital): Menghitung jumlah individu untuk setiap tingkat pendidikan.
Output yang diharapkan:
Job Queueing...
OK7.3 Kueri data dari tabel partisi
Jalankan perintah SQL berikut untuk mengkueri tabel partisi bank_data_pt guna mendapatkan jumlah individu lajang dengan pinjaman rumah, dikelompokkan berdasarkan tingkat pendidikan dan status kartu kredit. Simpan hasilnya ke result_table2.
-- Izinkan pemindaian tabel penuh. Ini diperlukan jika tidak ada kondisi partisi yang ditentukan saat mengkueri tabel partisi.
set odps.sql.allow.fullscan=true;
-- Kueri jumlah individu lajang dengan pinjaman rumah dari tabel partisi bank_data_pt.
-- Kelompokkan hasil kueri berdasarkan tingkat pendidikan dan status kartu kredit, lalu tulis ke result_table2.
insert overwrite table result_table2
select education, count(marital) as num, credit
from bank_data_pt
where housing = 'yes' and marital = 'single'
group by education, credit;Deskripsi SQL:
set odps.sql.allow.fullscan=true;: Mengizinkan pemindaian tabel penuh, yang diperlukan saat mengkueri tabel partisi tanpa filter partisi.group by education, credit: Mengelompokkan hasil berdasarkan tingkat pendidikan dan status kartu kredit.
Output yang diharapkan:
Job Queueing...
OK7.4 Lihat hasil kueri
Jalankan perintah berikut untuk melihat hasil kueri:
-- Lihat hasil kueri di result_table1.
select * from result_table1;
-- Lihat hasil kueri di result_table2.
select * from result_table2;Output yang diharapkan:
-- Data di result_table1
+------------+------------+
| education | num |
+------------+------------+
| university.degree | 2399 |
| basic.4y | 227 |
| basic.9y | 709 |
| unknown | 257 |
| professional.course | 785 |
| high.school | 1641 |
| basic.6y | 172 |
| illiterate | 1 |
+------------+------------+
A total of 8 records fetched by instance tunnel. Max record number: 10000
-- Data di result_table2
+------------+------------+------------+
| education | num | credit |
+------------+------------+------------+
| unknown | 51 | unknown |
| high.school | 172 | unknown |
| basic.4y | 63 | unknown |
| university.degree | 196 | unknown |
| professional.course | 64 | unknown |
| basic.9y | 162 | unknown |
| basic.6y | 68 | unknown |
| illiterate | 1 | unknown |
| university.degree | 2203 | no |
| basic.4y | 164 | no |
| basic.9y | 547 | no |
| professional.course | 721 | no |
| high.school | 1469 | no |
| unknown | 206 | no |
| basic.6y | 104 | no |
+------------+------------+------------+
A total of 15 records fetched by instance tunnel. Max record number: 100007.5 Analisis data dan insight
Berdasarkan hasil kueri, kita dapat menarik insight berikut:
Segmen pengguna | Karakteristik utama | Insight data | Rekomendasi |
Pemegang gelar universitas | Persentase tertinggi (29,3%), tingkat kepemilikan kartu kredit tinggi. | Pendapatan stabil, kesadaran kredit kuat, dan kemampuan pembayaran kembali yang baik. | Luncurkan produk bundel yang menggabungkan pinjaman rumah berbatas tinggi dengan kartu kredit. Gunakan tingkat pendidikan untuk pemasaran yang ditargetkan. |
Lulusan SMA | Persentase tertinggi kedua (20,1%), sebagian tidak memiliki kartu kredit. | Basis pelanggan besar dengan permintaan tertentu untuk pembelian rumah. | Tawarkan produk pinjaman rumah standar dan promosikan di komunitas serta taman bisnis. |
Kelompok pendidikan dasar (basic.4y hingga basic.9y) | Sekitar 13,5% dari total, sebagian besar tidak memiliki kartu kredit. | Kelompok tanpa riwayat kredit tetapi masih memiliki permintaan untuk pembelian rumah. | Kembangkan model penilaian kredit multidimensi dan uji coba mekanisme persetujuan awal berbasis daftar putih. |
Individu dengan informasi pendidikan tidak lengkap | 3,1% dari total, dengan data kredit tidak lengkap. | Hal ini memengaruhi kinerja model dan efisiensi pemasaran. | Perbaiki logika pengumpulan data di front-end dan lakukan tindak lanjut berkala untuk melengkapi data. |
Insight ini dapat membantu lembaga keuangan mengoptimalkan desain produk kredit, meningkatkan kemampuan pengendalian risiko, serta mencapai jangkauan dan konversi pelanggan yang lebih efisien.
Langkah 8: Ekspor data hasil
8.1 Ekspor data dari result_table1
Jalankan perintah Tunnel Download berikut untuk mengekspor data dari result_table1:
tunnel download result_table1 result_table1.txt;Format perintah:
tunnel download <source_table> <destination_file_path>Output yang diharapkan:
2026-05-02 19:34:40 - new session: 20260202193440d909371a0d8e908c total lines: 8
2026-05-02 19:34:40 - file [0]: [0, 8), result_table1.txt
downloading 8 records into 1 file
2026-05-02 19:34:40 - file [0] start
2026-05-02 19:34:41 - file [0] OK. total: 128 bytes
total: 128 bytes, time: 442 ms, average speed: 0 bytes/s
download OKJika Anda tidak menentukan jalur untuk file yang diekspor, file data akan disimpan di direktori bin klien MaxCompute secara default.
Pesan OK dalam output menunjukkan bahwa data berhasil diekspor.
8.2 Ekspor data dari result_table2
Jalankan perintah berikut untuk mengekspor data dari result_table2:
tunnel download result_table2 result_table2.csv;Output yang diharapkan:
2026-05-02 19:35:26 - new session: 20260202193526dce7301a0d8ef026 total lines: 15
2026-05-02 19:35:26 - file [0]: [0, 15), result_table2.csv
downloading 15 records into 1 file
2026-05-02 19:35:26 - file [0] start
2026-05-02 19:35:26 - file [0] OK. total: 322 bytes
total: 322 bytes, time: 441 ms, average speed: 0 bytes/s
download OK8.3 Verifikasi hasil ekspor
Periksa apakah file data ada di jalur ekspor yang ditentukan (secara default di direktori
binklien MaxCompute).Buka file yang diekspor untuk memverifikasi integritas data:
result_table1.txt: Harus berisi 8 catatan (untuk 8 tingkat pendidikan).result_table2.csv: Harus berisi 15 catatan (dikelompokkan berdasarkan tingkat pendidikan dan status kartu kredit).
Hasil yang diharapkan:
File berhasil diekspor ke jalur yang ditentukan.
Data dalam file sesuai dengan hasil kueri.
Format file sudah benar (TXT atau CSV).
Langkah 9: Bersihkan resource
Setelah menyelesaikan tutorial ini, kami menyarankan Anda membersihkan resource yang telah dibuat untuk menghindari biaya yang tidak perlu.
9.1 Hapus tabel
Jalankan perintah berikut di klien MaxCompute untuk menghapus tabel yang telah Anda buat:
-- Hapus result_table2.
drop table result_table2;
-- Hapus result_table1.
drop table result_table1;
-- Hapus tabel partisi bank_data_pt.
drop table bank_data_pt;
-- Hapus tabel non-partisi bank_data.
drop table bank_data;Format perintah:
drop table <table_name>;9.2 Verifikasi penghapusan tabel
Jalankan perintah berikut untuk memastikan bahwa tabel telah dihapus:
show tables;Output yang diharapkan:
OKOutput tidak berisi informasi tabel, yang menunjukkan bahwa tabel telah berhasil dihapus.
9.3 Hapus proyek MaxCompute
Peringatan penting
Menghapus proyek memiliki konsekuensi berikut:
Semua resource dalam proyek dihapus: termasuk semua tabel, fungsi, dan resource.
Operasi ini tidak dapat dibatalkan: setelah dihapus, proyek dan datanya tidak dapat dipulihkan.
Jika Anda menggunakan proyek yang sudah ada: menghapus proyek juga akan menghapus pekerjaan lain dalam proyek tersebut.
Prosedur:
Login ke Konsol MaxCompute.
Di panel navigasi kiri, pilih .
Pada halaman Projects, klik Delete di kolom Actions untuk proyek target.
Ikuti petunjuk di layar untuk mengonfirmasi penghapusan.
Jika Anda menggunakan proyek baru yang dibuat khusus untuk tutorial ini, Anda dapat menghapus seluruh proyek.
Jika Anda menggunakan proyek yang sudah ada, kami menyarankan Anda hanya menghapus tabel yang dibuat dalam tutorial ini dan mempertahankan proyek serta resource lainnya.
9.4 Verifikasi pembersihan resource
Setelah membersihkan resource, pastikan bahwa:
Semua tabel telah dihapus.
Tidak ada biaya tambahan yang dikenakan.
Tidak lagi dikenai biaya
Pertanyaan yang sering diajukan
Q1: Apa yang harus saya lakukan jika koneksi klien gagal?
Kemungkinan penyebab:
Konfigurasi nama proyek salah
Konfigurasi ID AccessKey atau Secret salah
Konfigurasi endpoint salah
Masalah konektivitas jaringan
Solusi:
Periksa apakah pengaturan dalam file
odps_config.inisudah benar.Verifikasi bahwa AccessKey valid dan belum kedaluwarsa atau dihapus.
Verifikasi bahwa endpoint sesuai dengan wilayah proyek.
Periksa koneksi jaringan Anda.
Q2: Apa yang harus saya lakukan jika impor data gagal?
Kemungkinan penyebab:
Jalur file data salah
Ketidaksesuaian format data (jumlah bidang, tipe data)
Masalah encoding file
Solusi:
Periksa apakah jalur file data sudah benar. Gunakan jalur mutlak.
Verifikasi bahwa format file data sesuai dengan struktur tabel.
Periksa pesan error dan lakukan penyesuaian sesuai petunjuk.
Q3: Apa yang harus saya lakukan jika terjadi error saat mengkueri tabel partisi?
Pesan error: ODPS-0130071: Partition exception
Solusi:
Jika Anda mengkueri tabel partisi tanpa menentukan kondisi partisi, jalankan terlebih dahulu perintah:
set odps.sql.allow.fullscan=true;Atau, tentukan kondisi partisi dalam klausa WHERE. Contohnya:
where credit='yes'
Ringkasan
Dalam tutorial ini, Anda telah mempelajari cara:
Membuat proyek MaxCompute
Mengonfigurasikan dan menjalankan klien MaxCompute
Membuat tabel partisi dan non-partisi
Mengimpor data ke MaxCompute
Menjalankan kueri SQL dan menganalisis data
Mengekspor hasil kueri
Membersihkan resource
Anda telah mempelajari alur kerja dasar untuk analisis data dengan klien MaxCompute. Sekarang, Anda dapat menjelajahi fitur MaxCompute tingkat lanjut dan menerapkan pengetahuan ini ke proyek Anda sendiri.