Todos los productos
Search
Centro de documentos

OpenSearch:Configuración del origen de datos de MaxCompute

Última actualización: Sep 04, 2026

MaxCompute, anteriormente conocido como Open Data Processing Service (ODPS), es una plataforma de cómputo a gran escala. Si sus datos residen en MaxCompute, puede configurar este servicio como origen de datos para OpenSearch Industry Algorithm Edition. Se admiten estructuras de tablas de tres niveles. Al activar una reindexación, el sistema extrae automáticamente todos los datos de la tabla especificada. Los datos incrementales deben enviarse mediante llamadas a la API del SDK.

Configurar un AccessKey

OpenSearch Industry Algorithm Edition utiliza un par de AccessKey (AccessKey ID y AccessKey Secret) para descargar datos de sus tablas de MaxCompute. Prepare un par de AccessKey antes de configurar el origen de datos.

Nota

Su proyecto de MaxCompute y su aplicación de OpenSearch deben pertenecer a la misma cuenta de Alibaba Cloud.

  • El par de AccessKey de su cuenta de Alibaba Cloud permite acceder a las tablas de cualquier proyecto de MaxCompute asociado a dicha cuenta.

  • Para mayor seguridad, se recomienda utilizar un usuario de RAM. Siga estos pasos para configurar uno.

  1. Cree un usuario de RAM en su cuenta de Alibaba Cloud. Para obtener más información, consulte Create and authorize a RAM user.

  2. En MaxCompute, agregue el usuario de RAM como miembro de su proyecto.

En el cuadro de diálogo Manage Members de su proyecto de MaxCompute, busque y seleccione el usuario de RAM deseado en la lista Search Members de la izquierda. Haga clic en el botón de flecha derecha para mover al usuario a la lista Selected/To-be-added Members de la derecha. También puede introducir uno o varios nombres de miembros, separados por comas, en el campo Manually Add Member de la parte inferior y, a continuación, hacer clic en OK.

  1. Después de agregar el miembro, vaya a la página de MaxCompute DataStudio y ejecute el comando list users; para obtener el nombre de usuario completo. Para obtener más información, consulte Connect using the console (Query Editor).

    OK
    OK
    OK
    OK
    OK
    OK
    OK
    OK
    A xxx
    RAM$o; xxx h_test@test.xxx xxx st_1
    2022-02-10 18:34:33 INFO ===xxx=====================================================
    2022-02-10 18:34:33 INFO Exit code of the Shell command 0
    2022-02-10 18:34:33 INFO -- Invocation of Shell command completed ---
  2. Copie el nombre de usuario completo y otorgue los permisos necesarios. En los siguientes comandos, reemplace xxx con el nombre de usuario que copió.

    -- 1. Grant permissions to list projects and create instances.
    grant CreateInstance,List on project zy_ts_test to user xxx;
    -- 2. Grant permissions to select, describe, and download table data.
    GRANT select,describe,download ON TABLE people_info TO USER xxx;
    -- 3. (Optional) Grant label-based permissions on the ODPS table.
    set label 2 to USER  xxx;
    -- Show the grants for the specified user.
    show grants for xxx;

Una vez otorgados los permisos, configure el origen de datos de MaxCompute en la consola de OpenSearch.

Configurar el origen de datos de MaxCompute

  1. En la página de configuración de la aplicación, seleccione Use Data Source y, a continuación, elija el origen de datos MaxCompute.

  1. En la lista de tipos de origen de datos, haga clic en MaxCompute.

  2. Haga clic en Connect to Database e introduzca la información de MaxCompute, incluido el nombre del proyecto, así como el AccessKey y el AccessKey Secret de la cuenta autorizada.

    Después de introducir los datos, haga clic en Connect.

  3. Tras establecer la conexión, seleccione las tablas de datos que desea configurar. El siguiente ejemplo muestra cómo agregar tablas de tres niveles.

    En el cuadro de diálogo Select Data Source, haga clic en la pestaña MaxCompute. En el área Select Database, elija la base de datos conectada. En el área Select Data Table, seleccione las tablas deseadas, como default.item_table y opensearch.bank_data. Muévalas a la lista Selected y, a continuación, haga clic en OK.

El sistema asigna automáticamente los campos de las tablas de origen. Puede ajustar estas asignaciones según sea necesario. Cuando termine, haga clic en Next.

La tabla de configuración de campos asignados automáticamente incluye las columnas Field name, Primary key, Type, Join with another table y Actions. Para cada campo, puede establecer un tipo de dato (como TEXT o INT), especificar una clave principal, configurar uniones con otras tablas, y agregar o eliminar campos.

