Filtrer les données sources

Les étapes suivantes permettent de filtrer les données au niveau des lignes pour votre source.

Récupérer les spécifications de connexion

La première étape du filtrage des données au niveau des lignes pour votre source consiste à récupérer les spécifications de connexion de votre source et à déterminer les opérateurs et la langue pris en charge par votre source.

Pour récupérer la spécification de connexion d’une source donnée, envoyez une requête GET au point d’entrée /connectionSpecs de l’API Flow Service et indiquez le nom de la propriété de votre source dans vos paramètres de requête.

Format d’API

GET /connectionSpecs/{QUERY_PARAMS}
ParamètreDescription
{QUERY_PARAMS}Paramètres de requête facultatifs pour le filtrage des résultats. Vous pouvez récupérer la spécification de connexion Google BigQuery en appliquant la propriété name et en spécifiant "google-big-query" dans votre recherche.
Requête

La requête suivante récupère les spécifications de connexion pour 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}'
Réponse

Une réponse réussie renvoie le code d’état 200 et les spécifications de connexion pour Google BigQuery, y compris des informations sur son langage de requête pris en charge et ses opérateurs logiques.

"attributes": {
  "filterAtSource": {
    "enabled": true,
    "queryLanguage": "SQL",
    "logicalOperators": [
      "and",
      "or",
      "not"
    ],
    "comparisonOperators": [
      "=",
      "!=",
      "<",
      "<=",
      ">",
      ">=",
      "like",
      "in"
    ],
    "columnNameEscapeChar": "`",
    "valueEscapeChar": "'"
  }
PropriétéDescription
attributes.filterAtSource.enabledDétermine si la source interrogée prend en charge le filtrage des données au niveau des lignes.
attributes.filterAtSource.queryLanguageDétermine la langue de requête prise en charge par la source interrogée.
attributes.filterAtSource.logicalOperatorsDétermine les opérateurs logiques que vous pouvez utiliser pour filtrer les données au niveau des lignes pour votre source.
attributes.filterAtSource.comparisonOperatorsDétermine les opérateurs de comparaison que vous pouvez utiliser pour filtrer les données au niveau des lignes pour votre source. Pour plus d’informations sur les opérateurs de comparaison, consultez le tableau ci-dessous.
attributes.filterAtSource.columnNameEscapeCharDétermine le caractère à utiliser pour les colonnes d'échappement.
attributes.filterAtSource.valueEscapeCharDétermine comment les valeurs seront entourées lors de l'écriture d'une requête SQL.

Opérateurs de comparaison

OpérateurDescription
==Filtre en fonction de si la propriété est égale à la valeur fournie.
!=Filtre en fonction de si la propriété n’est pas égale à la valeur fournie.
<Filtre en fonction de si la valeur de la propriété est inférieure à la valeur fournie.
>Filtre en fonction de si la propriété est supérieure à la valeur fournie.
<=Filtre en fonction de si la propriété est inférieure ou égale à la valeur fournie.
>=Filtre selon que la propriété est supérieure ou égale à la valeur fournie.
likeFiltre en étant utilisé dans une clause de WHERE pour rechercher un modèle spécifié.
inFiltre selon si la propriété se trouve dans une plage spécifiée.

Définition des conditions de filtrage pour l’ingestion

Une fois que vous avez identifié les opérateurs logiques et le langage de requête pris en charge par votre source, vous pouvez utiliser Profile Query Language (PQL) pour spécifier les conditions de filtrage à appliquer à vos données source.

Dans l’exemple ci-dessous, les conditions sont appliquées pour sélectionner uniquement les données égales aux valeurs fournies pour les types de nœuds répertoriés en tant que paramètres.

{
  "type": "PQL",
  "format": "pql/json",
  "value": {
    "nodeType": "fnApply",
    "fnName": "=",
    "params": [
      {
        "nodeType": "fieldLookup",
        "fieldName": "city"
      },
      {
        "nodeType": "literal",
        "value": "DDN"
      }
    ]
  }
}

Prévisualiser vos données

Vous pouvez prévisualiser vos données en adressant une requête GET au point d’entrée /explore de l’API Flow Service, tout en fournissant des filters dans le cadre de vos paramètres de requête et en spécifiant vos conditions d’entrée PQL dans Base64.

Format d’API

GET /connections/{BASE_CONNECTION_ID}/explore?objectType=table&object={TABLE_PATH}&preview=true&filters={FILTERS}
ParamètreDescription
{BASE_CONNECTION_ID}Identifiant de connexion de base de votre source.
{TABLE_PATH}Propriété de chemin d'accès de la table à inspecter.
{FILTERS}Vos conditions de filtrage PQL codées en Base64.
Requête
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}'
Réponse

