Tabel adalah unit penyimpanan data di MaxCompute. Anda harus memproses data di MaxCompute berdasarkan tabel. Topik ini menjelaskan cara membuat tabel di MaxCompute.
Prasyarat
Pastikan persyaratan berikut terpenuhi:
Klien MaxCompute telah dimulai.
Untuk informasi lebih lanjut tentang cara memulai klien MaxCompute, lihat Instal dan Mulai Klien MaxCompute.
File CSV atau TXT yang berisi data yang ingin diimpor telah disiapkan.
File sampel berikut digunakan dalam topik ini:
File untuk membuat tabel non-partisi: banking.txt.
File untuk membuat tabel partisi: banking_nocreditcard.csv, banking_uncreditcard.csv, dan banking_yescreditcard.csv.
Pengguna RAM yang akan digunakan untuk membuat tabel memiliki izin CREATE TABLE. Jika menggunakan akun Alibaba Cloud, abaikan persyaratan ini.
Untuk informasi lebih lanjut tentang cara memeriksa izin pengguna RAM, lihat Kueri Izin Menggunakan SQL MaxCompute.
Untuk informasi lebih lanjut tentang cara memberikan izin kepada pengguna RAM, lihat Izin MaxCompute.
Catatan Penggunaan
Tipe data kolom di tabel yang akan dibuat harus sesuai dengan tipe data kolom di file data. Jika tidak sesuai, data tidak dapat diimpor ke tabel.
Langkah 1: Desain tabel
Tentukan tipe tabel, struktur tabel, dan tipe data setiap kolom berdasarkan isi data yang ingin diimpor serta hasil data yang diharapkan.
File sampel yang digunakan dalam topik ini berisi data berikut dari peminjam hipotek:
-- Data yang digunakan untuk membuat tabel non-partisi.
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,1
-- Data yang digunakan untuk membuat tabel partisi.
53,technician,married,unknown,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,yes,no,cellular,jun,thu,339,3,6,2,success,-1.7,94.055,-39.8,0.729,4991.6,1
39,services,married,high.school,no,no,cellular,apr,fri,185,2,999,0,nonexistent,-1.8,93.075,-47.1,1.405,5099.1,0Anda dapat menghitung jumlah kolom, mengidentifikasi tipe data setiap kolom, dan menamai setiap kolom berdasarkan arti setiap kolom data. Tabel berikut menjelaskan informasi yang dapat diperoleh dari file sampel.
Item | Deskripsi |
Jumlah kolom | Hitung jumlah kolom di setiap file sampel dan tentukan jumlah kolom di tabel yang ingin Anda buat:
|
Bidang tabel | Identifikasi bidang di setiap file sampel dan tentukan bidang di tabel yang ingin Anda buat:
|
Tipe data | Identifikasi tipe data setiap kolom di file sampel:
|
Langkah 2: Membuat tabel
Buat tabel non-partisi bernama bank_data dan tabel partisi bernama bank_data_pt berdasarkan file sampel untuk menyimpan data bisnis. Buat tabel non-partisi bernama result_table1 dan result_table2 untuk menyimpan data hasil. Untuk informasi lebih lanjut tentang operasi pada tabel dan partisi, lihat Operasi Tabel dan Operasi Partisi. Lakukan operasi berikut untuk membuat tabel:
Opsional:Di klien MaxCompute, jalankan perintah berikut untuk beralih ke proyek MaxCompute yang ingin digunakan.
Jika proyek MaxCompute dibuka saat memulai klien MaxCompute, abaikan langkah ini.
use doc_test_dev;Jika perintah berhasil dijalankan, informasi berikut dikembalikan:
doc_test_dev.default>Di klien MaxCompute, buat tabel bank_data, bank_data_pt, result_table1, dan result_table2.
Untuk informasi lebih lanjut tentang sintaks CREATE TABLE, lihat Buat Tabel.
Buat tabel non-partisi bank_data. Contoh pernyataan:
create table if not exists bank_data ( age BIGINT comment 'usia', job STRING comment 'jenis pekerjaan', marital STRING comment 'status perkawinan', education STRING comment 'tingkat pendidikan', credit STRING comment 'memiliki kartu kredit', housing STRING comment 'peminjam hipotek', loan STRING comment 'memiliki pinjaman', contact STRING comment 'informasi kontak', month STRING comment 'bulan', day_of_week STRING comment 'hari dalam seminggu', duration STRING comment 'durasi', campaign BIGINT comment 'jumlah kontak untuk kampanye saat ini', pdays DOUBLE comment 'waktu berlalu setelah kontak terakhir', previous DOUBLE comment 'jumlah kontak sebelumnya', poutcome STRING comment 'hasil aktivitas pemasaran sebelumnya', emp_var_rate DOUBLE comment 'laju variasi ketenagakerjaan', cons_price_idx DOUBLE comment 'indeks harga konsumen', cons_conf_idx DOUBLE comment 'indeks kepercayaan konsumen', euribor3m DOUBLE comment 'Euribor 3 bulan', nr_employed DOUBLE comment 'jumlah karyawan', fixed_deposit BIGINT comment 'memiliki deposito berjangka' );Buat tabel partisi bank_data_pt dan tambahkan partisi ke tabel. Contoh pernyataan:
create table if not exists bank_data_pt ( age BIGINT comment 'usia', job STRING comment 'jenis pekerjaan', marital STRING comment 'status perkawinan', education STRING comment 'tingkat pendidikan', housing STRING comment 'peminjam hipotek', loan STRING comment 'memiliki pinjaman', contact STRING comment 'informasi kontak', month STRING comment 'bulan', day_of_week STRING comment 'hari dalam seminggu', duration STRING comment 'durasi', campaign BIGINT comment 'jumlah kontak untuk kampanye saat ini', pdays DOUBLE comment 'waktu berlalu setelah kontak terakhir', previous DOUBLE comment 'jumlah kontak sebelumnya', poutcome STRING comment 'hasil aktivitas pemasaran sebelumnya', emp_var_rate DOUBLE comment 'laju variasi ketenagakerjaan', cons_price_idx DOUBLE comment 'indeks harga konsumen', cons_conf_idx DOUBLE comment 'indeks kepercayaan konsumen', euribor3m DOUBLE comment 'Euribor 3 bulan', nr_employed DOUBLE comment 'jumlah karyawan', fixed_deposit BIGINT comment 'memiliki deposito berjangka' )partitioned by (credit STRING comment 'memiliki kartu kredit'); alter table bank_data_pt add if not exists partition (credit='yes') partition (credit='no') partition (credit='unknown');Buat tabel non-partisi result_table1. Contoh pernyataan:
create table if not exists result_table1 ( education STRING comment 'tingkat pendidikan', num BIGINT comment 'jumlah orang' );Buat tabel non-partisi result_table2. Contoh pernyataan:
create table if not exists result_table2 ( education STRING comment 'tingkat pendidikan', num BIGINT comment 'jumlah orang', credit STRING comment 'memiliki kartu kredit' );
Langkah 3: Periksa hasil pembuatan tabel
Lakukan operasi berikut untuk memeriksa apakah tabel telah dibuat dan apakah skema tabel benar:
Di klien MaxCompute, jalankan perintah berikut untuk memeriksa apakah tabel yang dibuat ada di proyek MaxCompute seperti yang diharapkan:
show tables;Nama tabel yang dibuat dikembalikan:
ALIYUN$****:bank_data ALIYUN$****:bank_data_pt ALIYUN$****:result_table1 ALIYUN$****:result_table2Di klien MaxCompute, eksekusi pernyataan berikut untuk memeriksa apakah skema tabel benar:
-- Lihat skema bank_data. desc bank_data; -- Lihat skema bank_data_pt. desc bank_data_pt; -- Lihat partisi bank_data_pt. show partitions bank_data_pt; -- Lihat skema result_table1. desc result_table1; -- Lihat skema result_table2. desc result_table2;Hasil yang dikembalikan dari pernyataan desc bank_data_pt;:
desc bank_data_pt; -- Hasil berikut dikembalikan: +------------------------------------------------------------------------------------+ | Owner: ALIYUN$**** | Project: doc_test_dev | | TableComment: | +------------------------------------------------------------------------------------+ | CreateTime: 2021-05-17 14:02:21 | | LastDDLTime: 2021-05-17 14:02:21 | | LastModifiedTime: 2021-05-17 14:02:21 | +------------------------------------------------------------------------------------+ | InternalTable: YES | Size: 0 | +------------------------------------------------------------------------------------+ | Native Columns: | +------------------------------------------------------------------------------------+ | Field | Type | Label | Comment | +------------------------------------------------------------------------------------+ | age | bigint | | usia | | job | string | | jenis pekerjaan | | marital | string | | status perkawinan | | education | string | | tingkat pendidikan | | housing | string | | peminjam hipotek | | loan | string | | memiliki pinjaman | | contact | string | | informasi kontak | | month | string | | bulan | | day_of_week | string | | hari dalam seminggu | | duration | string | | durasi | | campaign | bigint | | jumlah kontak untuk kampanye saat ini | | pdays | double | | waktu berlalu setelah kontak terakhir | | previous | double | | jumlah kontak sebelumnya | | poutcome | string | | hasil aktivitas pemasaran sebelumnya | | emp_var_rate | double | | laju variasi ketenagakerjaan | | cons_price_idx | double | | indeks harga konsumen | | cons_conf_idx | double | | indeks kepercayaan konsumen | | euribor3m | double | | Euribor 3 bulan | | nr_employed | double | | jumlah karyawan | | fixed_deposit | bigint | | memiliki deposito berjangka | +------------------------------------------------------------------------------------+ | Partition Columns: | +------------------------------------------------------------------------------------+ | credit | string | memiliki kartu kredit | +------------------------------------------------------------------------------------+show partitions bank_data_pt; -- Hasil berikut dikembalikan: credit=no credit=unknown credit=yes
Apa yang harus dilakukan selanjutnya
Setelah membuat tabel dan memastikan bahwa skema tabel benar, Anda dapat mengimpor data dari file sampel ke tabel. Untuk informasi lebih lanjut tentang cara mengimpor data, lihat Impor Data ke Tabel.