Filtern von Daten auf Zeilenebene für eine Quelle mithilfe der Flow Service-API
In diesem Handbuch finden Sie Anweisungen zum Filtern von Daten auf Zeilenebene für eine Quelle mit 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 durchgeführt werden müssen.
Abrufen Ihrer 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 von Ihrer Quelle unterstützten Operatoren und Sprachen zu bestimmen.
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
anwenden und in Ihrer Suche "google-big-query"
angeben.Die folgende Anfrage ruft die Verbindungsspezifikationen für Google BigQuery ab.
code language-shell |
---|
|
Eine erfolgreiche Antwort gibt den Status-Code 200 und die Verbindungsanforderungen für Google BigQuery zurück, einschließlich Informationen zur unterstützten Abfragesprache und 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 |
Bestimmt, ob die abgefragte Quelle das Filtern von 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 unten stehenden Tabelle. |
attributes.filterAtSource.columnNameEscapeChar |
Legt das Zeichen fest, das als Escape-Zeichen für Spalten verwendet werden soll. |
attributes.filterAtSource.valueEscapeChar |
Bestimmt, wie Werte beim Schreiben einer SQL-Abfrage eingebunden werden. |
Vergleichsoperatoren comparison-operators
==
!=
<
>
<=
>=
like
WHERE
-Klausel verwendet wird, um nach einem bestimmten Muster zu suchen.in
Filterbedingungen für die Aufnahme festlegen specify-filtering-conditions-for-ingestion
Nachdem Sie die von Ihrer Quelle unterstützten logischen Operatoren und Abfragesprachen identifiziert haben, können Sie mit Profile Query Language (PQL) die Filterbedingungen festlegen, die auf Ihre Quelldaten angewendet werden sollen.
Im folgenden Beispiel werden Bedingungen nur auf ausgewählte Daten angewendet, die den bereitgestellten Werten für die Knotentypen entsprechen, die als Parameter aufgeführt sind.
{
"type": "PQL",
"format": "pql/json",
"value": {
"nodeType": "fnApply",
"fnName": "=",
"params": [
{
"nodeType": "fieldLookup",
"fieldName": "city"
},
{
"nodeType": "literal",
"value": "DDN"
}
]
}
}
Datenvorschau preview-your-data
Sie können eine Vorschau Ihrer Daten anzeigen, indem Sie eine GET-Anfrage an den /explore
-Endpunkt der Flow Service -API richten, dabei 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 |
---|
|
Quellverbindung für gefilterte Daten erstellen
Um eine Quellverbindung zu erstellen und gefilterte Daten zu erfassen, stellen Sie eine POST-Anfrage an den /sourceConnections
-Endpunkt und geben Sie Ihre Filterbedingungen in den Anfrageteilparametern an.
API-Format
POST /sourceConnections
Die folgende Anfrage erstellt eine Quellverbindung zum Erfassen von Daten von test1.fasTestTable
, wobei city
= DDN
ist.
code language-shell |
---|
|
Eine erfolgreiche Antwort gibt die eindeutige Kennung (id
) der neu erstellten Quellverbindung zurück.
code language-json |
---|
|
Filtern von Aktivitätsentitäten nach Marketo Engage filter-for-marketo
Sie können die Filterung auf Zeilenebene verwenden, um bei Verwendung des Marketo Engage Quell-Connectors nach Aktivitätsentitäten zu filtern. Derzeit können Sie nur nach Aktivitätsentitäten und standardmäßigen Aktivitätstypen filtern. Benutzerdefinierte Aktivitäten werden weiterhin unter Marketo Feldzuordnungen verwaltet.
Marketo standardmäßige Aktivitätstypen 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 Quell-Connectors Marketo zu filtern.
Erstellen eines Entwurfsdatenflusses
Erstellen Sie zunächst einen Marketo Datenfluss und speichern Sie ihn als Entwurf. Eine detaillierte Anleitung zum Erstellen eines Entwurfs für einen Datenfluss finden Sie in der folgenden Dokumentation:
Datenfluss-ID abrufen
Sobald Sie über einen entworfenen Datenfluss verfügen, müssen Sie dessen entsprechende ID abrufen.
Navigieren Sie in der Benutzeroberfläche zum Quellkatalog und wählen Sie dann Datenflüsse aus der oberen Kopfzeile aus. Verwenden Sie die Statusspalte, um alle im Entwurfsmodus gespeicherten Datenflüsse zu identifizieren, und wählen Sie dann den Namen Ihres Datenflusses aus. Suchen Sie dann im Bereich Eigenschaften rechts nach Ihrer Datenfluss-ID.
Abrufen Ihrer Datenflussdetails
Als Nächstes müssen Sie Ihre Datenflug-Details abrufen, insbesondere die mit Ihrem Datenfluss verknüpfte Quell-Verbindungs-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 Datenfluss-Details zurückgegeben, einschließlich Informationen zu den entsprechenden Quell- und Zielverbindungen. Sie müssen Ihre Quell- und Zielverbindungs-IDs zur Kenntnis nehmen, da diese Werte später erforderlich sind, um Ihren Datenfluss zu veröffentlichen.
code language-json line-numbers data-start-1 data-line-offset-4 h-23 h-26 |
---|
|
Abrufen der Details zur Quellverbindung
Verwenden Sie als Nächstes Ihre Quell-Verbindungs-ID und stellen Sie eine GET-Anfrage an den /sourceConnections
-Endpunkt, um Ihre Details zur 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 |
---|
|
Quellverbindung mit Filterbedingungen aktualisieren
Nachdem Sie nun über Ihre Quell-Verbindungs-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
-Header-Parameter 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/das Tag des Datenflusses, den Sie aktualisieren möchten. Der Versions-/Tag-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 Quell-Verbindungs-ID und das eTag (Version) zurückgegeben.
code language-json |
---|
|
Publish der Quellverbindung
Nachdem Ihre Quellverbindung mit Ihren Filterbedingungen aktualisiert wurde, können Sie jetzt vom Entwurfsstatus abwechseln und Ihre Quellverbindung veröffentlichen. Senden Sie dazu eine POST-Anfrage an den /sourceConnections
-Endpunkt und geben Sie die ID Ihrer Quellverbindung als Entwurf 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 eine entworfene Quellverbindung.
code language-shell |
---|
|
Bei einer erfolgreichen Antwort werden Ihre Quell-Verbindungs-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 mit dem Entwurf des Datenflusses fortzufahren und ihn zu veröffentlichen. Stellen Sie eine POST-Anfrage an den /targetConnections
-Endpunkt und geben Sie die ID der Entwurfs-Zielverbindung 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 Ihres Datenflusses
Nachdem Ihre Quell- und Zielverbindungen 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 sowie einen Aktionsvorgang zur 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 Entwurf-Datenfluss veröffentlicht wurde. Navigieren Sie zur Seite "Datenflüsse"im Quellkatalog und referenzieren Sie den Status Ihres Datenflusses. Bei erfolgreicher Ausführung sollte der Status jetzt auf Aktiviert gesetzt werden.
- Ein Datenfluss mit aktivierter Filterung wird nur einmal aufgestockt. Alle Änderungen in der , die Sie an den Filterkriterien vornehmen (sei es ein Zusatz oder eine Entfernung), können nur für inkrementelle Daten wirksam werden.
- Wenn Sie historische Daten für neue Aktivitätstypen erfassen müssen, wird empfohlen, einen neuen Datenfluss zu erstellen und die Filterkriterien mit den entsprechenden Aktivitätstypen in der Filterbedingung zu definieren.
- Sie können keine benutzerdefinierten Aktivitätstypen filtern.
- Sie können keine Vorschau gefilterter Daten anzeigen.
Anhang
Dieser Abschnitt enthält weitere Beispiele für verschiedene Payloads zum Filtern.
Besondere 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
In der folgenden Beispiel-Payload finden Sie ein Beispiel für den Operator in
.
code language-json |
---|
|
Verwenden des isNull
-Operators
In der folgenden Beispiel-Payload finden Sie ein Beispiel für den Operator isNull
.
code language-json |
---|
|
Verwenden des NOT
-Operators
In der folgenden Beispiel-Payload finden Sie ein Beispiel für den Operator NOT
.
code language-json |
---|
|
Beispiel mit verschachtelten Bedingungen
Ein Beispiel für komplexe verschachtelte Bedingungen finden Sie unten in der Beispiel-Payload .
code language-json |
---|
|