Todos los productos
Search
Centro de documentos

MaxCompute:Consulta de datos no estructurados

Última actualización: Sep 03, 2026

MaxCompute V2.0 permite usar tablas externas para acceder a servicios de almacenamiento como Object Storage Service (OSS) y Tablestore. MaxCompute Studio proporciona plantillas de código que facilitan la consulta de datos no estructurados. Este tema describe cómo usar MaxCompute Studio para consultar datos no estructurados.

Requisitos previos

Debe cumplir los siguientes requisitos previos:

Escritura de un programa StorageHandler, Extractor u Outputer

  1. En el panel Project, haga clic derecho en el directorio de código fuente del módulo (es decir, src > main > java) y seleccione New > MaxCompute Java.

  2. Introduzca un Name, seleccione Extractor, StorageHandler u Outputer como tipo y presione Enter.

    • Name: Nombre de la clase Java de MaxCompute. Si no ha creado un paquete, introduzca packagename.classname para crearlo automáticamente.

    • Seleccione Extractor, StorageHandler u Outputer como tipo.

      Nota

      Seleccione Extractor, StorageHandler u Outputer según sus necesidades empresariales.

      • Extractor: Clase que permite configurar la lógica personalizada para leer datos no estructurados.

      • StorageHandler: Clase que implementa la lógica definida en el programa Extractor u Outputer.

      • Outputer: Clase que permite configurar la lógica personalizada para escribir datos no estructurados.

  3. Una vez creada la clase, desarrolle un programa Java en el editor de código. La plantilla Java se rellena automáticamente con el código del framework. Solo escriba el código lógico según sus requerimientos.

Depuración del programa Extractor u Outputer

Consulte las pruebas unitarias de ejemplo en el directorio examples para redactar sus casos de prueba.

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);
    }
}

Empaquetado y carga del programa

Después de depurar el programa, comprímalo en un paquete JAR y cárguelo al servidor de MaxCompute como recurso. Para obtener más información, consulte Package a Java program, upload the package, and create a MaxCompute UDF.

Consulta de datos no estructurados

  1. En la ventana de herramientas Project, haga clic derecho en scripts y seleccione New > MaxCompute SQL Script.

  2. En el campo Script Name, introduzca un nombre para el script. En la lista desplegable MaxCompute Project, seleccione el proyecto destino y haga clic en OK.

  3. En el editor de código, introduzca la sentencia SQL para crear una tabla externa y haga clic en el icono 运行.

    --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. Cree un script SQL de MaxCompute, introduzca la siguiente sentencia de consulta y haga clic en el icono 运行 para consultar los datos.

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

Referencias

Example: Create an OSS external table by using a custom extractor