Filtrar datos de nivel de fila para un origen mediante la API Flow Service
Lea esta guía para ver los pasos sobre cómo filtrar los datos de nivel de fila para un origen mediante la Flow Service API.
Introducción
Este tutorial requiere una comprensión práctica de los siguientes componentes de Adobe Experience Platform:
- Fuentes: Experience Platform permite la ingesta de datos de varias fuentes al tiempo que le ofrece la capacidad de estructurar, etiquetar y mejorar los datos entrantes mediante los servicios de Platform.
- Zonas protegidas: Experience Platform proporciona zonas protegidas virtuales que dividen una sola instancia de Platform en entornos virtuales independientes para ayudar a desarrollar y evolucionar aplicaciones de experiencia digital.
Uso de API de Platform
Para obtener información sobre cómo realizar llamadas correctamente a las API de Platform, consulte la guía sobre introducción a las API de Platform.
Filtrar datos de origen filter-source-data
A continuación se describen los pasos que se deben seguir para filtrar los datos de nivel de fila para el origen.
Recupere las especificaciones de conexión retrieve-your-connection-specs
El primer paso para filtrar los datos de nivel de fila para el origen es recuperar las especificaciones de conexión del origen y determinar los operadores y el idioma que admite el origen.
Para recuperar la especificación de conexión de un origen determinado, realice una solicitud de GET al extremo /connectionSpecs
de la API Flow Service y proporcione el nombre de propiedad del origen como parte de los parámetros de consulta.
Formato de API
GET /connectionSpecs/{QUERY_PARAMS}
{QUERY_PARAMS}
name
y especificando "google-big-query"
en la búsqueda.La siguiente solicitud recupera las especificaciones de conexión de Google BigQuery.
code language-shell |
---|
|
Una respuesta correcta devuelve el código de estado 200 y las especificaciones de conexión de Google BigQuery, incluida la información sobre el idioma de consulta admitido y los operadores lógicos.
code language-json |
---|
|
table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 6-row-2 layout-auto | |
---|---|
Propiedad | Descripción |
attributes.filterAtSource.enabled |
Determina si el origen consultado admite el filtrado de datos de nivel de fila. |
attributes.filterAtSource.queryLanguage |
Determina el lenguaje de consulta que admite el origen de la consulta. |
attributes.filterAtSource.logicalOperators |
Determina los operadores lógicos que se pueden utilizar para filtrar los datos de nivel de fila para el origen. |
attributes.filterAtSource.comparisonOperators |
Determina los operadores de comparación que se pueden utilizar para filtrar los datos de nivel de fila para el origen. Consulte la tabla siguiente para obtener más información sobre los operadores de comparación. |
attributes.filterAtSource.columnNameEscapeChar |
Determina el carácter que se utilizará para aplicar secuencias de escape a las columnas. |
attributes.filterAtSource.valueEscapeChar |
Determina cómo se rodearán los valores al escribir una consulta SQL. |
Operadores de comparación comparison-operators
==
!=
<
>
<=
>=
like
WHERE
para buscar un patrón especificado.in
Especificar condiciones de filtrado para la ingesta specify-filtering-conditions-for-ingestion
Una vez identificados los operadores lógicos y el lenguaje de consulta que admite el origen, puede utilizar Profile Query Language (PQL) para especificar las condiciones de filtrado que desea aplicar a los datos de origen.
En el ejemplo siguiente, las condiciones se aplican solo a los datos de selección que son iguales a los valores proporcionados para los tipos de nodo enumerados como parámetros.
{
"type": "PQL",
"format": "pql/json",
"value": {
"nodeType": "fnApply",
"fnName": "=",
"params": [
{
"nodeType": "fieldLookup",
"fieldName": "city"
},
{
"nodeType": "literal",
"value": "DDN"
}
]
}
}
Previsualización de los datos preview-your-data
Puede obtener una vista previa de los datos realizando una solicitud de GET al extremo /explore
de la API Flow Service, proporcionando filters
como parte de los parámetros de consulta y especificando las condiciones de entrada de PQL en Base64.
Formato de API
GET /connections/{BASE_CONNECTION_ID}/explore?objectType=table&object={TABLE_PATH}&preview=true&filters={FILTERS}
{BASE_CONNECTION_ID}
{TABLE_PATH}
{FILTERS}
code language-shell |
---|
|
Una respuesta correcta devuelve el contenido y la estructura de los datos.
code language-json |
---|
|
Crear una conexión de origen para los datos filtrados
Para crear una conexión de origen e introducir datos filtrados, realice una solicitud de POST al extremo /sourceConnections
y proporcione las condiciones de filtrado en los parámetros del cuerpo de la solicitud.
Formato de API
POST /sourceConnections
La siguiente solicitud crea una conexión de origen para ingerir datos de test1.fasTestTable
donde city
= DDN
.
code language-shell |
---|
|
Una respuesta correcta devuelve el identificador único (id
) de la conexión de origen recién creada.
code language-json |
---|
|
Filtrar entidades de actividad para Marketo Engage filter-for-marketo
Puede usar el filtrado a nivel de fila para filtrar entidades de actividad al usar el Marketo Engage conector de origen. Actualmente, solo puede filtrar por entidades de actividad y tipos de actividad estándar. Las actividades personalizadas permanecen gobernadas bajo Marketo asignaciones de campo.
Marketo tipos de actividades estándar marketo-standard-activity-types
En la tabla siguiente se describen los tipos de actividades estándar de Marketo. Utilice esta tabla como referencia para los criterios de filtrado.
Siga los pasos a continuación para filtrar las entidades de actividad estándar al usar el conector de origen Marketo.
Crear un flujo de datos de borrador
En primer lugar, cree un Marketo flujo de datos y guárdelo como borrador. Consulte la siguiente documentación para ver los pasos detallados sobre cómo crear un flujo de datos de borrador:
Recuperación del ID del flujo de datos
Una vez que tenga un flujo de datos borrador, debe recuperar su ID correspondiente.
En la interfaz de usuario, vaya al catálogo de fuentes y luego seleccione Flujos de datos en el encabezado superior. Utilice la columna de estado para identificar todos los flujos de datos guardados en modo de borrador y, a continuación, seleccione el nombre del flujo de datos. A continuación, utilice el panel Propiedades de la derecha para localizar el ID de flujo de datos.
Recuperación de detalles del flujo de datos
A continuación, debe recuperar los detalles del flujo de datos, especialmente el ID de conexión de origen asociado al flujo de datos. Para recuperar los detalles del flujo de datos, realice una solicitud de GET al extremo /flows
y proporcione el ID del flujo de datos como parámetro de ruta.
Formato de API
GET /flows/{FLOW_ID}
{FLOW_ID}
La siguiente solicitud recupera información sobre el id. de flujo de datos: a7e88a01-40f9-4ebf-80b2-0fc838ff82ef
.
code language-shell |
---|
|
Una respuesta correcta devuelve los detalles del flujo de datos, incluida la información sobre sus conexiones de origen y destino correspondientes. Debe tomar nota de los ID de conexión de origen y destino, ya que estos valores son necesarios más adelante, para publicar el flujo de datos.
code language-json line-numbers data-start-1 data-line-offset-4 h-23 h-26 |
---|
|
Recuperar los detalles de la conexión de origen
A continuación, use el identificador de conexión de origen y realice una solicitud de GET al extremo /sourceConnections
para recuperar los detalles de conexión de origen.
Formato de API
GET /sourceConnections/{SOURCE_CONNECTION_ID}
{SOURCE_CONNECTION_ID}
code language-shell |
---|
|
Una respuesta correcta devuelve los detalles de la conexión de origen. Tome nota de la versión, ya que necesitará este valor en el siguiente paso para actualizar la conexión de origen.
code language-json line-numbers data-start-1 data-line-offset-4 h-30 |
---|
|
Actualizar la conexión de origen con las condiciones de filtrado
Ahora que tiene el ID de conexión de origen y su versión correspondiente, puede realizar una solicitud de PATCH con las condiciones de filtrado que especifican los tipos de actividad estándar.
Para actualizar la conexión de origen, realice una solicitud de PATCH al extremo /sourceConnections
y proporcione el identificador de conexión de origen como parámetro de consulta. Además, debe proporcionar un parámetro de encabezado If-Match
, con la versión correspondiente de la conexión de origen.
If-Match
al realizar una solicitud de PATCH. El valor de este encabezado es la versión/etiqueta única del flujo de datos que desea actualizar. El valor de versión/etiqueta se actualiza con cada actualización correcta de un flujo de datos.Formato de API
PATCH /sourceConnections/{SOURCE_CONNECTION_ID}
{SOURCE_CONNECTION_ID}
code language-shell |
---|
|
Una respuesta correcta devuelve el ID de conexión de origen y la etiqueta (versión).
code language-json |
---|
|
Publish su conexión de origen
Con la conexión de origen actualizada con las condiciones de filtrado, ahora puede pasar del estado de borrador y publicar la conexión de origen. Para ello, realice una solicitud de POST al extremo /sourceConnections
y proporcione el ID de la conexión de origen de borrador, así como una operación de acción para la publicación.
Formato de API
POST /sourceConnections/{SOURCE_CONNECTION_ID}/action?op=publish
{SOURCE_CONNECTION_ID}
op
op
en publish
.La siguiente solicitud publica una conexión de origen esbozada.
code language-shell |
---|
|
Una respuesta correcta devuelve el ID de conexión de origen y la etiqueta (versión).
code language-json |
---|
|
Publish su conexión de destino
Al igual que en el paso anterior, también debe publicar la conexión de destino para continuar y publicar el flujo de datos de borrador. Realice una solicitud de POST al extremo /targetConnections
y proporcione el identificador de la conexión de destino de borrador que desea publicar, así como una operación de acción para la publicación.
Formato de API
POST /targetConnections/{TARGET_CONNECTION_ID}/action?op=publish
{TARGET_CONNECTION_ID}
op
op
en publish
.La siguiente solicitud publica la conexión de destino con el identificador: 7e53e6e8-b432-4134-bb29-21fc6e8532e5
.
code language-shell |
---|
|
Una respuesta correcta devuelve el ID y la etiqueta correspondiente para la conexión de destino publicada.
code language-json |
---|
|
Publish su flujo de datos
Con las conexiones de origen y destino publicadas, ahora puede continuar con el paso final y publicar el flujo de datos. Para publicar el flujo de datos, realice una solicitud de POST al extremo /flows
y proporcione el ID del flujo de datos y una operación de acción para la publicación.
Formato de API
POST /flows/{FLOW_ID}/action?op=publish
{FLOW_ID}
op
op
en publish
.La siguiente solicitud publica el flujo de datos de borrador.
code language-shell |
---|
|
Una respuesta correcta devuelve el ID y el etag
correspondiente del flujo de datos.
code language-json |
---|
|
Puede utilizar la interfaz de usuario del Experience Platform para comprobar que se ha publicado el flujo de datos de borrador. Vaya a la página de flujos de datos en el catálogo de fuentes y haga referencia al estado del flujo de datos. Si se ejecuta correctamente, el estado debería establecerse en Enabled.
- Un flujo de datos con el filtrado habilitado solo se rellenará una vez. Cualquier cambio en el que realice en los criterios de filtrado (ya sea una adición o una eliminación) solo surtirá efecto para los datos incrementales.
- Si necesita introducir datos históricos para cualquier tipo de actividad nuevo, se recomienda crear un flujo de datos nuevo y definir los criterios de filtrado con los tipos de actividad adecuados en la condición de filtro.
- No se pueden filtrar los tipos de actividades personalizadas.
- No se pueden previsualizar los datos filtrados.
Apéndice
Esta sección proporciona más ejemplos de diferentes cargas útiles para el filtrado.
Condiciones singulares
Puede omitir el fnApply
inicial en escenarios que solo requieran una condición.
code language-json |
---|
|
Uso del operador in
Consulte la carga útil de ejemplo siguiente para ver un ejemplo del operador in
.
code language-json |
---|
|
Uso del operador isNull
Consulte la carga útil de ejemplo siguiente para ver un ejemplo del operador isNull
.
code language-json |
---|
|
Uso del operador NOT
Consulte la carga útil de ejemplo siguiente para ver un ejemplo del operador NOT
.
code language-json |
---|
|
Ejemplo con condiciones anidadas
Consulte la carga útil de ejemplo siguiente para ver un ejemplo de condiciones anidadas complejas.
code language-json |
---|
|