Tüm Ürünler
Search
Belge Merkezi

MaxCompute:Yapılandırılmamış verileri sorgulama

Son Güncelleme:Oct 04, 2026

MaxCompute V2.0, Object Storage Service (OSS) ve Tablestore gibi depolama hizmetlerine erişmek için harici tablolar kullanmanıza olanak tanır. MaxCompute Studio, yapılandırılmamış verileri sorgulamanıza yardımcı olacak kod şablonları sunar. Bu konu, MaxCompute Studio kullanarak yapılandırılmamış verilerin nasıl sorgulanacağını açıklar.

Ön koşullar

Aşağıdaki ön koşulların karşılandığından emin olun:

StorageHandler, Extractor veya Outputer programı yazma

  1. Project bölmesinde, modülün kaynak kod dizinine (yani src > main > java) sağ tıklayın ve New > MaxCompute Java seçeneğini belirleyin.

  2. Bir Name girin, tür olarak Extractor, StorageHandler veya Outputer seçin ve Enter tuşuna basın.

    • Name: MaxCompute Java sınıfının adıdır. Bir Package oluşturulmamışsa, Package'i otomatik olarak oluşturmak için packagename.classname biçiminde giriş yapın.

    • Tür olarak Extractor, StorageHandler veya Outputer seçin.

      Not

      İş gereksinimlerinize göre Extractor, StorageHandler veya Outputer seçeneklerinden birini seçebilirsiniz.

      • Extractor: Yapılandırılmamış verileri okuma mantığının özel olarak yapılandırılmasına olanak tanıyan sınıftır.

      • StorageHandler: Extractor veya Outputer programında tanımlanan mantığı uygulamak için kullanılan sınıftır.

      • Outputer: Yapılandırılmamış verileri yazma mantığının özel olarak yapılandırılmasına olanak tanıyan sınıftır.

  3. Sınıf oluşturulduktan sonra, kod düzenleyicide bir Java programı geliştirin. Java şablonu, çerçeve koduyla otomatik olarak doldurulur. Yalnızca gereksinimlerinize göre mantık kodunu derlemeniz gerekir.

Extractor veya Outputer programında hata ayıklama

Test senaryoları yazmak için examples dizinindeki örnek birim testlere bakabilirsiniz.

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 {
        /**
         * Equivalent to the following SQL:
         *    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);
    }
}

Programı paketleme ve yükleme

Programda hata ayıklama işlemini tamamladıktan sonra, programı bir JAR paketi halinde sıkıştırın ve paketi bir kaynak olarak MaxCompute sunucusuna yükleyin. Daha fazla bilgi için bkz. Java programını paketleme, paketi yükleme ve MaxCompute UDF oluşturma.

Yapılandırılmamış verileri sorgulama

  1. Project araç penceresinde scripts öğesine sağ tıklayın ve New > MaxCompute SQL Script seçeneğini belirleyin.

  2. Script Name alanına bir komut dosyası adı girin. MaxCompute Project açılır listesinden hedef projeyi seçin. Ardından OK düğmesine tıklayın.

  3. Kod düzenleyicide, harici bir tablo oluşturmak için kullanılan SQL ifadesini girin ve 运行 simgesine tıklayın.

    --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. Bir MaxCompute SQL komut dosyası oluşturun, aşağıdaki sorgu ifadesini girin ve verileri sorgulamak için 运行 simgesine tıklayın.

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

İlgili Konular

Özel extractor kullanarak OSS harici tablosu oluşturma örneği