Filtrar dados de origem

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

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}
ParâmetroDescrição
{QUERY_PARAMS}Os parâmetros de consulta opcionais para filtrar os resultados. Você pode recuperar a especificação de conexão Google BigQuery aplicando a propriedade name e especificando "google-big-query" em sua pesquisa.
Solicitação

A solicitação a seguir recupera as especificações de conexão para Google BigQuery.

curl -X GET \
  'https://platform.adobe.io/data/foundation/flowservice/connectionSpecs?property=name=="google-big-query"' \
  -H 'Authorization: Bearer {ACCESS_TOKEN}' \
  -H 'x-api-key: {API_KEY}' \
  -H 'x-gw-ims-org-id: {ORG_ID}' \
  -H 'x-sandbox-name: {SANDBOX_NAME}'
Resposta

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.

"attributes": {
  "filterAtSource": {
    "enabled": true,
    "queryLanguage": "SQL",
    "logicalOperators": [
      "and",
      "or",
      "not"
    ],
    "comparisonOperators": [
      "=",
      "!=",
      "<",
      "<=",
      ">",
      ">=",
      "like",
      "in"
    ],
    "columnNameEscapeChar": "`",
    "valueEscapeChar": "'"
  }
PropriedadeDescrição
attributes.filterAtSource.enabledDetermina se a origem consultada oferece suporte à filtragem de dados em nível de linha.
attributes.filterAtSource.queryLanguageDetermina o idioma da consulta que a fonte consultada aceita.
attributes.filterAtSource.logicalOperatorsDetermina os operadores lógicos que você pode usar para filtrar dados em nível de linha para a origem.
attributes.filterAtSource.comparisonOperatorsDetermina 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.columnNameEscapeCharDetermina o caractere a ser usado para colunas de escape.
attributes.filterAtSource.valueEscapeCharDetermina como os valores serão cercados ao gravar uma consulta SQL.

Operadores de comparação

OperadorDescrição
==Define se a propriedade é igual ao valor fornecido.
!=Define se a propriedade não é igual ao valor fornecido.
<Define se a propriedade é menor que o valor fornecido.
>Filtra especificando se a propriedade é maior que o valor fornecido.
<=Filtra se a propriedade é menor ou igual ao valor fornecido.
>=Filtra se a propriedade é maior ou igual ao valor fornecido.
likeFiltros sendo usados em uma cláusula WHERE para procurar um padrão especificado.
inDefine se a propriedade está dentro de um intervalo especificado.

Especificar condições de filtragem para assimilação

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

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}
ParâmetroDescrição
{BASE_CONNECTION_ID}A ID de conexão básica da sua origem.
{TABLE_PATH}A propriedade de caminho da tabela que você deseja inspecionar.
{FILTERS}As condições de filtragem do PQL estão codificadas em Base64.
Solicitação
curl -X GET \
  'https://platform.adobe.io/data/foundation/flowservice/connections/89d1459e-3cd0-4069-acb3-68f240db4eeb/explore?objectType=table&object=TESTFAS.FASTABLE&preview=true&filters=ewogICJ0eXBlIjogIlBRTCIsCiAgImZvcm1hdCI6ICJwcWwvanNvbiIsCiAgInZhbHVlIjogewogICAgIm5vZGVUeXBlIjogImZuQXBwbHkiLAogICAgImZuTmFtZSI6ICJhbmQiLAogICAgInBhcmFtcyI6IFsKICAgICAgewogICAgICAgICJub2RlVHlwZSI6ICJmbkFwcGx5IiwKICAgICAgICAiZm5OYW1lIjogImxpa2UiLAogICAgICAgICJwYXJhbXMiOiBbCiAgICAgICAgICB7CiAgICAgICAgICAgICJub2RlVHlwZSI6ICJmaWVsZExvb2t1cCIsCiAgICAgICAgICAgICJmaWVsZE5hbWUiOiAiY2l0eSIKICAgICAgICAgIH0sCiAgICAgICAgICB7CiAgICAgICAgICAgICJub2RlVHlwZSI6ICJsaXRlcmFsIiwKICAgICAgICAgICAgInZhbHVlIjogIk0lIgogICAgICAgICAgfQogICAgICAgIF0KICAgICAgfQogICAgXQogIH0KfQ==\' \
  -H 'Authorization: Bearer {ACCESS_TOKEN}' \
  -H 'x-api-key: {API_KEY}' \
  -H 'x-gw-ims-org-id: {IMS_ORG}' \
  -H 'x-sandbox-name: {SANDBOX_NAME}'
