Filtern von Daten auf Zeilenebene für eine Quelle mithilfe der Flow Service-API
Lesen Sie dieses Handbuch für Anweisungen zum Filtern von Daten auf Zeilenebene für eine Quelle mithilfe der Flow Service API.
Erste Schritte
Dieses Tutorial setzt ein Grundverständnis der folgenden Komponenten von Adobe Experience Platform voraus:
- Quellen: Experience Platform ermöglicht die Aufnahme von Daten aus verschiedenen Quellen und bietet Ihnen die Möglichkeit, die eingehenden Daten mithilfe von Platform-Services zu strukturieren, zu kennzeichnen und anzureichern.
- Sandboxes: Experience Platform bietet virtuelle Sandboxes, die eine einzelne Platform-Instanz in separate virtuelle Umgebungen unterteilen, damit Sie Programme für digitale Erlebnisse entwickeln und weiterentwickeln können.
Verwenden von Platform-APIs
Informationen darüber, wie Sie Platform-APIs erfolgreich aufrufen können, finden Sie im Handbuch unter Erste Schritte mit Platform-APIs.
Filtern von Quelldaten filter-source-data
Im Folgenden werden die Schritte beschrieben, die zum Filtern von Daten auf Zeilenebene für Ihre Quelle unternommen werden müssen.
Abrufen der Verbindungsspezifikationen retrieve-your-connection-specs
Der erste Schritt beim Filtern von Daten auf Zeilenebene für Ihre Quelle besteht darin, die Verbindungsspezifikationen Ihrer Quelle abzurufen und die Operatoren und die Sprache zu bestimmen, die Ihre Quelle unterstützt.
Um die Verbindungsspezifikation einer bestimmten Quelle abzurufen, stellen Sie eine GET-Anfrage an den /connectionSpecs
-Endpunkt der Flow Service-API und geben Sie den Eigenschaftsnamen Ihrer Quelle als Teil Ihrer Abfrageparameter an.
API-Format
GET /connectionSpecs/{QUERY_PARAMS}
{QUERY_PARAMS}
name
-Eigenschaft anwenden und bei der Suche "google-big-query"
angeben.Die folgende Anfrage ruft die Verbindungsspezifikationen für Google BigQuery ab.
code language-shell |
---|
|
Bei einer erfolgreichen Antwort werden der Status-Code 200 und die Verbindungsspezifikationen für Google BigQuery zurückgegeben, einschließlich Informationen zu der unterstützten Abfragesprache und den logischen Operatoren.
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 | |
---|---|
Eigenschaft | Beschreibung |
attributes.filterAtSource.enabled |
Legt fest, ob die abgefragte Quelle das Filtern nach Daten auf Zeilenebene unterstützt. |
attributes.filterAtSource.queryLanguage |
Bestimmt die Abfragesprache, die die abgefragte Quelle unterstützt. |
attributes.filterAtSource.logicalOperators |
Bestimmt die logischen Operatoren, mit denen Sie Daten auf Zeilenebene für Ihre Quelle filtern können. |
attributes.filterAtSource.comparisonOperators |
Bestimmt Vergleichsoperatoren, mit denen Sie Daten auf Zeilenebene für Ihre Quelle filtern können. Weitere Informationen zu Vergleichsoperatoren finden Sie in der folgenden Tabelle. |
attributes.filterAtSource.columnNameEscapeChar |
Bestimmt das Zeichen, das zum Maskieren von Spalten verwendet werden soll. |
attributes.filterAtSource.valueEscapeChar |
Bestimmt, wie Werte beim Schreiben einer SQL-Abfrage eingeschlossen werden. |
Vergleichsoperatoren comparison-operators
==
!=
<
>
<=
>=
like
WHERE
verwendet wird, um nach einem angegebenen Muster zu suchen.in
Filterbedingungen für die Aufnahme angeben specify-filtering-conditions-for-ingestion
Nachdem Sie die logischen Operatoren und die Abfragesprache identifiziert haben, die Ihre Quelle unterstützt, können Sie mit Profile Query Language (PQL) die Filterbedingungen angeben, die Sie auf Ihre Quelldaten anwenden möchten.
Im folgenden Beispiel werden Bedingungen angewendet, um nur Daten auszuwählen, die den bereitgestellten Werten für die als Parameter aufgelisteten Knotentypen entsprechen.
{
"type": "PQL",
"format": "pql/json",
"value": {
"nodeType": "fnApply",
"fnName": "=",
"params": [
{
"nodeType": "fieldLookup",
"fieldName": "city"
},
{
"nodeType": "literal",
"value": "DDN"
}
]
}
}
Vorschau der Daten preview-your-data
Sie können eine Vorschau Ihrer Daten anzeigen, indem Sie eine GET-Anfrage an den /explore
-Endpunkt der Flow Service-API stellen, während Sie filters
als Teil Ihrer Abfrageparameter angeben und Ihre PQL-Eingabebedingungen in Base64 angeben.
API-Format
GET /connections/{BASE_CONNECTION_ID}/explore?objectType=table&object={TABLE_PATH}&preview=true&filters={FILTERS}
{BASE_CONNECTION_ID}
{TABLE_PATH}
{FILTERS}
code language-shell |
---|
|
Eine erfolgreiche Antwort gibt den Inhalt und die Struktur Ihrer Daten zurück.
code language-json |
---|
|
Erstellen einer Quellverbindung für gefilterte Daten
Um eine Quellverbindung zu erstellen und gefilterte Daten aufzunehmen, stellen Sie eine POST-Anfrage an den /sourceConnections
-Endpunkt und geben Sie Ihre Filterbedingungen in den Parametern des Anfragetexts an.
API-Format
POST /sourceConnections
Die folgende Anfrage erstellt eine Quellverbindung zum Aufnehmen von Daten aus test1.fasTestTable
, wobei city
= DDN
ist.
code language-shell |
---|
|
Bei einer erfolgreichen Antwort wird die eindeutige Kennung (id
) der neu erstellten Quellverbindung zurückgegeben.
code language-json |
---|
|
Aktivitätsentitäten für Marketo Engage filtern filter-for-marketo
Bei Verwendung des Quell-Connectors können Sie die Filterung auf Zeilenebene verwenden, um nach Aktivitätsentitäten Marketo Engage filtern. Derzeit können Sie nur nach Aktivitätsentitäten und standardmäßigen Aktivitätstypen filtern. Benutzerdefinierte Aktivitäten werden weiterhin unter Marketo Feldzuordnungen“.
Standard-Aktivitätstypen Marketo marketo-standard-activity-types
In der folgenden Tabelle sind die standardmäßigen Aktivitätstypen für Marketo aufgeführt. Verwenden Sie diese Tabelle als Referenz für Ihre Filterkriterien.
Gehen Sie wie folgt vor, um Ihre standardmäßigen Aktivitätsentitäten bei Verwendung des Marketo-Quell-Connectors zu filtern.
Erstellen eines Entwurfsdatenflusses
Erstellen Sie zunächst einen Marketo Datenfluss und speichern Sie ihn als Entwurf. Detaillierte Anweisungen zum Erstellen eines Datenflussentwurfs finden Sie in der folgenden Dokumentation:
Abrufen Ihrer Datenfluss-ID
Nachdem Sie einen Datenfluss-Entwurf erstellt haben, müssen Sie die entsprechende ID abrufen.
Navigieren Sie in der Benutzeroberfläche zum Quellkatalog und wählen Sie Datenflüsse in der oberen Kopfzeile aus. Verwenden Sie die Spalte Status , um alle Datenflüsse zu identifizieren, die im Entwurfsmodus gespeichert wurden, und wählen Sie dann den Namen Ihres Datenflusses aus. Verwenden Sie anschließend das Bedienfeld Eigenschaften auf der rechten Seite, um Ihre Datenfluss-ID zu finden.
Abrufen von Datenflussdetails
Als Nächstes müssen Sie Ihre Datenflussdetails abrufen, insbesondere die mit Ihrem Datenfluss verknüpfte Quellverbindungs-ID. Um Ihre Datenflussdetails abzurufen, stellen Sie eine GET-Anfrage an den /flows
-Endpunkt und geben Sie Ihre Datenfluss-ID als Pfadparameter an.
API-Format
GET /flows/{FLOW_ID}
{FLOW_ID}
Mit der folgenden Anfrage werden Informationen zur Datenfluss-ID abgerufen: a7e88a01-40f9-4ebf-80b2-0fc838ff82ef
.
code language-shell |
---|
|
Bei einer erfolgreichen Antwort werden Ihre Datenflussdetails zurückgegeben, einschließlich Informationen zu den entsprechenden Quell- und Zielverbindungen. Sie müssen Ihre Quell- und Zielverbindungs-IDs beachten, da diese Werte später erforderlich sind, um Ihren Datenfluss veröffentlichen zu können.
code language-json line-numbers data-start-1 data-line-offset-4 h-23 h-26 |
---|
|
Abrufen von Details zur Quellverbindung
Verwenden Sie anschließend Ihre Quellverbindungs-ID und stellen Sie eine GET-Anfrage an den /sourceConnections
-Endpunkt, um die Details Ihrer Quellverbindung abzurufen.
API-Format
GET /sourceConnections/{SOURCE_CONNECTION_ID}
{SOURCE_CONNECTION_ID}
code language-shell |
---|
|
Eine erfolgreiche Antwort gibt die Details Ihrer Quellverbindung zurück. Notieren Sie sich die Version, da Sie diesen Wert im nächsten Schritt benötigen werden, um Ihre Quellverbindung zu aktualisieren.
code language-json line-numbers data-start-1 data-line-offset-4 h-30 |
---|
|
Aktualisieren der Quellverbindung mit Filterbedingungen
Nachdem Sie nun über Ihre Quellverbindungs-ID und die zugehörige Version verfügen, können Sie jetzt eine PATCH-Anfrage mit den Filterbedingungen stellen, die Ihre standardmäßigen Aktivitätstypen angeben.
Um Ihre Quellverbindung zu aktualisieren, stellen Sie eine PATCH-Anfrage an den /sourceConnections
-Endpunkt und geben Sie Ihre Quellverbindungs-ID als Abfrageparameter an. Darüber hinaus müssen Sie einen If-Match
Kopfzeilenparameter mit der entsprechenden Version Ihrer Quellverbindung angeben.
If-Match
ist bei einer PATCH-Anfrage erforderlich. Der Wert für diese Kopfzeile ist die eindeutige Version/eTag des Datenflusses, den Sie aktualisieren möchten. Der Versions-/eTag-Wert wird bei jeder erfolgreichen Aktualisierung eines Datenflusses aktualisiert.API-Format
PATCH /sourceConnections/{SOURCE_CONNECTION_ID}
{SOURCE_CONNECTION_ID}
code language-shell |
---|
|
Bei einer erfolgreichen Antwort werden Ihre Quellverbindungs-ID und das eTag (Version) zurückgegeben.
code language-json |
---|
|
Publish - Ihre Quellverbindung
Nachdem Ihre Quellverbindung mit Ihren Filterbedingungen aktualisiert wurde, können Sie jetzt mit dem Status Entwurf fortfahren und Ihre Quellverbindung veröffentlichen. Stellen Sie dazu eine POST-Anfrage an den /sourceConnections
-Endpunkt und geben Sie die ID Ihrer Entwurfsquellverbindung sowie einen Aktionsvorgang für die Veröffentlichung an.
API-Format
POST /sourceConnections/{SOURCE_CONNECTION_ID}/action?op=publish
{SOURCE_CONNECTION_ID}
op
op
den Wert publish
fest.Die folgende Anfrage veröffentlicht einen Entwurf einer Quellverbindung.
code language-shell |
---|
|
Bei einer erfolgreichen Antwort werden Ihre Quellverbindungs-ID und das eTag (Version) zurückgegeben.
code language-json |
---|
|
Publish - Ihre Zielverbindung
Ähnlich wie im vorherigen Schritt müssen Sie auch Ihre Zielverbindung veröffentlichen, um fortfahren und Ihren Datenflussentwurf veröffentlichen zu können. Stellen Sie eine POST-Anfrage an den /targetConnections
-Endpunkt und geben Sie die ID der Entwurfszielverbindung an, die Sie veröffentlichen möchten, sowie einen Aktionsvorgang für die Veröffentlichung.
API-Format
POST /targetConnections/{TARGET_CONNECTION_ID}/action?op=publish
{TARGET_CONNECTION_ID}
op
op
den Wert publish
fest.Die folgende Anfrage veröffentlicht die Zielverbindung mit der ID: 7e53e6e8-b432-4134-bb29-21fc6e8532e5
.
code language-shell |
---|
|
Bei einer erfolgreichen Antwort werden die ID und das entsprechende eTag für Ihre veröffentlichte Zielverbindung zurückgegeben.
code language-json |
---|
|
Publish - Datenfluss
Nachdem sowohl Ihre Quell- als auch Ihre Zielverbindung veröffentlicht wurden, können Sie jetzt mit dem letzten Schritt fortfahren und Ihren Datenfluss veröffentlichen. Um Ihren Datenfluss zu veröffentlichen, stellen Sie eine POST-Anfrage an den /flows
-Endpunkt und geben Sie Ihre Datenfluss-ID und einen Aktionsvorgang für die Veröffentlichung an.
API-Format
POST /flows/{FLOW_ID}/action?op=publish
{FLOW_ID}
op
op
auf publish
fest.Mit der folgenden Anfrage wird Ihr Datenfluss-Entwurf veröffentlicht.
code language-shell |
---|
|
Bei einer erfolgreichen Antwort werden die ID und das entsprechende etag
Ihres Datenflusses zurückgegeben.
code language-json |
---|
|
Sie können die Experience Platform-Benutzeroberfläche verwenden, um zu überprüfen, ob Ihr Datenflussentwurf veröffentlicht wurde. Navigieren Sie im Quellkatalog zur Seite „Datenflüsse“ und verweisen Sie auf Status Ihres Datenflusses. Bei Erfolg sollte der Status jetzt auf „Aktiviert gesetzt.
- Ein Datenfluss mit aktivierter Filterung wird nur einmal aufgestockt. Alle Änderungen an den Filterkriterien (Hinzufügen oder Entfernen) können nur für inkrementelle Daten wirksam werden.
- Wenn Sie historische Daten für einen neuen Aktivitätstyp bzw. neue Aktivitätstypen aufnehmen müssen, wird empfohlen, einen neuen Datenfluss zu erstellen und die Filterkriterien mit den entsprechenden Aktivitätstypen in der Filterbedingung zu definieren.
- Benutzerdefinierte Aktivitäten können nicht gefiltert werden.
- Sie können keine Vorschau von gefilterten Daten anzeigen.
Anhang
In diesem Abschnitt finden Sie weitere Beispiele für verschiedene Payloads zum Filtern.
Singular-Bedingungen
Sie können die anfängliche fnApply
für Szenarien auslassen, für die nur eine Bedingung erforderlich ist.
code language-json |
---|
|
Verwenden des in
Operators
Ein Beispiel für den in
finden Sie unten in der Beispiel-Payload .
code language-json |
---|
|
Verwenden des isNull
Operators
Ein Beispiel für den isNull
finden Sie unten in der Beispiel-Payload .
code language-json |
---|
|
Verwenden des NOT
Operators
Ein Beispiel für den NOT
finden Sie unten in der Beispiel-Payload .
code language-json |
---|
|
Beispiel mit verschachtelten Bedingungen
Ein Beispiel für komplexe verschachtelte Bedingungen finden Sie unten in der Beispiel-Payload .
code language-json |
---|
|