全部产品
Search
文档中心

MaxCompute:Membuat tabel

更新时间:Jul 06, 2025

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:

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,0

Anda 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:

  • File sampel yang digunakan untuk membuat tabel non-partisi berisi 21 kolom. Anda dapat membuat tabel non-partisi yang berisi 21 kolom berdasarkan file sampel.

    Catatan

    Jika jumlah kolom di tabel melebihi jumlah kolom di file sampel, kolom tambahan di tabel akan diisi dengan NULL. Jika jumlah kolom di tabel kurang dari jumlah kolom di file sampel, data berlebih di file sampel akan dibuang.

  • Setiap file sampel yang digunakan untuk membuat tabel partisi berisi 20 kolom. Anda dapat membuat tabel partisi yang berisi 21 kolom dengan satu kolom sebagai kolom kunci partisi berdasarkan file sampel. Anda harus mendefinisikan partisi saat membuat tabel.

Bidang tabel

Identifikasi bidang di setiap file sampel dan tentukan bidang di tabel yang ingin Anda buat:

  • Bidang tabel non-partisi:

    • age: usia

    • job: jenis pekerjaan

    • marital: status perkawinan

    • education: tingkat pendidikan

    • credit: memiliki kartu kredit

    • housing: peminjam hipotek

    • loan: memiliki pinjaman

    • contact: informasi kontak

    • month: bulan

    • day_of_week: hari dalam seminggu

    • duration: durasi

    • campaign: jumlah kontak untuk kampanye saat ini

    • pdays: waktu berlalu setelah kontak terakhir

    • previous: jumlah kontak sebelumnya

    • poutcome: hasil aktivitas pemasaran sebelumnya

    • emp_var_rate: laju variasi ketenagakerjaan

    • cons_price_idx: indeks harga konsumen

    • cons_conf_idx: indeks kepercayaan konsumen

    • euribor 3m: Euribor 3 bulan

    • nr_employed: jumlah karyawan

    • fixed_deposit: memiliki deposito berjangka

  • Bidang tabel partisi:

    • age: usia

    • job: jenis pekerjaan

    • marital: status perkawinan

    • education: tingkat pendidikan

    • housing: peminjam hipotek

    • loan: memiliki pinjaman

    • contact: informasi kontak

    • month: bulan

    • day_of_week: hari dalam seminggu

    • duration: durasi

    • campaign: jumlah kontak untuk kampanye saat ini

    • pdays: waktu berlalu setelah kontak terakhir

    • previous: jumlah kontak sebelumnya

    • poutcome: hasil aktivitas pemasaran sebelumnya

    • emp_var_rate: laju variasi ketenagakerjaan

    • cons_price_idx: indeks harga konsumen

    • cons_conf_idx: indeks kepercayaan konsumen

    • euribor 3m: Euribor 3 bulan

    • nr_employed: jumlah karyawan

    • fixed_deposit: memiliki deposito berjangka

    • credit: memiliki kartu kredit (digunakan sebagai kolom kunci partisi)

Tipe data

Identifikasi tipe data setiap kolom di file sampel:

  • age: BIGINT

  • job: STRING

  • marital: STRING

  • education: STRING

  • credit: STRING

  • housing: STRING

  • loan: STRING

  • contact: STRING

  • month: STRING

  • day_of_week: STRING

  • duration: STRING

  • campaign: BIGINT

  • pdays: DOUBLE

  • previous: DOUBLE

  • poutcome: STRING

  • emp_var_rate: DOUBLE

  • cons_price_idx: DOUBLE

  • cons_conf_idx: DOUBLE

  • euribor3m: DOUBLE

  • nr_employed: DOUBLE

  • fixed_deposit: BIGINT

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:

  1. 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>
  2. 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:

  1. 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_table2
  2. Di 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.