Une réponse réussie renvoie le contenu et la structure de vos données.

{
  "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"
    }
  ]
}

Créer une connexion source pour les données filtrées

Pour créer une connexion source et ingérer des données filtrées, envoyez une requête POST au point d’entrée /sourceConnections et indiquez vos conditions de filtrage dans les paramètres du corps de la requête.

Format d’API

POST /sourceConnections
Requête

La requête suivante crée une connexion source pour ingérer des données à partir de test1.fasTestTablecity = 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"
      }
    }'
Réponse

Une réponse réussie renvoie l’identifiant unique (id) de la connexion source qui vient d’être créée.

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

Filtrage des entités d’activité pour les Marketo Engage

Vous pouvez utiliser le filtrage au niveau des lignes pour filtrer les entités d’activité lors de l’utilisation du Marketo Engage connecteur source. Actuellement, vous ne pouvez filtrer que les entités d’activité et les types d’activité standard. Les activités personnalisées restent régies sous Marketo mappages de champs.

Marketo types d’activité standard

Le tableau suivant décrit les types d’activités standard pour Marketo. Utilisez ce tableau comme référence pour vos critères de filtrage.

Identifiant du type d’activitéNom du type d’activité
1Page web de la visite
2Remplir le formulaire
3Clic sur le lien
6Envoyer un courrier électronique
7E-mail remis
8E-mail non remis
9E-mail de désabonnement
10Ouvrir l’e-mail
11Cliquez sur E-mail
12Nouveau prospect
21Convertir le prospect
22Modifier le score
24Ajouter à la liste
25Supprimer de la liste
27Non-remise temporaire de l’e-mail
32Fusionner les prospects
34Ajouter à l’opportunité
35Supprimer de l’opportunité
36Mettre à jour l’opportunité
46Moment intéressant
101Modifier l’étape Revenu
104Modifier le statut en cours
110Appeler le Webhook
113Ajouter à la suite
114Modifier le suivi de maturation
115Modifier le rythme de maturation

Suivez les étapes ci-dessous pour filtrer vos entités d’activité standard lors de l’utilisation du connecteur source Marketo.

Créer un brouillon de flux de données

Créez tout d’abord un Marketo flux de données et enregistrez-le en tant que brouillon. Consultez la documentation suivante pour obtenir des instructions détaillées sur la création d’un brouillon de flux de données :

Récupérer l’identifiant du flux de données

Une fois que vous disposez d’un brouillon de flux de données, vous devez récupérer son identifiant correspondant.

Dans l’interface utilisateur d’, accédez au catalogue de sources, puis sélectionnez Flux de données dans l’en-tête supérieur. Utilisez la colonne Statut pour identifier tous les flux de données enregistrés en mode brouillon, puis sélectionnez le nom de votre flux de données. Ensuite, utilisez le panneau Propriétés sur la droite pour localiser votre identifiant de flux de données.

Récupérer les détails de votre flux de données

Ensuite, vous devez récupérer les détails de votre flux de données, en particulier l’identifiant de connexion source associé à votre flux de données. Pour récupérer les détails de votre flux de données, envoyez une requête GET au point d’entrée /flows et indiquez votre identifiant de flux de données comme paramètre de chemin d’accès.

Format d’API

GET /flows/{FLOW_ID}
ParamètreDescription
{FLOW_ID}Identifiant du flux de données à récupérer.
Requête

La requête suivante récupère des informations sur l’ID de flux de données : 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}'
Réponse

Une réponse réussie renvoie les détails de votre flux de données, y compris les informations sur les connexions source et cible correspondantes. Vous devez prendre note de vos identifiants de connexion source et cible, car ces valeurs sont requises ultérieurement, afin de publier votre flux de données.

{
    "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": {}
                }
            ]
        }
    ]
}