Resposta

Uma resposta bem-sucedida retorna o conteúdo e a estrutura dos dados.

{
  "format": "flat",
  "schema": {
    "columns": [
      {
        "name": "FIRSTNAME",
        "type": "string",
        "xdm": {
          "type": "string"
        }
      },
      {
        "name": "LASTNAME",
        "type": "string",
        "xdm": {
          "type": "string"
        }
      },
      {
        "name": "CITY",
        "type": "string",
        "xdm": {
          "type": "string"
        }
      },
      {
        "name": "AGE",
        "type": "string",
        "xdm": {
          "type": "string"
        }
      },
      {
        "name": "HEIGHT",
        "type": "string",
        "xdm": {
          "type": "string"
        }
      },
      {
        "name": "ISEMPLOYED",
        "type": "boolean",
        "xdm": {
          "type": "boolean"
        }
      },
      {
        "name": "POSTG",
        "type": "boolean",
        "xdm": {
          "type": "boolean"
        }
      },
      {
        "name": "LATITUDE",
        "type": "double",
        "xdm": {
          "type": "number"
        }
      },
      {
        "name": "LONGITUDE",
        "type": "double",
        "xdm": {
          "type": "number"
        }
      },
      {
        "name": "JOINEDDATE",
        "type": "string",
        "meta:xdmType": "date-time",
        "xdm": {
          "type": "string",
          "format": "date-time"
        }
      },
      {
        "name": "CREATEDAT",
        "type": "string",
        "meta:xdmType": "date-time",
        "xdm": {
          "type": "string",
          "format": "date-time"
        }
      },
      {
        "name": "CREATEDATTS",
        "type": "string",
        "meta:xdmType": "date-time",
        "xdm": {
          "type": "string",
          "format": "date-time"
        }
      }
    ]
  },
 "data": [
    {
        "CITY": "MZN",
        "LASTNAME": "Jain",
        "JOINEDDATE": "2022-06-22T00:00:00",
        "LONGITUDE": 1000.222,
        "CREATEDAT": "2022-06-22T17:19:33",
        "FIRSTNAME": "Shivam",
        "POSTG": true,
        "HEIGHT": "169",
        "CREATEDATTS": "2022-06-22T17:19:33",
        "ISEMPLOYED": true,
        "LATITUDE": 2000.89,
        "AGE": "25"
    },
    {
        "CITY": "MUM",
        "LASTNAME": "Kreet",
        "JOINEDDATE": "2022-09-07T00:00:00",
        "LONGITUDE": 10500.01,
        "CREATEDAT": "2022-09-07T17:19:33",
        "FIRSTNAME": "Rakul",
        "POSTG": true,
        "HEIGHT": "155",
        "CREATEDATTS": "2022-09-07T17:19:33",
        "ISEMPLOYED": false,
        "LATITUDE": 2500.89,
        "AGE": "42"
    },
    {
        "CITY": "MAN",
        "LASTNAME": "Lee",
        "JOINEDDATE": "2022-09-14T00:00:00",
        "LONGITUDE": 1000.222,
        "CREATEDAT": "2022-09-14T05:02:33",
        "FIRSTNAME": "Denzel",
        "POSTG": true,
        "HEIGHT": "185",
        "CREATEDATTS": "2022-09-14T05:02:33",
        "ISEMPLOYED": true,
        "LATITUDE": 123.89,
        "AGE": "16"
    }
  ]
}

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
Solicitação

A solicitação a seguir cria uma conexão de origem para assimilar dados de test1.fasTestTable onde city = DDN.

