Een gegevensstroom maken voor databasebronnen met de API Flow Service
Lees dit leerprogramma leren hoe te om een dataflow tot stand te brengen en gegevens van uw gegevensbestand in Adobe Experience Platform in te voeren gebruikend Flow Service API .
- Als u een gegevensstroom wilt maken, moet u al een geldige basis-verbindings-id met een databasebron hebben. Als u dit identiteitskaart niet hebt, dan bezoek de broncatalogus om een lijst van gegevensbestandbronnen te bekijken die u een basisverbinding kunt tot stand brengen met.
- Experience Platform kan alleen gegevens invoeren als tijdzones voor alle batchbronnen op basis van tabellen zijn geconfigureerd voor UTC. De enige tijdstempel die voor de Snowflake bron wordt gesteund is TIMESTAMP_NTZ met tijd UTC.
Aan de slag
Voor deze zelfstudie hebt u een goed inzicht nodig in de volgende onderdelen van Adobe Experience Platform:
-
Experience Data Model (XDM) System: Het gestandaardiseerde raamwerk waarmee Experience Platform gegevens over de ervaring van klanten organiseert.
- Grondbeginselen van schemacompositie : Leer over de basisbouwstenen van schema's XDM, met inbegrip van zeer belangrijke principes en beste praktijken in schemacompositie.
- de ontwikkelaarsgids van de Registratie van het Schema : Omvat belangrijke informatie die u moet kennen om vraag aan de Registratie API van het Schema met succes uit te voeren. Dit omvat uw
{TENANT_ID}, het concept "containers", en de vereiste kopballen voor het maken van verzoeken (met speciale aandacht voor de Accept kopbal en zijn mogelijke waarden).
-
Catalog Service: Catalog is het recordsysteem voor gegevenslocatie en -lijn in Experience Platform.
-
Batch ingestion: met de API voor batchverwerking kunt u gegevens als batchbestanden in Experience Platform invoeren.
-
Sandboxes : Experience Platform verstrekt virtuele zandbakken die één enkele instantie van Experience Platform in afzonderlijke virtuele milieu's verdelen helpen digitale ervaringstoepassingen ontwikkelen en ontwikkelen.
Experience Platform API's gebruiken
Voor informatie over hoe te om vraag aan Experience Platform APIs met succes te maken, zie de gids op begonnen wordt met Experience Platform APIs .
Een bronverbinding maken source
U kunt een bronverbinding maken door een POST-aanvraag in te dienen bij de Flow Service API. Een bronverbinding bestaat uit een verbinding-id, een pad naar het brongegevensbestand en een verbindingsspecificatie-id.
Als u een bronverbinding wilt maken, moet u ook een opsommingswaarde voor het kenmerk voor de gegevensindeling definiëren.
Gebruik de volgende numerieke waarden voor op dossier-gebaseerde schakelaars:
delimitedjsonparquetVoor alle op lijst-gebaseerde schakelaars, plaats de waarde aan tabular.
API formaat
POST /sourceConnections
Verzoek
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": "Database source connection",
"baseConnectionId": "6990abad-977d-41b9-a85d-17ea8cf1c0e4",
"description": "Database source connection",
"data": {
"format": "tabular"
},
"params": {
"tableName": "test1.Mytable",
"columns": [
{
"name": "TestID",
"type": "string",
"xdm": {
"type": "string"
}
},
{
"name": "Name",
"type": "string",
"xdm": {
"type": "string"
}
},
{
"name": "Datefield",
"type": "string",
"meta:xdmType": "date-time",
"xdm": {
"type": "string",
"format": "date-time"
}
}
],
"cdcEnabled": true
},
"connectionSpec": {
"id": "3c9b37f8-13a6-43d8-bad3-b863b941fedd",
"version": "1.0"
}
}'
baseConnectionIdparams.tableNameparams.cdcEnabledEen booleaanse waarde die aangeeft of het vastleggen van de wijzigingshistorie is ingeschakeld. Wanneer gebruikt met op model-gebaseerde schema's, verandert gegevens vangt sporen tussenvoegsels, updates, en schrapt om de doeldataset te houden die met de bron wordt gesynchroniseerd. Deze eigenschap wordt ondersteund door de volgende databasebronnen:
- Azure Databricks
- Google BigQuery
- Snowflake
Voor een overzicht van dit vermogen, zie het overzicht van Data Mirror . Voor implementatiedetails, zie veranderingsgegevens vangen in bronnen gids en op model-gebaseerde schema's technische verwijzing .
connectionSpec.idReactie
Een succesvolle reactie keert het unieke herkenningsteken (id) van de pas gecreëerde bronverbinding terug. Deze id is vereist in latere stappen om een doelverbinding te maken.
{
"id": "b7581b59-c603-4df1-a689-d23d7ac440f3",
"etag": "\"ef05d265-0000-0200-0000-6019e0080000\""
}
Een doel-XDM-schema maken target-schema
Als u de brongegevens in Experience Platform wilt gebruiken, moet u een doelschema maken om de brongegevens naar wens te structureren. Het doelschema wordt dan gebruikt om een dataset van Experience Platform tot stand te brengen waarin de brongegevens bevat zijn.
Een doelXDM schema kan worden gecreeerd door een POST- verzoek aan de Registratie API van het Schema uit te voeren.
Voor gedetailleerde stappen op hoe te om een doelXDM schema tot stand te brengen, zie het leerprogramma op creërend een schema gebruikend API .
Een doelgegevensset maken target-dataset
Een doeldataset kan worden gecreeerd door een POST- verzoek aan de Dienst API van de Catalogus uit te voeren , verstrekkend identiteitskaart van het doelschema binnen de nuttige lading.
Voor gedetailleerde stappen op hoe te om een doeldataset tot stand te brengen, zie het leerprogramma op het creëren van een dataset gebruikend API .
Een doelverbinding maken target-connection
Een doelverbinding vertegenwoordigt de verbinding aan de bestemming waar de ingesloten gegevens binnen landen. Om een doelverbinding tot stand te brengen, moet u vaste identiteitskaart verstrekken van verbindingsspecificatie verbonden aan het meer van Gegevens. Deze verbindingsspecificatie-id is: c604ff05-7f1a-43c0-8e18-33bf874cb11c .
U hebt nu unieke herkenningstekens een doelschema een doeldataset en identiteitskaart van de verbindingsspecificatie aan gegevens meer. Met behulp van de Flow Service API kunt u een doelverbinding maken door deze id's samen met de dataset op te geven die de binnenkomende brongegevens zal bevatten.
API formaat
POST /targetConnections
Verzoek
curl -X POST \
'https://platform.adobe.io/data/foundation/flowservice/targetConnections' \
-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": "Database target connection",
"description": "Database target connection",
"data": {
"schema": {
"id": "https://ns.adobe.com/{TENANT_ID}/schemas/52b59140414aa6a370ef5e21155fd7a686744b8739ecc168",
"version": "application/vnd.adobe.xed-full+json;version=1"
}
},
"params": {
"dataSetId": "6019e0e7c5dcf718db5ebc71"
},
"connectionSpec": {
"id": "c604ff05-7f1a-43c0-8e18-33bf874cb11c",
"version": "1.0"
}
}'
data.schema.id$id of the target XDM schema.data.schema.versionapplication/vnd.adobe.xed-full+json;version=1 , die de laatste secundaire versie van het schema retourneert.params.dataSetIdconnectionSpec.idc604ff05-7f1a-43c0-8e18-33bf874cb11c .Reactie
Een succesvolle reactie keert het unieke herkenningsteken van de nieuwe doelverbinding (id) terug. Deze waarde is in een latere stap vereist om een gegevensstroom te maken.
{
"id": "320f119a-5ac1-4ab1-88ea-eb19e674ea2e",
"etag": "\"c0038936-0000-0200-0000-6019e1190000\""
}
Een toewijzing maken mapping
Opdat de brongegevens in een doeldataset moeten worden opgenomen, moet het eerst aan het doelschema worden in kaart gebracht dat de doeldataset zich aan houdt.
Om een mappingsreeks tot stand te brengen, doe een POST- verzoek aan het mappingSets eindpunt van Data Prep API terwijl het verstrekken van uw doelXDM schema $id en de details van de mappingsreeksen u wilt tot stand brengen.
API formaat
POST /mappingSets
Verzoek
curl -X POST \
'https://platform.adobe.io/data/foundation/conversion/mappingSets' \
-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 '{
"version": 0,
"xdmSchema": "https://ns.adobe.com/{TENANT_ID}/schemas/52b59140414aa6a370ef5e21155fd7a686744b8739ecc168",
"xdmVersion": "1.0",
"id": null,
"mappings": [
{
"destinationXdmPath": "_id",
"sourceAttribute": "TestID",
"identity": false,
"identityGroup": null,
"namespaceCode": null,
"version": 0
},
{
"destinationXdmPath": "person.name.fullName",
"sourceAttribute": "Name",
"identity": false,
"identityGroup": null,
"namespaceCode": null,
"version": 0
},
{
"destinationXdmPath": "person.birthDate",
"sourceAttribute": "Datefield",
"identity": false,
"identityGroup": null,
"namespaceCode": null,
"version": 0
}
]
}'
xdmSchema$id of the target XDM schema.Reactie
Een succesvolle reactie keert details van de pas gecreëerde afbeelding met inbegrip van zijn uniek herkenningsteken (id) terug. Deze id is in een latere stap vereist om een gegevensstroom te maken.
{
"id": "0b090130b58b4819afc78b6dc98b484d",
"version": 0,
"createdDate": 1612309018666,
"modifiedDate": 1612309018666,
"createdBy": "{CREATED_BY}",
"modifiedBy": "{MODIFIED_BY}"
}
Gegevensstroomspecificaties ophalen specs
Een gegevensstroom is verantwoordelijk voor het verzamelen van gegevens uit bronnen en het brengen van deze naar Experience Platform. Als u een gegevensstroom wilt maken, moet u eerst de gegevensstroomspecificaties verkrijgen door een GET-aanvraag voor de Flow Service API uit te voeren. Dataflow-specificaties zijn verantwoordelijk voor het verzamelen van gegevens van een externe database of een NoSQL-systeem.
API formaat
GET /flowSpecs?property=name=="CRMToAEP"
Verzoek
curl -X GET \
'https://platform.adobe.io/data/foundation/flowservice/flowSpecs?property=name=="CRMToAEP"' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}'
Reactie
Een succesvolle reactie retourneert de details van de gegevensstroomspecificatie die verantwoordelijk zijn voor het plaatsen van gegevens van uw bron naar Experience Platform. De reactie bevat de unieke flowspecificatie id die is vereist om een nieuwe gegevensstroom te maken.
| code language-json |
|---|
|
Een gegevensstroom maken
De laatste stap in de richting van het verzamelen van gegevens is het maken van een gegevensstroom. Op dit punt moeten de volgende vereiste waarden worden voorbereid:
Een dataflow is verantwoordelijk voor het plannen en verzamelen van gegevens uit een bron. U kunt een gegevensstroom tot stand brengen door een POST- verzoek uit te voeren terwijl het verstrekken van de eerder vermelde waarden binnen de verzoeklading.
Als u een opname wilt plannen, moet u eerst de begintijdwaarde instellen op Tijd in seconden. Vervolgens moet u de frequentiewaarde instellen op een van de vijf opties: once, minute, hour, day of week . De intervalwaarde geeft de periode tussen twee opeenvolgende inname aan en het maken van een eenmalige inname vereist geen interval dat moet worden ingesteld. Voor alle andere frequenties moet de intervalwaarde worden ingesteld op gelijk aan of groter dan 15 .
API formaat
POST /flows
Verzoek
curl -X POST \
'https://platform.adobe.io/data/foundation/flowservice/flows' \
-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": "Database dataflow using BigQuery",
"description": "collecting test1.Mytable",
"flowSpec": {
"id": "14518937-270c-4525-bdec-c2ba7cce3860",
"version": "1.0"
},
"sourceConnectionIds": [
"b7581b59-c603-4df1-a689-d23d7ac440f3"
],
"targetConnectionIds": [
"320f119a-5ac1-4ab1-88ea-eb19e674ea2e"
],
"transformations": [
{
"name": "Copy",
"params": {
"deltaColumn": {
"name": "Datefield",
"dateFormat": "YYYY-MM-DD",
"timezone": "UTC"
}
}
},
{
"name": "Mapping",
"params": {
"mappingId": "0b090130b58b4819afc78b6dc98b484d",
"mappingVersion": 0
}
}
],
"scheduleParams": {
"startTime": "1612310466",
"frequency":"minute",
"interval":"15",
"backfill": "true"
}
}'
+++
flowSpec.idsourceConnectionIdstargetConnectionIdstransformations.params.mappingIdtransformations.params.deltaColumdeltaColumn is yyyy-MM-dd HH:mm:ss . Als u Azure Table Storage gebruikt, is de ondersteunde indeling voor deltaColumn yyyy-MM-ddTHH:mm:ssZ .transformations.params.mappingIdscheduleParams.startTimescheduleParams.frequencyonce, minute, hour, day of week .scheduleParams.intervalHet interval geeft de periode aan tussen twee opeenvolgende flowrun. De waarde van het interval moet een geheel getal zijn dat niet gelijk is aan nul. De minimaal toegestane intervalwaarde voor elke frequentie is als volgt:
- Eenmaal: n/a
- Minuut: 15
- Uur: 1
- Dag: 1
- Week: 1
Reactie
Een succesvolle reactie keert identiteitskaart (id) van nieuw gecreeerd dataflow terug.
{
"id": "2edc08ac-4df5-4fe6-936f-81a19ce92f5c",
"etag": "\"770029f8-0000-0200-0000-6019e7d40000\""
}
Uw gegevensstroom controleren
Zodra uw gegevensstroom is gecreeerd, kunt u de gegevens controleren die door het worden opgenomen om informatie over stroomlooppas, voltooiingsstatus, en fouten te zien. Voor meer informatie over hoe te om dataflows te controleren, zie het leerprogramma op controledataflows in API
Volgende stappen
Door dit leerprogramma te volgen, hebt u een bronschakelaar gecreeerd om gegevens van een gegevensbestand op een geplande basis te verzamelen. Binnenkomende gegevens kunnen nu worden gebruikt door downstream Experience Platform-services, zoals Real-Time Customer Profile en Data Science Workspace . Raadpleeg de volgende documenten voor meer informatie:
Bijlage
In de volgende sectie worden de verschillende connectors voor bronnen voor cloudopslag en de bijbehorende verbindingsspecificaties weergegeven.
Verbindingsspecificatie
3416976c-a9ca-4bba-901a-1f08f66978ffaac9bbd4-6c01-46ce-b47e-51c6f0f6db3f6a8d82bc-1caf-45d1-908d-cadabc9d63a60479cc14-7651-4354-b233-7480606c2ac3a49bcc7d-8038-43af-b1e4-5a7a089a7d79ecde33f2-c56f-46cc-bdea-ad151c16cd693c9b37f8-13a6-43d8-bad3-b863b941fedd37b6bf40-d318-4655-90be-5cd6f65d334b09182899-b429-40c9-a15a-bf3ddbc8ced7000eb99-cd47-43f3-827c-43caf170f0151f372ff9-38a4-4492-96f5-b9a4e4bd00ec26d738e0-8963-47ea-aadf-c60de735468ad6b52d86-f0f8-475f-89d4-ce54c852732874a1c565-4e59-48d7-9d67-7c03b8a13137