Todos los productos
Search
Centro de documentos

Simple Log Service:Funciones de mapeo y enriquecimiento

Última actualización: Sep 22, 2026

Este tema describe la sintaxis y los parámetros de las funciones de mapeo y enriquecimiento. También incluye ejemplos sobre cómo utilizar estas funciones.

Funciones

Categoría

Función

Descripción

Mapeo basado en campos

e_dict_map

Mapea el valor de un campo de entrada a un valor en un diccionario de datos específico y devuelve un campo nuevo.

Esta función se puede usar junto con otras funciones. Para obtener más información, consulte Use the e_dict_map function to enrich data.

e_table_map

Mapea el valor de un campo de entrada a una fila en una tabla específica y devuelve un campo nuevo.

Esta función se puede usar junto con otras funciones. Para obtener más información, consulte Enrich HTTP response status codes by using the e_table_map function.

e_tablestore_map

Enriquece un registro sin procesar mediante una tabla de datos en Tablestore como tabla de dimensiones.

e_redis_map

Enriquece un registro sin procesar mediante una tabla de datos en ApsaraDB for Redis como tabla de dimensiones.

e_dict_map

La función e_dict_map asigna el valor de un campo de entrada a un valor en un diccionario de datos específico y devuelve un campo nuevo.

  • Sintaxis

    e_dict_map(data, field, output_field, case_insensitive=True, missing=None, mode="overwrite")
  • Parámetros

    Parámetro

    Tipo

    Obligatorio

    Descripción

    data

    Dict

    Sí

    Diccionario de datos que se utiliza para la asignación. El valor de este parámetro debe tener el formato estándar {key01:value01,key01:value02,...}. Las claves deben ser cadenas. Ejemplo: {"1": "TCP", "2": "UDP", "3": "HTTP", "*": "Unknown"}.

    field

    String o lista de cadenas

    Sí

    Uno o más nombres de campos. Si el valor de este parámetro contiene varios nombres de campos, el sistema ejecuta las siguientes operaciones:

    • El sistema asigna los nombres de campos de forma secuencial.

    • Si el sistema encuentra varias coincidencias para los campos y el parámetro mode está configurado como overwrite, devuelve el último valor coincidente.

    • Si no hay coincidencias para los campos, el sistema devuelve el valor del parámetro missing.

    output_field

    String

    Sí

    Nombre del campo que desea que devuelva la función.

    case_insensitive

    Boolean

    No

    Indica si se deshabilita la distinción entre mayúsculas y minúsculas durante la asignación.

    • True: deshabilita la distinción entre mayúsculas y minúsculas. Este es el valor predeterminado.

    • False: habilita la distinción entre mayúsculas y minúsculas.

    Nota

    Si el diccionario de datos contiene varias claves que solo difieren en el uso de mayúsculas y minúsculas, y el parámetro case_insensitive se establece en True, el sistema primero asigna el valor del campo de entrada a una clave con el mismo formato de mayúsculas y minúsculas. Si no existe dicha clave, el sistema asigna el valor de forma aleatoria a una de las claves disponibles.

    missing

    String

    No

    Valor que se asigna al campo especificado por output_field cuando no se encuentra ninguna coincidencia para el campo de entrada. Valor predeterminado: None, lo que indica que no se realiza ninguna asignación.

    Nota

    Si el diccionario de datos contiene una clave con un asterisco (), el parámetro missing deja de tener efecto. Esto ocurre porque el asterisco () tiene mayor prioridad que el parámetro missing.

    mode

    String

    No

    Modo de sobrescritura de los campos. Valor predeterminado: overwrite. Para obtener más información, consulte Field extraction check and overwrite modes.

  • Respuesta

    Se devuelve un registro que contiene un campo nuevo.

  • Ejemplos

    • Ejemplo 1: asigne el valor del campo pro del registro original a un valor de un diccionario de datos y genere un campo nuevo llamado protocol.

      • Registro original

        data:  123
        pro:  1
      • Regla de transformación

        e_dict_map(
            {"1": "TCP", "2": "UDP", "3": "HTTP", "6": "HTTPS", "*": "Unknown"},
            "pro",
            "protocol",
        )
      • Resultado

        data:  123
        pro:  1
        protocol:  TCP
    • Ejemplo 2: asigne el valor del campo status de los registros originales a valores de un diccionario de datos y genere un campo nuevo llamado message.

      • Registros originales

        status:  500
        status:  400
        status:  200
      • Regla de transformación

        e_dict_map({"400": "Error", "200": "Success", "*": "Other"}, "status", "message")
      • Resultado

        status:  500
        message: Other
        status:  400
        message: Error
        status:  200
        message: Success
  • Referencias

    Esta función se puede usar junto con otras funciones. Para obtener más información, consulte Use the e_dict_map function to enrich data.

