Filtrar dados em nível de linha para uma origem usando a API Flow Service
Leia este guia para obter as etapas sobre como filtrar dados de nível de linha para uma fonte usando a Flow Service API.
Introdução
Este tutorial requer que você tenha uma compreensão funcional dos seguintes componentes do Adobe Experience Platform:
- Fontes: Experience Platform permite que os dados sejam assimilados de várias fontes e fornece a capacidade de estruturar, rotular e aprimorar os dados recebidos usando os serviços do Platform.
- Sandboxes: Experience Platform fornece sandboxes virtuais que particionam uma única instância do Platform em ambientes virtuais separados para ajudar a desenvolver aplicativos de experiência digital.
Uso de APIs da plataforma
Para obter informações sobre como fazer chamadas para APIs da Platform com êxito, consulte o manual sobre introdução às APIs da Platform.
Filtrar dados de origem filter-source-data
As etapas a seguir descrevem as etapas a serem seguidas para filtrar os dados no nível de linha para sua origem.
Recupere as especificações da conexão retrieve-your-connection-specs
A primeira etapa na filtragem de dados em nível de linha para a origem é recuperar as especificações de conexão da origem e determinar os operadores e o idioma compatíveis com a origem.
Para recuperar a especificação de conexão de uma determinada origem, faça uma solicitação GET para o ponto de extremidade /connectionSpecs
da API Flow Service e forneça o nome da propriedade da origem como parte dos parâmetros de consulta.
Formato da API
GET /connectionSpecs/{QUERY_PARAMS}
{QUERY_PARAMS}
name
e especificando "google-big-query"
em sua pesquisa.A solicitação a seguir recupera as especificações de conexão para Google BigQuery.
code language-shell |
---|
|
Uma resposta bem-sucedida retorna o código de status 200 e as especificações de conexão para Google BigQuery, incluindo informações sobre o idioma de consulta e operadores lógicos com suporte.
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 | |
---|---|
Propriedade | Descrição |
attributes.filterAtSource.enabled |
Determina se a origem consultada oferece suporte à filtragem de dados em nível de linha. |
attributes.filterAtSource.queryLanguage |
Determina o idioma da consulta que a fonte consultada aceita. |
attributes.filterAtSource.logicalOperators |
Determina os operadores lógicos que você pode usar para filtrar dados em nível de linha para a origem. |
attributes.filterAtSource.comparisonOperators |
Determina operadores de comparação que você pode usar para filtrar dados em nível de linha para sua origem. Consulte a tabela abaixo para obter mais informações sobre operadores de comparação. |
attributes.filterAtSource.columnNameEscapeChar |
Determina o caractere a ser usado para colunas de escape. |
attributes.filterAtSource.valueEscapeChar |
Determina como os valores serão cercados ao gravar uma consulta SQL. |
Operadores de comparação comparison-operators
==
!=
<
>
<=
>=
like
WHERE
para procurar um padrão especificado.in
Especificar condições de filtragem para assimilação specify-filtering-conditions-for-ingestion
Depois de identificar os operadores lógicos e o idioma de consulta compatíveis com sua origem, você pode usar o Profile Query Language (PQL) para especificar as condições de filtragem que deseja aplicar aos dados de origem.
No exemplo abaixo, as condições são aplicadas apenas a dados de seleção que sejam iguais aos valores fornecidos para os tipos de nó listados como parâmetros.
{
"type": "PQL",
"format": "pql/json",
"value": {
"nodeType": "fnApply",
"fnName": "=",
"params": [
{
"nodeType": "fieldLookup",
"fieldName": "city"
},
{
"nodeType": "literal",
"value": "DDN"
}
]
}
}
Pré-visualizar seus dados preview-your-data
Você pode visualizar seus dados fazendo uma solicitação GET para o ponto de extremidade /explore
da API Flow Service enquanto fornece filters
como parte de seus parâmetros de consulta e especifica suas condições de entrada do PQL em Base64.
Formato da 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 |
---|
|
Uma resposta bem-sucedida retorna o conteúdo e a estrutura dos dados.
code language-json |
---|
|
Criar uma conexão de origem para dados filtrados
Para criar uma conexão de origem e assimilar dados filtrados, faça uma solicitação POST para o ponto de extremidade /sourceConnections
e forneça suas condições de filtragem nos parâmetros do corpo da solicitação.
Formato da API
POST /sourceConnections
A solicitação a seguir cria uma conexão de origem para assimilar dados de test1.fasTestTable
onde city
= DDN
.
code language-shell |
---|
|
Uma resposta bem-sucedida retorna o identificador exclusivo (id
) da conexão de origem recém-criada.
code language-json |
---|
|
Filtrar entidades de atividade para Marketo Engage filter-for-marketo
Você pode usar a filtragem em nível de linha para filtrar entidades de atividade ao usar o Marketo Engage conector de origem. Atualmente, você só pode filtrar por entidades de atividade e tipos de atividade padrão. As atividades personalizadas permanecem controladas em Marketo mapeamentos de campo.
Marketo tipos de atividades padrão marketo-standard-activity-types
A tabela a seguir descreve os tipos de atividade padrão para Marketo. Use essa tabela como referência para seus critérios de filtragem.
Siga as etapas abaixo para filtrar suas entidades de atividade padrão ao usar o conector de origem Marketo.
Criar um fluxo de dados de rascunho
Primeiro, crie um Marketo fluxo de dados e salve-o como rascunho. Consulte a documentação a seguir para obter as etapas detalhadas sobre como criar um fluxo de dados de rascunho:
Recuperar a ID do fluxo de dados
Depois de ter um fluxo de dados em rascunho, você deve recuperar a ID correspondente.
Na interface, navegue até o catálogo de fontes e selecione Fluxos de Dados no cabeçalho superior. Use a coluna de status para identificar todos os fluxos de dados que foram salvos no modo de rascunho e, em seguida, selecione o nome do fluxo de dados. Em seguida, use o painel Propriedades à direita para localizar sua ID de fluxo de dados.
Recuperar detalhes do fluxo de dados
Em seguida, você deve recuperar os detalhes do fluxo de dados, especialmente a ID da conexão de origem associada ao fluxo de dados. Para recuperar os detalhes do fluxo de dados, faça uma solicitação GET para o ponto de extremidade /flows
e forneça sua ID de fluxo de dados como um parâmetro de caminho.
Formato da API
GET /flows/{FLOW_ID}
{FLOW_ID}
A solicitação a seguir recupera informações sobre a ID do fluxo de dados: a7e88a01-40f9-4ebf-80b2-0fc838ff82ef
.
code language-shell |
---|
|
Uma resposta bem-sucedida retorna os detalhes do fluxo de dados, incluindo informações sobre as conexões de origem e de destino correspondentes. Você deve anotar suas IDs de conexão de origem e destino, pois esses valores são necessários posteriormente, para publicar seu fluxo de dados.
code language-json line-numbers data-start-1 data-line-offset-4 h-23 h-26 |
---|
|
Recuperar detalhes da conexão de origem
Em seguida, use sua ID de conexão de origem e faça uma solicitação GET ao ponto de extremidade /sourceConnections
para recuperar os detalhes da conexão de origem.
Formato da API
GET /sourceConnections/{SOURCE_CONNECTION_ID}
{SOURCE_CONNECTION_ID}
code language-shell |
---|
|
Uma resposta bem-sucedida retorna os detalhes da conexão de origem. Anote a versão, pois você precisará desse valor na próxima etapa para atualizar sua conexão de origem.
code language-json line-numbers data-start-1 data-line-offset-4 h-30 |
---|
|
Atualizar sua conexão de origem com condições de filtragem
Agora que você tem a ID de conexão de origem e a versão correspondente, é possível fazer uma solicitação de PATCH com as condições de filtro que especificam os tipos de atividade padrão.
Para atualizar sua conexão de origem, faça uma solicitação PATCH para o ponto de extremidade /sourceConnections
e forneça sua ID de conexão de origem como um parâmetro de consulta. Além disso, você deve fornecer um parâmetro de cabeçalho If-Match
, com a versão correspondente da conexão de origem.
If-Match
é necessário ao fazer uma solicitação PATCH. O valor desse cabeçalho é a versão/tag exclusiva do fluxo de dados que você deseja atualizar. O valor da versão/tag é atualizado com cada atualização bem-sucedida de um fluxo de dados.Formato da API
PATCH /sourceConnections/{SOURCE_CONNECTION_ID}
{SOURCE_CONNECTION_ID}
code language-shell |
---|
|
Uma resposta bem-sucedida retorna a ID de conexão de origem e a tag (versão).
code language-json |
---|
|
Publish sua conexão de origem
Com sua conexão de origem atualizada com suas condições de filtragem, agora é possível seguir do estado de rascunho e publicar sua conexão de origem. Para fazer isso, faça uma solicitação POST para o ponto de extremidade /sourceConnections
e forneça a ID da sua conexão de origem de rascunho, bem como uma operação de ação para publicação.
Formato da API
POST /sourceConnections/{SOURCE_CONNECTION_ID}/action?op=publish
{SOURCE_CONNECTION_ID}
op
op
como publish
.A solicitação a seguir publica uma conexão de origem de rascunho.
code language-shell |
---|
|
Uma resposta bem-sucedida retorna a ID de conexão de origem e a tag (versão).
code language-json |
---|
|
Publish sua conexão de destino
Semelhante à etapa anterior, você também deve publicar sua conexão de destino para continuar e publicar seu fluxo de dados de rascunho. Faça uma solicitação POST para o ponto de extremidade /targetConnections
e forneça a ID da conexão de destino de rascunho que você deseja publicar, bem como uma operação de ação para publicação.
Formato da API
POST /targetConnections/{TARGET_CONNECTION_ID}/action?op=publish
{TARGET_CONNECTION_ID}
op
op
como publish
.A solicitação a seguir publica a conexão de destino com ID: 7e53e6e8-b432-4134-bb29-21fc6e8532e5
.
code language-shell |
---|
|
Uma resposta bem-sucedida retorna a ID e a tag correspondente da conexão de destino publicada.
code language-json |
---|
|
Publish seu fluxo de dados
Com suas conexões de origem e de destino publicadas, agora é possível prosseguir para a etapa final e publicar seu fluxo de dados. Para publicar seu fluxo de dados, faça uma solicitação POST para o ponto de extremidade /flows
e forneça sua ID de fluxo de dados e uma operação de ação para publicação.
Formato da API
POST /flows/{FLOW_ID}/action?op=publish
{FLOW_ID}
op
op
como publish
.A solicitação a seguir publica o fluxo de dados de rascunho.
code language-shell |
---|
|
Uma resposta bem-sucedida retorna a ID e o etag
correspondente do fluxo de dados.
code language-json |
---|
|
Você pode usar a interface do usuário do Experience Platform para verificar se o fluxo de dados de rascunho foi publicado. Navegue até a página de fluxos de dados no catálogo de fontes e faça referência ao Status do seu fluxo de dados. Se for bem-sucedido, o status agora deve ser definido como Habilitado.
- Um fluxo de dados com filtragem ativada será preenchido retroativamente apenas uma vez. Quaisquer alterações no que você fizer nos critérios de filtragem (seja uma adição ou remoção) só poderão ter efeito para dados incrementais.
- Se precisar assimilar dados históricos para qualquer novo tipo de atividade, é recomendável criar um novo fluxo de dados e definir os critérios de filtragem com os tipos de atividade apropriados na condição de filtro.
- Não é possível filtrar tipos de atividades personalizadas.
- Não é possível visualizar dados filtrados.
Apêndice
Esta seção fornece mais exemplos de diferentes payloads para filtragem.
Condições peculiares
Você pode omitir a fnApply
inicial em cenários que exigem apenas uma condição.
code language-json |
---|
|
Usando o operador in
Consulte a carga abaixo para obter um exemplo do operador in
.
code language-json |
---|
|
Usando o operador isNull
Consulte a carga abaixo para obter um exemplo do operador isNull
.
code language-json |
---|
|
Usando o operador NOT
Consulte a carga abaixo para obter um exemplo do operador NOT
.
code language-json |
---|
|
Exemplo com condições aninhadas
Consulte a carga de amostra abaixo para obter um exemplo de condições aninhadas complexas.
code language-json |
---|
|