Filtrare i dati a livello di riga per un'origine utilizzando l'API Flow Service
Leggi questa guida per i passaggi su come filtrare i dati a livello di riga per un'origine utilizzando Flow Service API.
Introduzione
Questo tutorial richiede una buona conoscenza dei seguenti componenti di Adobe Experience Platform:
- Origini: Experience Platform consente l'acquisizione di dati da varie origini e consente di strutturare, etichettare e migliorare i dati in arrivo tramite i servizi Platform.
- Sandbox: Experience Platform fornisce sandbox virtuali che suddividono una singola istanza di Platform in ambienti virtuali separati, utili per le attività di sviluppo e aggiornamento delle applicazioni di esperienza digitale.
Utilizzo delle API di Platform
Per informazioni su come effettuare correttamente chiamate alle API di Platform, consulta la guida in guida introduttiva alle API di Platform.
Filtrare i dati di origine filter-source-data
Di seguito sono descritti i passaggi da eseguire per filtrare i dati a livello di riga per l’origine.
Recuperare le specifiche di connessione retrieve-your-connection-specs
Il primo passaggio per filtrare i dati a livello di riga per l'origine consiste nel recuperare le specifiche di connessione dell'origine e determinare gli operatori e la lingua supportati dall'origine.
Per recuperare la specifica di connessione di un'origine specifica, effettuare una richiesta di GET all'endpoint /connectionSpecs
dell'API Flow Service e fornire il nome della proprietà dell'origine come parte dei parametri di query.
Formato API
GET /connectionSpecs/{QUERY_PARAMS}
{QUERY_PARAMS}
name
e specificando "google-big-query"
nella ricerca.La richiesta seguente recupera le specifiche di connessione per Google BigQuery.
code language-shell |
---|
|
In caso di esito positivo, la risposta restituisce il codice di stato 200 e le specifiche di connessione per Google BigQuery, incluse informazioni sul linguaggio di query e sugli operatori logici supportati.
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 | |
---|---|
Proprietà | Descrizione |
attributes.filterAtSource.enabled |
Determina se l'origine della query supporta il filtro per i dati a livello di riga. |
attributes.filterAtSource.queryLanguage |
Determina il linguaggio di query supportato dall'origine della query. |
attributes.filterAtSource.logicalOperators |
Determina gli operatori logici che è possibile utilizzare per filtrare i dati a livello di riga per l'origine. |
attributes.filterAtSource.comparisonOperators |
Determina gli operatori di confronto utilizzabili per filtrare i dati a livello di riga per l'origine. Per ulteriori informazioni sugli operatori di confronto, consulta la tabella seguente. |
attributes.filterAtSource.columnNameEscapeChar |
Determina il carattere da utilizzare per l'escape delle colonne. |
attributes.filterAtSource.valueEscapeChar |
Determina il modo in cui i valori verranno racchiusi durante la scrittura di una query SQL. |
Operatori di confronto comparison-operators
==
!=
<
>
<=
>=
like
WHERE
per cercare un modello specificato.in
Specificare le condizioni di filtro per l’acquisizione specify-filtering-conditions-for-ingestion
Dopo aver identificato gli operatori logici e il linguaggio di query supportati dall'origine, è possibile utilizzare Profile Query Language (PQL) per specificare le condizioni di filtro da applicare ai dati di origine.
Nell’esempio seguente, le condizioni vengono applicate solo ai dati selezionati che corrispondono ai valori forniti per i tipi di nodo elencati come parametri.
{
"type": "PQL",
"format": "pql/json",
"value": {
"nodeType": "fnApply",
"fnName": "=",
"params": [
{
"nodeType": "fieldLookup",
"fieldName": "city"
},
{
"nodeType": "literal",
"value": "DDN"
}
]
}
}
Visualizzare l’anteprima dei dati preview-your-data
È possibile visualizzare l'anteprima dei dati effettuando una richiesta di GET all'endpoint /explore
dell'API Flow Service fornendo filters
come parte dei parametri di query e specificando le condizioni di input di PQL in Base64.
Formato 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 |
---|
|
In caso di esito positivo, la risposta restituisce il contenuto e la struttura dei dati.
code language-json |
---|
|
Creare una connessione di origine per i dati filtrati
Per creare una connessione di origine e acquisire i dati filtrati, effettuare una richiesta POST all'endpoint /sourceConnections
e specificare le condizioni di filtro nei parametri del corpo della richiesta.
Formato API
POST /sourceConnections
La richiesta seguente crea una connessione di origine per acquisire i dati da test1.fasTestTable
dove city
= DDN
.
code language-shell |
---|
|
In caso di esito positivo, la risposta restituisce l'identificatore univoco (id
) della connessione di origine appena creata.
code language-json |
---|
|
Filtra entità attività per Marketo Engage filter-for-marketo
È possibile utilizzare il filtro a livello di riga per filtrare le entità attività quando si utilizza il Marketo Engage connettore di origine. Al momento, è possibile filtrare solo per entità attività e tipi di attività standard. Le attività personalizzate rimangono disciplinate in Marketo mappature campi.
Marketo tipi di attività standard marketo-standard-activity-types
La tabella seguente illustra i tipi di attività standard per Marketo. Utilizzare questa tabella come riferimento per i criteri di filtro.
Segui i passaggi seguenti per filtrare le entità attività standard quando utilizzi il connettore di origine Marketo.
Creare un flusso di dati 2D
Crea un Marketo flusso di dati e salvalo come bozza. Consulta la seguente documentazione per i passaggi dettagliati su come creare un flusso di dati in formato bozza:
Recupera l’ID del flusso di dati
Dopo aver creato un flusso di dati, devi recuperarne l’ID corrispondente.
Nell'interfaccia utente passare al catalogo delle origini e selezionare Flussi dati dall'intestazione superiore. Utilizza la colonna di stato per identificare tutti i flussi di dati salvati in modalità bozza, quindi seleziona il nome del flusso di dati. Quindi, utilizza il pannello Proprietà a destra per individuare l'ID del flusso di dati.
Recuperare i dettagli del flusso di dati
Quindi, devi recuperare i dettagli del flusso di dati, in particolare l’ID della connessione di origine associato al flusso di dati. Per recuperare i dettagli del flusso di dati, effettua una richiesta GET all'endpoint /flows
e fornisci l'ID del flusso di dati come parametro del percorso.
Formato API
GET /flows/{FLOW_ID}
{FLOW_ID}
La richiesta seguente recupera informazioni sull'ID flusso di dati: a7e88a01-40f9-4ebf-80b2-0fc838ff82ef
.
code language-shell |
---|
|
In caso di esito positivo, la risposta restituisce i dettagli del flusso di dati, incluse le informazioni sulle connessioni di origine e di destinazione corrispondenti. Per pubblicare il flusso di dati, è necessario prendere nota degli ID di connessione di origine e di destinazione, in quanto questi valori sono richiesti in un secondo momento.
code language-json line-numbers data-start-1 data-line-offset-4 h-23 h-26 |
---|
|
Recuperare i dettagli della connessione sorgente
Quindi, utilizzare l'ID connessione di origine e inviare una richiesta di GET all'endpoint /sourceConnections
per recuperare i dettagli della connessione di origine.
Formato API
GET /sourceConnections/{SOURCE_CONNECTION_ID}
{SOURCE_CONNECTION_ID}
code language-shell |
---|
|
In caso di esito positivo, la risposta restituisce i dettagli della connessione sorgente. Prendi nota della versione in quanto questo valore sarà necessario nel passaggio successivo per aggiornare la connessione sorgente.
code language-json line-numbers data-start-1 data-line-offset-4 h-30 |
---|
|
Aggiornare la connessione di origine con le condizioni di filtro
Ora che disponi dell’ID connessione sorgente e della versione corrispondente, puoi effettuare una richiesta PATCH con le condizioni del filtro che specificano i tipi di attività standard.
Per aggiornare la connessione di origine, effettuare una richiesta PATCH all'endpoint /sourceConnections
e fornire l'ID della connessione di origine come parametro di query. Inoltre, devi fornire un parametro di intestazione If-Match
, con la versione corrispondente della connessione sorgente.
If-Match
è obbligatoria quando si effettua una richiesta PATCH. Il valore di questa intestazione è la versione/etag univoca del flusso di dati che desideri aggiornare. Il valore version/etag viene aggiornato a ogni aggiornamento riuscito di un flusso di dati.Formato API
PATCH /sourceConnections/{SOURCE_CONNECTION_ID}
{SOURCE_CONNECTION_ID}
code language-shell |
---|
|
In caso di esito positivo, la risposta restituisce l’ID della connessione di origine e l’etag (versione).
code language-json |
---|
|
Publish connessione sorgente
Con la connessione di origine aggiornata con le condizioni di filtro, ora puoi passare dallo stato di bozza e pubblicare la connessione di origine. A tale scopo, invia una richiesta POST all'endpoint /sourceConnections
e fornisci l'ID della bozza della connessione di origine e un'operazione di pubblicazione.
Formato API
POST /sourceConnections/{SOURCE_CONNECTION_ID}/action?op=publish
{SOURCE_CONNECTION_ID}
op
op
su publish
.La richiesta seguente pubblica una bozza di connessione sorgente.
code language-shell |
---|
|
In caso di esito positivo, la risposta restituisce l’ID della connessione di origine e l’etag (versione).
code language-json |
---|
|
Publish connessione di destinazione
Come nel passaggio precedente, per procedere e pubblicare il flusso di dati bozza devi pubblicare anche la connessione di destinazione. Effettuare una richiesta POST all'endpoint /targetConnections
e fornire l'ID della bozza di connessione di destinazione che si desidera pubblicare, nonché un'operazione di pubblicazione.
Formato API
POST /targetConnections/{TARGET_CONNECTION_ID}/action?op=publish
{TARGET_CONNECTION_ID}
op
op
su publish
.La richiesta seguente pubblica la connessione di destinazione con ID: 7e53e6e8-b432-4134-bb29-21fc6e8532e5
.
code language-shell |
---|
|
In caso di esito positivo, la risposta restituisce l’ID e l’e-mail corrispondente per la connessione di destinazione pubblicata.
code language-json |
---|
|
Publish il flusso di dati
Con le connessioni di origine e di destinazione pubblicate entrambe, ora puoi procedere al passaggio finale e pubblicare il flusso di dati. Per pubblicare il flusso di dati, effettua una richiesta POST all'endpoint /flows
e fornisci l'ID del flusso di dati e un'operazione di pubblicazione.
Formato API
POST /flows/{FLOW_ID}/action?op=publish
{FLOW_ID}
op
op
su publish
.La richiesta seguente pubblica il flusso di dati della bozza.
code language-shell |
---|
|
In caso di esito positivo, la risposta restituisce l’ID e il corrispondente etag
del flusso di dati.
code language-json |
---|
|
Puoi utilizzare l’interfaccia utente di Experience Platform per verificare che il flusso di dati della bozza sia stato pubblicato. Passa alla pagina dei flussi di dati nel catalogo delle origini e fai riferimento al Stato del flusso di dati. In caso di esito positivo, ora lo stato deve essere impostato su Abilitato.
- Un flusso di dati con il filtro abilitato verrà recuperato una sola volta. Qualsiasi modifica apportata nei criteri di filtro (sia essa un'aggiunta o una rimozione) può avere effetto solo sui dati incrementali.
- Se devi acquisire dati storici per qualsiasi nuovo tipo di attività, ti consigliamo di creare un nuovo flusso di dati e definire i criteri di filtro con i tipi di attività appropriati nella condizione di filtro.
- Non puoi filtrare i tipi di attività personalizzati.
- Non è possibile visualizzare in anteprima i dati filtrati.
Appendice
Questa sezione fornisce ulteriori esempi di payload diversi da filtrare.
Condizioni singole
È possibile omettere fnApply
iniziale per gli scenari che richiedono una sola condizione.
code language-json |
---|
|
Utilizzo dell'operatore in
Per un esempio dell'operatore in
, vedere il payload di esempio seguente.
code language-json |
---|
|
Utilizzo dell'operatore isNull
Per un esempio dell'operatore isNull
, vedere il payload di esempio seguente.
code language-json |
---|
|
Utilizzo dell'operatore NOT
Per un esempio dell'operatore NOT
, vedere il payload di esempio seguente.
code language-json |
---|
|
Esempio con condizioni nidificate
Per un esempio di condizioni nidificate complesse, consulta il payload di esempio riportato di seguito.
code language-json |
---|
|