Importante

Al configurar su aplicación, debe definir una tabla como tabla principal. Asimismo, cada tabla debe tener un campo de clave principal único.

  1. Configure el esquema de índice. Seleccione un analizador adecuado para sus requisitos de búsqueda. Para obtener más información, consulte Index schema. Cuando termine, haga clic en Next.

    En el ejemplo, se configuran dos índices. El índice default incluye los campos country, source_buy_cnt, city, item_type, last_modify_time, channel, title y subscribe_cnt, y utiliza el analizador Chinese - General. El índice id incluye el campo custom_pk_id y utiliza el analizador keyword.

  2. Configure el origen de datos. Esto incluye configurar las asignaciones de campos, seleccionar la información de partición y elegir un mecanismo de control de sincronización de datos.

    En la página de configuración de Data Source, haga clic en + Add a data source para agregar el origen de datos de MaxCompute.

    5.1. Configurar asignaciones de campos: Haga clic en el icono de edición en la columna Actions. OpenSearch Industry Algorithm Edition proporciona varios data source plug-ins para MaxCompute. Para usar un complemento, haga clic en el signo más (+) en la columna Content Conversion mientras configura la asignación de campos. El complemento transforma el contenido del campo de origen antes de sincronizarlo con OpenSearch. Si un complemento falla debido a un error de configuración o a un problema de conexión, el campo de origen se sincroniza sin transformación.

    5.2. Seleccionar información de partición: Según la estructura de datos de MaxCompute, puede especificar qué particiones importar. Es posible utilizar una expresión regular para definir las particiones. Por ejemplo, puede combinar esto con la función de reindexación programada para importar datos de una nueva partición cada día.

    Expresión regular: El signo igual (=), la coma (,), el punto y coma (;) y las barras verticales dobles (||) son caracteres reservados. Para importar automáticamente todos los datos de la partición del día anterior, utilice una expresión como ds=%Y%m%d || -1 days.

Nota

ds es el nombre del campo de partición. No agregue espacios ni otros caracteres invisibles alrededor del signo igual (=).

Los siguientes ejemplos muestran cómo utilizar condiciones de partición para MaxCompute.

  • Para especificar varias reglas de filtro de partición, sepárelas con un punto y coma (;). Por ejemplo, pt=1;pt=2 coincide con todas las particiones donde el campo de partición pt es 1 o 2.

  • Una regla de filtro puede especificar valores para varios campos de partición, separados por comas (,). Por ejemplo, pt1=1,pt2=2,pt3=3 coincide con las particiones que satisfacen las tres condiciones simultáneamente. Tenga en cuenta que funciones como %Y%m%d || -1 days son compatibles con particiones de un solo nivel, pero no con filtros de partición de varios niveles.

1

Ejemplo: Suponga que una tabla de MaxCompute tiene una partición pt que contiene una subpartición ds, como se muestra en la figura anterior.

  • Varias particiones: **pt=1;pt=2 sincroniza todos los datos de las particiones pt=1 y pt=2.**

  • **Varios campos de partición: pt=1,ds=1 sincroniza los datos de la subpartición ds=1 dentro de la partición pt=1.**

  • **Sintaxis no compatible: Actualmente no se admiten expresiones como pt=1,ds=%Y%m%d || -1 days o pt=1;pt=%Y%m%d || -1 days.**

  • El valor de un campo de partición puede ser un carácter comodín (*), que coincide con cualquier valor. En este caso, puede omitir el campo en la regla de filtro.

  • El valor de un campo de partición puede ser una expresión regular. Por ejemplo, pt=[0-9]* coincide con todas las particiones donde el valor de pt es un número.

  • El valor de un campo de partición puede utilizar coincidencias basadas en tiempo. El formato es partition_field=formatted_time_value||time_interval_expression. Por ejemplo, ds=%Y%m%d || -1 days especifica que el campo de partición es ds, el formato es 20150510 y se accede a los datos del día anterior.

  • 5.1. La hora formateada admite los especificadores de formato de fecha estándar que se enumeran en la siguiente tabla.

  • 5.2. La expresión de intervalo de tiempo admite el formato +/- n unit, donde unit puede ser week(s), day(s), hour(s), minute(s), second(s) o microsecond(s). Un signo más (+) indica un tiempo n unidades después de la creación de la tarea, mientras que un signo menos (-) indica un tiempo n unidades antes.

  • 5.3. De forma predeterminada, el sistema reemplaza los parámetros de tiempo en todas las reglas de filtro con un desplazamiento de +0 days. Por lo tanto, tenga en cuenta que los valores de campo utilizados para el filtrado no pueden contener estos especificadores de formato de fecha como cadenas literales. Por ejemplo, si una tarea se crea un miércoles, un filtro pt=%abc coincidirá con particiones donde el valor de pt sea Wedbc, y no la cadena literal %abc.