e_table_map

La función e_table_map asigna el valor de un campo de entrada a una fila de una tabla específica y devuelve un campo nuevo.

  • Sintaxis

    e_table_map(data, field, output_fields, missing=None, mode="fill-auto")
  • Parámetros

    Parámetro

    Tipo

    Obligatorio

    Descripción

    data

    Table

    Sí

    Tabla que se utiliza para la asignación.

    Nota

    Si usa las funciones de recursos res_rds_mysql y res_log_logstore_pull como orígenes de datos, debe establecer el parámetro primary_keys. De lo contrario, el rendimiento se verá gravemente afectado y podrían producirse retrasos en la tarea. Para obtener más información sobre cómo configurar el parámetro primary_keys, consulte Resource functions.

    field

    String, lista de cadenas o lista de tuplas

    Sí

    Campo de entrada. Si un registro no contiene este campo, no se ejecuta ninguna operación sobre él.

    output_fields

    String, lista de cadenas o lista de tuplas

    Sí

    Campos de salida. Ejemplo: ["province", "pop"].

    missing

    String

    No

    Valor que se asigna a los campos especificados por output_fields cuando no se encuentra coincidencia para el campo de entrada. Valor predeterminado: None, lo que indica que no se realiza ninguna asignación. Si desea asignar el campo de entrada a varias columnas, establezca el parámetro missing con una lista de valores predeterminados correspondientes al campo de entrada. La cantidad de valores predeterminados debe coincidir con el número de columnas.

    Nota

    Si la tabla contiene una columna con un asterisco (), el parámetro missing deja de tener efecto. Esto ocurre porque el asterisco () tiene mayor prioridad que el parámetro missing.

    mode

    String

    No

    Modo de sobrescritura de los campos. Valor predeterminado: fill-auto. Para obtener más información, consulte Field extraction check and overwrite modes.

  • Respuesta

    Se devuelve un registro que contiene los campos nuevos.

  • Ejemplos

    • Ejemplo 1: asigne el valor del campo city a una fila de una tabla y devuelva el valor del campo province de esa fila.

      • Registro original

        data: 123
        city: nj
      • Regla de transformación

        e_table_map(
            tab_parse_csv("city,pop,province\nnj,800,js\nsh,2000,sh"), "city", "province"
        )
      • Resultado

        data: 123
        city: nj
        province: js
    • Ejemplo 2: asigne el valor del campo city a una fila de una tabla y devuelva los valores de los campos province y pop de esa fila.

      • Registro original

        data: 123
        city: nj
      • Regla de transformación

        e_table_map(
            tab_parse_csv("city,pop,province\nnj,800,js\nsh,2000,sh"),
            "city",
            ["province", "pop"],
        )
      • Resultado

        data: 123
        city: nj
        province: js
        pop: 800
    • Ejemplo 3: utilice la función tab_parse_csv para construir una tabla, asigne el valor del campo city a una fila de dicha tabla y devuelva los valores de los campos province y pop de esa fila.

      • Registro original

        data: 123
        city: nj
      • Regla de transformación

        e_table_map(
            tab_parse_csv("city#pop#province\nnj#800#js\nsh#2000#sh", sep="#"),
            "city",
            ["province", "pop"],
        )
      • Resultado

        data: 123
        city: nj
        province: js
        pop: 800
    • Ejemplo 4: use la función tab_parse_csv para compilar una tabla, asigne el valor del campo city a una fila de la tabla y devuelva los valores de los campos province y pop correspondientes a esa fila.

      • Registro sin procesar

        data: 123
        city: nj
      • Regla de transformación

        e_table_map(
            tab_parse_csv(
                "city,pop,province\n|nj|,|800|,|js|\n|shang hai|,2000,|SHANG,HAI|", quote="|"
            ),
            "city",
            ["province", "pop"],
        )
      • Resultado

        data: 123
        city: nj
        province: js
        pop: 800
    • Ejemplo 5: el campo de entrada es distinto al campo correspondiente en la tabla que se usa para la asignación. Busque una fila en la tabla con base en los campos cty y city, y devuelva el valor del campo province de dicha fila.

      • Registro sin procesar

        data: 123
        cty: nj
      • Regla de transformación

        e_table_map(
            tab_parse_csv("city,pop,province\nnj,800,js\nsh,2000,sh"),
            [("cty", "city")],
            "province",
        )
      • Resultado

        data: 123
        cty: nj
        province: js
    • Ejemplo 6: el campo de entrada es distinto al campo correspondiente en la tabla que se usa para la asignación. Asigne los datos y cambie el nombre del campo de salida.

      • Registro sin procesar

        data: 123
        cty: nj
      • Regla de transformación

        e_table_map(
            tab_parse_csv("city,pop,province\nnj,800,js\nsh,2000,sh"),
            [("cty", "city")],
            [("province", "pro")],
        )
                                            
      • Resultado

        data: 123
        cty: nj
        pro: js
    • Ejemplo 7: asigne los valores de varios campos a una fila de una tabla.

      • Registro sin procesar

        data: 123
        city: nj
        pop: 800
      • Regla de transformación

        e_table_map(
            tab_parse_csv("city,pop,province\nnj,800,js\nsh,2000,sh"),
            ["city", "pop"],
            "province",
        )
      • Resultado

        data: 123
        city: nj
        pop: 800
        province: js
    • Ejemplo 8: asigne los valores de varios campos a una fila de una tabla. Los campos de entrada son distintos de los campos correspondientes en la tabla que se usa para la asignación.

      • Registro sin procesar

        data: 123
        cty: nj
        pp: 800
      • Regla de transformación

        e_table_map(
            tab_parse_csv("city,pop,province\nnj,800,js\nsh,2000,sh"),
            [("cty", "city"), ("pp", "pop")],
            "province",
        )
      • Resultado

        data: 123
        cty: nj
        pp: 800
        province: js
  • Referencias

    Esta función se puede usar junto con otras funciones. Para obtener más información, consulte Enrich HTTP response status codes by using the e_table_map function.