curl -X POST \
  'https://platform.adobe.io/data/foundation/flowservice/sourceConnections' \
  -H 'Authorization: Bearer {ACCESS_TOKEN}' \
  -H 'x-api-key: {API_KEY}' \
  -H 'x-gw-ims-org-id: {ORG_ID}' \
  -H 'x-sandbox-name: {SANDBOX_NAME}' \
  -H 'Content-Type: application/json' \
  -d '{
      "name": "BigQuery Source Connection",
      "description": "Source Connection for Filter test",
      "baseConnectionId": "89d1459e-3cd0-4069-acb3-68f240db4eeb",
      "data": {
        "format": "tabular"
      },
      "params": {
        "tableName": "test1.fasTestTable",
        "filters": {
          "type": "PQL",
          "format": "pql/json",
          "value": {
            "nodeType": "fnApply",
            "fnName": "=",
            "params": [
              {
                "nodeType": "fieldLookup",
                "fieldName": "city"
              },
              {
                "nodeType": "literal",
                "value": "DDN"
              }
            ]
          }
        }
      },
      "connectionSpec": {
        "id": "3c9b37f8-13a6-43d8-bad3-b863b941fedd",
        "version": "1.0"
      }
    }'
Resposta

Uma resposta bem-sucedida retorna o identificador exclusivo (id) da conexão de origem recém-criada.

{
    "id": "b7581b59-c603-4df1-a689-d23d7ac440f3",
    "etag": "\"ef05d265-0000-0200-0000-6019e0080000\""
}

Filtrar entidades de atividade para Marketo Engage

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

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.

ID do tipo de atividadeNome do tipo de atividade
1Visitar página da Web
2Preencher formulário
3Clique em Link
6Enviar e-mail
7Email entregue
8Email rejeitado
9Cancelar assinatura de email
10Abrir e-mail
11Clique em Email
12Novo lead
21Converter lead
22Alterar pontuação
24Adicionar à lista
25Remover da lista
27Email rejeitado temporariamente
32Mesclar leads
34Adicionar à oportunidade
35Remover da oportunidade
36Atualizar oportunidade
46Momento interessante
101Alterar estágio de receita
104Alterar status na progressão
110Chamar Webhook
113Adicionar à criação
114Alterar Faixa de Criação
115Alterar cadência de criação

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}
ParâmetroDescrição
{FLOW_ID}A ID do fluxo de dados que você deseja recuperar.
Solicitação

A solicitação a seguir recupera informações sobre a ID do fluxo de dados: a7e88a01-40f9-4ebf-80b2-0fc838ff82ef.

curl -X GET \
  'https://platform.adobe.io/data/foundation/flowservice/flows/a7e88a01-40f9-4ebf-80b2-0fc838ff82ef' \
  -H 'Authorization: Bearer {ACCESS_TOKEN}' \
  -H 'x-api-key: {API_KEY}' \
  -H 'x-gw-ims-org-id: {ORG_ID}' \
  -H 'x-sandbox-name: {SANDBOX_NAME}'
Resposta

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.