Especificadores de formato de fecha disponibles:

%d: Day of the month (01-31)  
%H: Hour in 24-hour format (00-23)     
%m: Month (01-12)  
%M: Minute (00-59)   
%S: Second (00-61)   
%y: Year as a two-digit number (00-99)  
%Y: Year as a four-digit number

5.3. Configurar el mecanismo de control de sincronización de datos:

Seleccione Use DONE file para controlar cuándo inicia el sistema una sincronización completa y ayudar a garantizar la integridad de los datos. Antes de iniciar una sincronización completa desde MaxCompute, el sistema busca el archivo DONE del día actual y espera si no encuentra el archivo. El tiempo de espera predeterminado es de una hora.

  • Descargue el cliente odpscmd del sitio web oficial de MaxCompute. El nombre del paquete es odps_clt_release_64.tar.gz.

  • Debe contar con el permiso CreateResource en el proyecto de destino.

  • Después de la instalación, ejecute el siguiente comando para cargar el archivo DONE. Asigne un nombre al archivo con el formato $prefix_%Y-%m-%d, donde $prefix es un prefijo que toma como valor predeterminado el nombre de la tabla, y %Y-%m-%d es la fecha de la tarea de reindexación. El intervalo mínimo para las tareas programadas es de un día.

    odpscmd -u accessid -p accesskey --project=<prj_name>-e "add file <done file>;"
  • Para obtener instrucciones sobre el uso del cliente de MaxCompute (odpscmd), consulte Connect using the local client (odpscmd).

  • El archivo DONE debe estar en formato JSON y contener un timestamp en milisegundos para el conjunto de datos completo. El sistema conserva los datos incrementales durante un máximo de tres días, por lo que esta marca de tiempo no puede tener una antigüedad superior a tres días.

  • Esta marca de tiempo especifica el momento a partir del cual se comienza a aplicar los datos incrementales. Si no la configura, el sistema anexará los datos incrementales a partir de la hora de inicio de la tarea de reindexación.

  • Por ejemplo, considere un conjunto de datos completo generado a las 09:00. MaxCompute termina de procesarlo a las 10:00 y hay una reindexación programada en OpenSearch para las 10:30. Para garantizar la integridad de los datos, el archivo DONE debe especificar la marca de tiempo de las 09:00 (en milisegundos). Después de sincronizar los datos completos, el sistema anexa todos los datos incrementales generados después de las 09:00. Si omite esta marca de tiempo, el sistema anexa los datos incrementales a partir de la hora de reindexación (10:30), lo que provoca la pérdida de los datos generados entre las 09:00 y las 10:30. Esta configuración es fundamental para evitar la pérdida de datos. La marca de tiempo no es obligatoria si no utiliza datos incrementales.

  • La configuración de data time funciona bajo un principio similar al de la marca de tiempo del archivo DONE, ya que rastrea el punto de inicio para los datos incrementales enviados mediante llamadas a la API durante una reindexación.

{
"timestamp":"1234567890000"
}

Prioridad del archivo DONE y la hora de los datos:

  1. La configuración de data time para un origen de datos de MaxCompute es obligatoria y tiene prioridad sobre el archivo DONE.

  2. Si crea solo una versión de la aplicación, debe especificar la data time. En este escenario, no se puede utilizar únicamente un archivo DONE.

  3. Para utilizar la reindexación programada, debe configurar tanto la data time como un archivo DONE. La primera versión utiliza la data time. Para todas las versiones posteriores creadas automáticamente, el archivo DONE tiene prioridad.

OpenSearch Industry Algorithm Edition admite tres orígenes de datos de Alibaba Cloud: RDS, MaxCompute (anteriormente ODPS) y PolarDB. RDS y PolarDB admiten configuraciones de unión de varias tablas, lo que le permite vincular una tabla principal con tablas externas dentro de una aplicación. MaxCompute está limitado a una base de datos por aplicación. No se admiten bases de datos autogestionadas ni otros orígenes de datos externos.

Para separar los entornos de prueba y producción, cree instancias independientes de OpenSearch con diferentes orígenes de datos.

Notas de uso

Importante

La conexión al origen de datos de MaxCompute solo admite sincronización completa. Para gestionar actualizaciones incrementales, debe enviar los datos por separado mediante el SDK.