e_tablestore_map

La función e_tablestore_map enriquece un registro sin procesar mediante una tabla de datos en Tablestore, la cual se utiliza como tabla de dimensiones.

  • Sintaxis

    e_tablestore_map(
        fields,
        endpoint,
        ak_id,
        ak_secret,
        instance_name,
        table_names,
        output_fields=None,
        output_table_name=None,
        encoding="utf8",
        mode="fill-auto",
    )
  • Parámetros

    Parámetro

    Tipo

    Obligatorio

    Descripción

    fields

    String, number, list o tuple list

    Sí

    Campos del registro sin procesar que se usan para mapear los datos entre dicho registro y la tabla de datos. La función asigna varios campos del registro a las claves primarias de la tabla de datos, uno por uno. Ejemplos:

    • Si la tabla de datos contiene la clave primaria a y el registro sin procesar incluye el campo a, use fields="a".

    • Si la tabla de datos contiene las claves primarias a, b y c, y el registro sin procesar incluye los campos a, b y c, use fields=["a", "b", "c"].

    • Si la tabla de datos contiene las claves primarias a, b y c, y el registro sin procesar incluye los campos a1, b1 y c1, use fields=[("a1", "a"), ("b1", "b"), ("c1", "c")].

    endpoint

    String

    Sí

    Endpoint de la instancia de Tablestore donde se creó la tabla de datos. Para obtener más información, consulte Endpoints.

    Nota

    Puede usar el endpoint de la virtual private cloud (VPC) o el endpoint público de la instancia de Tablestore. El endpoint de VPC sirve para acceder dentro de la misma región, mientras que el endpoint público permite el acceso por internet sin importar la región.

    ak_id

    String

    Sí

    AccessKey ID de la cuenta con permisos para acceder a la instancia de Tablestore. Para obtener más información, consulte Create an AccessKey.

    Si usa un usuario de RAM, compruebe que tenga los permisos de acceso correspondientes, como AliyunOTSReadOnlyAccess. Para obtener más información, consulte Manage RAM user permissions.

    ak_secret

    String

    Sí

    AccessKey secret de la cuenta con permisos para acceder a la instancia de Tablestore. Para obtener más información, consulte Create an AccessKey.

    instance_name

    String

    Sí

    Nombre de la instancia de Tablestore.

    table_names

    String, string list o tuple list

    Sí

    Nombre de la tabla de datos. Si la tabla utiliza un índice secundario, establezca este parámetro con el nombre del índice. Para obtener más información sobre la función de índices secundarios, consulte Create a secondary index.

    Por ejemplo, si se creó el índice secundario index1 para la tabla de datos, establezca este parámetro en "index1".

    output_fields

    List

    No

    Campos de salida. Puede especificar los nombres de las columnas de clave primaria o de las columnas de atributos. Ejemplo: ["province", "pop"]. Si no configura este parámetro, se devuelven todas las columnas de la fila coincidente según los campos de entrada.

    Nota

    Si se crearon varias tablas de datos en la instancia de Tablestore, la función devuelve únicamente los datos de la primera tabla utilizada para la coincidencia.

    output_table_name

    String

    No

    Nombre de la tabla de datos donde se almacenan los datos devueltos. Valor predeterminado: None, lo que indica que los campos de salida no incluyen el nombre de la tabla. Si establece este parámetro con una cadena de texto, los campos de salida sí lo incluirán.

    Por ejemplo, suponga que se usa la tabla de datos llamada test y la regla de transformación incluye output_fields=["province", "pop"],output_table_name="table_name". Si coinciden las columnas de datos ["province", "pop"] de la tabla test, los campos de salida serán province: xxx, pop:xxx,table_name:test.

    encoding

    String

    No

    Método de codificación de los parámetros de la solicitud HTTPS. Valor predeterminado: utf-8.

    mode

    String

    No

    Modo de sobrescritura de los campos. Valor predeterminado: fill-auto. Para obtener más información, consulte Field extraction check and overwrite modes.

  • Respuesta

    Se devuelve un registro que contiene los campos nuevos.

  • Ejemplos

    Los ejemplos a continuación se basan en la tabla de datos table_name_test.

    city (clave principal)

    pop (clave principal)

    cid

    province

    region

    bj

    300

    1

    bj

    huabei

    nj

    800

    2

    js

    huadong

    sh

    200

    3

    sh

    huadong

    • Ejemplo 1: busque una fila en la tabla de datos con base en los campos city y pop. Devuelva los valores de las columnas province y cid correspondientes a dicha fila.

      • Registro original

        city:sh
        name:maki
        pop:200
      • Regla de transformación

        e_tablestore_map(
            ["city","pop"],
            "https://d00s0dxa****.cn-hangzhou.ots.aliyuncs.com",
            "LTA3****",
            "VIH9****",
            "d00s0dxa****",
            "table_name_test",
            output_fields=["province","cid"])
                                            
      • Resultado

        city:sh
        name:maki
        pop:200
        cid:3
        province:sh
    • Ejemplo 2: asigne los campos city1 y pop1 del registro original a las claves principales city y pop de la tabla de datos. Busque una fila en la tabla con base en estos campos y devuelva los valores de todas sus columnas.

      • Registro original

        city1:sh
        name:maki
        pop1:200
      • Regla de transformación

        e_tablestore_map(
            [("city1","city"), ("pop1", "pop")],
            "https://d00s0dxa****.cn-hangzhou.ots.aliyuncs.com",
            "LTA3****",
            "VIH9****",
            "d00s0dxa****",
            "table_name_test")
                                            
      • Resultado

        city:sh
        name:maki
        pop:200
        cid:3
        province:sh
        region:huadong
    • Ejemplo 3: busque una fila en la tabla de datos con base en los campos city y pop, y devuelva los valores de todas sus columnas. Establezca output_table_name como "table_name". En el resultado devuelto, consulte el nombre de la tabla de datos donde se almacenan los datos obtenidos.

      • Registro original

        city:sh
        name:maki
        pop:200
      • Regla de transformación

        e_tablestore_map(
            ["city","pop"],
            "https://d00s0dxa****.cn-hangzhou.ots.aliyuncs.com",
            "LTA3****",
            "VIH9****",
            "d00s0dxa****",
            "table_name_test",
            output_table_name="table_name"
        )
                                            
      • Resultado

        city:sh
        name:maki
        pop:200
        cid:3
        province:sh
        region:huadong
        table_name:table_name_test
    • Ejemplo 4: busque una fila en las tablas de datos table_name_test, table_name_test1 y table_name_test2 con base en los campos city y pop. Devuelva los valores de todas las columnas de la fila encontrada. En el resultado devuelto, solo se muestran los datos de la tabla table_name_test, ya que es la primera que se utiliza para la coincidencia.

      • Registro original

        city:sh
        name:maki
        pop:200
      • Regla de transformación

        e_tablestore_map(
            ["city","pop"],
            "https://d00s0dxa****.cn-hangzhou.ots.aliyuncs.com",
            "LTA3****",
            "VIH9****",
            "d00s0dxa****",
            ["table_name_test","table_name_test1","table_name_test2"],
            output_table_name="table_name"
        )
      • Resultado

        city:sh
        name:maki
        pop:200
        cid:3
        province:sh
        region:huadong
        table_name:table_name_test
    • Ejemplo 5: busque una fila en la tabla de datos con base en las claves primarias pk1 y pk2 del índice secundario index1. Después, devuelva el valor de la columna predefinida definedcol2 correspondiente a dicha fila. Esta columna predefinida se especificó para el índice secundario index1.

      • Tabla de datos (index1)

        pk1 (clave primaria)

        pk2 (clave primaria)

        definedcol2 (columna predefinida)

        definedcol3 (columna predefinida)

        pk1_1

        pk2_1

        definedcol2_1

        definedcol3_1

        pk1_2

        pk2_2

        definedcol2_2

        definedcol3_2

      • Registro sin procesar

        pk1:pk1_1
        pk2:pk2_1
      • Regla de transformación

        e_tablestore_map(
            ["pk1","pk2"],
            "https://d00s0dxa****.cn-hangzhou.ots.aliyuncs.com",
            "LTA3****",
            "VIH9****",
            "d00s0dxa****",
            "index1",
            output_fields= ["definedcol2"],
            output_table_name="table_name",
        )
                                            
      • Resultado

        pk1:pk1_1
        pk2:pk2_1
        definedcol2:definedcol2_1
        table_name:index1