{
    "items": [
        {
            "id": "a7e88a01-40f9-4ebf-80b2-0fc838ff82ef",
            "createdAt": 1728592929650,
            "updatedAt": 1728597187444,
            "createdBy": "acme@AdobeID",
            "updatedBy": "acme@AdobeID",
            "createdClient": "exc_app",
            "updatedClient": "acme",
            "sandboxId": "7f3419ce-53e2-476b-b419-ce53e2376b02",
            "sandboxName": "prod",
            "imsOrgId": "acme@AdobeOrg",
            "name": "Marketo Engage Standard Activities ACME",
            "description": "",
            "flowSpec": {
                "id": "15f8402c-ba66-4626-b54c-9f8e54244d61",
                "version": "1.0"
            },
            "state": "enabled",
            "version": "\"600290fc-0000-0200-0000-67084cc30000\"",
            "etag": "\"600290fc-0000-0200-0000-67084cc30000\"",
            "sourceConnectionIds": [
                "56f7eb3a-b544-4eaa-b167-ef1711044c7a"
            ],
            "targetConnectionIds": [
                "7e53e6e8-b432-4134-bb29-21fc6e8532e5"
            ],
            "inheritedAttributes": {
                "properties": {
                    "isSourceFlow": true
                },
                "sourceConnections": [
                    {
                        "id": "56f7eb3a-b544-4eaa-b167-ef1711044c7a",
                        "connectionSpec": {
                            "id": "bf1f4218-73ce-4ff0-b744-48d78ffae2e4",
                            "version": "1.0"
                        },
                        "baseConnection": {
                            "id": "0137118b-373a-4c4e-847c-13a0abf73b33",
                            "connectionSpec": {
                                "id": "bf1f4218-73ce-4ff0-b744-48d78ffae2e4",
                                "version": "1.0"
                            }
                        }
                    }
                ],
                "targetConnections": [
                    {
                        "id": "7e53e6e8-b432-4134-bb29-21fc6e8532e5",
                        "connectionSpec": {
                            "id": "c604ff05-7f1a-43c0-8e18-33bf874cb11c",
                            "version": "1.0"
                        }
                    }
                ]
            },
            "options": {
                "isSampleDataflow": false,
                "errorDiagnosticsEnabled": true
            },
            "transformations": [
                {
                    "name": "Mapping",
                    "params": {
                        "mappingVersion": 0,
                        "mappingId": "f6447514ef95482889fac1818972e285"
                    }
                }
            ],
            "runs": "/runs?property=flowId==a7e88a01-40f9-4ebf-80b2-0fc838ff82ef",
            "lastOperation": {
                "started": 1728592929650,
                "updated": 0,
                "operation": "create"
            },
            "lastRunDetails": {
                "id": "2d7863d5-ca4d-4313-ac52-2603eaf2cdbe",
                "state": "success",
                "startedAtUTC": 1728594713537,
                "completedAtUTC": 1728597183080
            },
            "labels": [],
            "recordTypes": [
                {
                    "type": "experienceevent",
                    "extensions": {}
                }
            ]
        }
    ]
}

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}
ParâmetroDescrição
{SOURCE_CONNECTION_ID}A ID da conexão de origem que você deseja recuperar.
Solicitação
curl -X GET \
  'https://platform.adobe.io/data/foundation/flowservice/sourceConnections/56f7eb3a-b544-4eaa-b167-ef1711044c7a' \
  -H 'Authorization: Bearer {ACCESS_TOKEN}' \
  -H 'x-api-key: {API_KEY}' \
  -H 'x-gw-ims-org-id: {ORG_ID}' \
  -H 'x-sandbox-name: {SANDBOX_NAME}'
Resposta

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.

{
    "items": [
        {
            "id": "b85b895f-a289-42e9-8fe1-ae448ccc7e53",
            "createdAt": 1729634331185,
            "updatedAt": 1729634331185,
            "createdBy": "acme@AdobeID",
            "updatedBy": "acme@AdobeID",
            "createdClient": "exc_app",
            "updatedClient": "acme",
            "sandboxId": "7f3419ce-53e2-476b-b419-ce53e2376b02",
            "sandboxName": "prod",
            "imsOrgId": "acme@AdobeOrg",
            "name": "New Source Connection - 2024-10-23T03:28:50+05:30",
            "description": "Source connection created from the workflow",
            "baseConnectionId": "fd9f7455-1e23-4831-9283-7717e20bee40",
            "state": "draft",
            "data": {
                "format": "tabular",
                "schema": null,
                "properties": null
            },
            "connectionSpec": {
                "id": "2d31dfd1-df1a-456b-948f-226e040ba102",
                "version": "1.0"
            },
            "params": {
                "columns": [],
                "tableName": "Activity"
            },
            "version": "\"210068a6-0000-0200-0000-6718201b0000\"",
            "etag": "\"210068a6-0000-0200-0000-6718201b0000\"",
            "inheritedAttributes": {
                "baseConnection": {
                    "id": "fd9f7455-1e23-4831-9283-7717e20bee40",
                    "connectionSpec": {
                        "id": "2d31dfd1-df1a-456b-948f-226e040ba102",
                        "version": "1.0"
                    }
                }
            },
            "lastOperation": {
                "started": 1729634331185,
                "updated": 0,
                "operation": "draft_create"
            }
        }
    ]
}