All Products
Search
Document Center

MaxCompute:Kueri data tidak terstruktur

Last Updated:Jun 21, 2026

MaxCompute V2.0 memungkinkan Anda menggunakan tabel eksternal untuk mengakses layanan penyimpanan seperti Object Storage Service (OSS) dan Tablestore. MaxCompute Studio menyediakan templat kode untuk membantu Anda melakukan kueri terhadap data tidak terstruktur. Topik ini menjelaskan cara menggunakan MaxCompute Studio guna melakukan kueri terhadap data tidak terstruktur.

Prasyarat

Pastikan prasyarat berikut telah dipenuhi:

Tulis program StorageHandler, Extractor, atau Outputer

  1. Pada panel Project, klik kanan direktori kode sumber modul (yaitu src > main > java), lalu pilih New > MaxCompute Java.

  2. Masukkan Name, pilih Extractor, StorageHandler, atau Outputer sebagai tipe, lalu tekan Enter.

    • Name: Nama kelas Java MaxCompute. Jika Package belum dibuat, masukkan packagename.classname untuk membuat Package secara otomatis.

    • Pilih Extractor, StorageHandler, atau Outputer sebagai tipe.

      Catatan

      Anda dapat memilih Extractor, StorageHandler, atau Outputer sesuai kebutuhan bisnis Anda.

      • Extractor: kelas yang memungkinkan konfigurasi logika kustom untuk membaca data tidak terstruktur.

      • StorageHandler: kelas yang digunakan untuk mengimplementasikan logika yang didefinisikan dalam program Extractor atau Outputer.

      • Outputer: kelas yang memungkinkan konfigurasi logika kustom untuk menulis data tidak terstruktur.

  3. Setelah kelas dibuat, kembangkan program Java di editor kode. Templat Java secara otomatis diisi dengan kerangka kode. Anda hanya perlu mengimplementasikan logika sesuai kebutuhan.

Debug program Extractor atau Outputer

Anda dapat merujuk pada contoh pengujian unit di direktori examples untuk menulis kasus uji.

import ...
public class ExtractorTest {
    private String ambulanceFullSchema =
            "vehicle:bigint;id:bigint;patient:bigint;calls:bigint;latitude:d...";
    private String speechDataFullSchema = "sentence_snr:double;id:string";
    @Test
    public void testTextExtractor() throws Exception {
        /**
         * Setara dengan SQL berikut:
         *    CREATE EXTERNAL TABLE  ambulance_data_external
         *    ( vehicle bigint, id bigint, patient bigint, calls bigint,
         *      Latitude double, Longitude double, time string, direction string)
         *    STORED BY 'com.aliyun.odps.udf.example.text.TextStorageHandler'
         *    LOCATION 'oss://.../data/ambulance_csv/'
         *    USING 'jar_file_name.jar';
         *
         *    SELECT * FROM ambulance_data_external;
         */
        Column[] externalTableSchema = UnstructuredUtils.parseSchemaString(
                ambulanceFullSchema);
    }
}

Paket dan unggah program

Setelah program selesai di-debug, kompres menjadi paket JAR dan unggah ke server MaxCompute sebagai resource. Untuk informasi selengkapnya, lihat Membuat paket program Java, mengunggah paket, dan membuat UDF MaxCompute.

Kueri data tidak terstruktur

  1. Pada jendela tool Project, klik kanan scripts dan pilih New > MaxCompute SQL Script.

  2. Pada kolom Script Name, masukkan nama skrip. Dari daftar drop-down MaxCompute Project, pilih proyek target, lalu klik OK.

  3. Di editor kode, masukkan pernyataan SQL untuk membuat tabel eksternal, lalu klik ikon 运行.

    --name:osd
    --author:liuyi
    --create time:2017-03-07 17:06
    set odps.service.mode=off;
    CREATE EXTERNAL TABLE IF NOT EXISTS myun_src_external
    (
    vehicleId bigint,
    recordId bigint,
    patientId bigint,
    calls bigint,
    locationLatitute double,
    locationLongtitue double,
    recordTime string,
    direction string
    )
    STORED BY 'myun.MyStorageHandler'
    WITH SERDEPROPERTIES('delimiter'='|')
    LOCATION 'oss://oss-cn-hangzhou-zmf.aliyuncs.com/074799/demo/SampleData/CSV/src/'
    USING 'myun.jar';
  4. Buat skrip SQL MaxCompute, masukkan pernyataan kueri berikut, lalu klik ikon 运行 untuk menjalankan kueri terhadap data.

    set odps.task.major.version=unstructured_data;
    select * from myun_src_external where patientId > 25;

Referensi

Contoh: Membuat tabel eksternal OSS menggunakan extractor kustom