e_redis_map

La función e_redis_map enriquece un registro sin procesar mediante una tabla de datos en ApsaraDB for Redis, la cual se utiliza como tabla de dimensiones.

  • Sintaxis

    e_redis_map(field, output_field, host, port=6379, db=0, username=None,
                password=None, encoding="utf-8", max_retries=5, mode="fill-auto")
  • Parámetros

    Parámetro

    Tipo

    Obligatorio

    Descripción

    field

    String

    Sí

    Campo del registro sin procesar que se usa para mapear los datos entre dicho registro y la tabla de datos. Si el registro no contiene este campo, no se ejecuta ninguna operación sobre él.

    output_field

    String

    Sí

    Campo de salida.

    host

    String

    Sí

    Endpoint de la base de datos de ApsaraDB for Redis.

    username

    String

    No

    Nombre de usuario de la cuenta con la que se conectará a la base de datos de ApsaraDB for Redis. De forma predeterminada, este parámetro está vacío, lo que indica que no se realiza la autenticación.

    password

    String

    No

    Contraseña de la cuenta con la que se conectará a la base de datos de ApsaraDB for Redis. De forma predeterminada, este parámetro está vacío, lo que indica que no se realiza la autenticación.

    port

    Integer

    No

    Puerto de la base de datos de ApsaraDB for Redis. Valor predeterminado: 6379.

    db

    Integer

    No

    Nombre de la base de datos de ApsaraDB for Redis. Valor predeterminado: 0.

    encoding

    String

    No

    Método de codificación de los datos en la base de datos de ApsaraDB for Redis. Valor predeterminado: utf-8.

    max_retries

    Integer

    No

    Número máximo de reintentos permitidos cuando falla una solicitud de conexión a la base de datos de ApsaraDB for Redis. Valor predeterminado: 5.

    Si la solicitud de conexión falla después de alcanzar el número máximo de reintentos, la función omite el registro actual durante la transformación. Esto no afecta las transformaciones posteriores.

    Cada intervalo entre reintentos duplica al anterior. Los intervalos van de 1 s a 120 s.

    mode

    String

    No

    Modo de sobrescritura de los campos. Valor predeterminado: fill-auto. Para obtener más información, consulte Field extraction check and overwrite modes.

  • Respuesta

    Se devuelve un registro que contiene un campo nuevo.

  • Ejemplos

    A continuación se presentan ejemplos basados en la siguiente tabla de datos de ApsaraDB for Redis.

    Importante

    Solo son compatibles los valores de tipo string.

    Clave

    Valor

    i1001

    { "name": "Orange", "price": 10 }

    i1002

    { "name": "Apple", "price": 12 }

    i1003

    { "name": "Mango", "price": 16 }

    • Ejemplo 1: buscar un valor en la tabla de datos a partir del campo item y devolverlo. En la regla de transformación no se especifican el nombre de usuario ni la contraseña de la cuenta utilizada para conectarse a la base de datos de ApsaraDB for Redis.

      • Registro sin procesar

        item: i1002
        count: 7
      • Regla de transformación

        e_redis_map("item", "detail", host="r-bp1olrdor8353v4s.redis.rds.aliyuncs.com")
      • Resultado

        item: i1002
        count: 7
        detail: {
           "name": "Apple",
           "price": 12
          }
    • Ejemplo 2: buscar un valor en la tabla de datos a partir del campo item y devolverlo. En la regla de transformación se especifican el nombre de usuario y la contraseña de la cuenta utilizada para conectarse a la base de datos de ApsaraDB for Redis.

      • Registro sin procesar

        item: i1003
        count: 7
      • Regla de transformación

        e_redis_map("item", "detail", host="r-bp1olrdor8353v4s****.redis.rds.aliyuncs.com", username="r-bp****", password="***")
      • Resultado

        item: i1003
        count: 7
        detail:{
           "name": "Mango",
           "price": 16
          }