Mit der Adobe Experience Platform Batch Ingestion-API können Sie Daten als Batch-Dateien in Platform erfassen. Daten, die erfasst werden, können Profildaten aus einer reduzierten Datei (z. B. einer Parquet-Datei) oder Daten sein, die einem bekannten Schema im Experience Data Model (XDM)-Registrierung.
Die Referenz zur Batch Ingestion-API enthält zusätzliche Informationen zu diesen API-Aufrufen.
Das folgende Diagramm zeigt den Vorgang der Batch-Erfassung.
Die in diesem Handbuch verwendeten API-Endpunkte sind Teil der Batch-Aufnahme-API. Bevor Sie fortfahren, lesen Sie das Handbuch Erste Schritte mit Links zur zugehörigen Dokumentation, einer Anleitung zum Lesen der API-Beispielaufrufe in diesem Dokument und wichtigen Informationen zu den erforderlichen Kopfzeilen, die für die erfolgreiche Ausführung von Aufrufen an eine Experience Platform-API erforderlich sind.
Die Erfassung von Batch-Daten unterliegt verschiedenen Einschränkungen:
Um eine Datei hochzuladen, die größer als 512 MB ist, muss die Datei in kleinere Abschnitte unterteilt werden. Anweisungen zum Hochladen einer großen Datei finden Sie im Abschnitt Abschnitt zum Hochladen großer Dateien in diesem Dokument.
Bei der Erfassung von Daten ist es wichtig zu verstehen, wie Experience Data Model (XDM)-Schemas funktionieren. Weiterführende Informationen zur Zuordnung von XDM-Feldtypen zu verschiedenen Formaten finden Sie im Entwicklerhandbuch zur Schemaregistrierung.
Bei der Erfassung von Daten gibt es eine gewisse Flexibilität. Wenn ein Typ nicht mit dem Zielschema übereinstimmt, werden die Daten in den ausgedrückten Zieltyp konvertiert. Wenn das nicht möglich ist, schlägt der Batch mit einer TypeCompatibilityException
fehl.
Beispielsweise verfügt weder JSON noch CSV über eine date
oder date-time
Typ. Daher werden diese Werte mithilfe von Formatierte Zeichenfolgen im ISO 8061-Format ("2018-07-10T15:05:59.000-08:00") oder Unix-Zeit formatiert in Millisekunden (1531263959000) und werden bei der Aufnahme in den Ziel-XDM-Typ konvertiert.
Folgende Tabelle enthält die Konversionen, die beim Erfassen von Daten unterstützt werden.
Eingehend (Zeile) vs. Ziel (Spalte) | Zeichenfolge | Byte | Kurz | Ganzzahl | Lang | Double | Datum | Datum/Uhrzeit | Objekt | Zuordnung |
---|---|---|---|---|---|---|---|---|---|---|
Zeichenfolge | X | X | X | X | X | X | X | X | ||
Byte | X | X | X | X | X | X | ||||
Kurz | X | X | X | X | X | X | ||||
Ganzzahl | X | X | X | X | X | X | ||||
Lang | X | X | X | X | X | X | X | X | ||
Double | X | X | X | X | X | X | ||||
Datum | X | |||||||||
Datum/Uhrzeit | X | |||||||||
Objekt | X | X | ||||||||
Zuordnung | X | X |
Boolesche Werte und Arrays können nicht in andere Typen konvertiert werden.
Die Data Ingestion Mit der API können Sie Daten als Batches (eine Dateneinheit, die aus einer oder mehreren Dateien besteht, die als Einheit erfasst werden sollen) in Experience Platform in drei grundlegenden Schritten:
Bevor Daten zu einem Datensatz hinzugefügt werden können, müssen sie mit einem Batch verknüpft werden, der später in einen bestimmten Datensatz hochgeladen wird.
POST /batches
Anfrage
curl -X POST "https://platform.adobe.io/data/foundation/import/batches" \
-H "Content-Type: application/json" \
-H "x-gw-ims-org-id: {ORG_ID}" \
-H "x-sandbox-name: {SANDBOX_NAME}" \
-H "Authorization: Bearer {ACCESS_TOKEN}" \
-H "x-api-key: {API_KEY}"
-d '{
"datasetId": "{DATASET_ID}"
}'
Eigenschaft | Beschreibung |
---|---|
datasetId |
Die ID des Datensatzes, in den die Dateien hochgeladen werden sollen. |
Antwort
{
"id": "{BATCH_ID}",
"imsOrg": "{ORG_ID}",
"updated": 0,
"status": "loading",
"created": 0,
"relatedObjects": [
{
"type": "dataSet",
"id": "{DATASET_ID}"
}
],
"version": "1.0.0",
"tags": {},
"createdUser": "{USER_ID}",
"updatedUser": "{USER_ID}"
}
Eigenschaft | Beschreibung |
---|---|
id |
Die ID des soeben erstellten Batches (in nachfolgenden Anfragen verwendet). |
relatedObjects.id |
Die ID des Datensatzes, in den die Dateien hochgeladen werden sollen. |
Nachdem Sie erfolgreich einen neuen Batch zum Hochladen erstellt haben, können Dateien in einen bestimmten Datensatz hochgeladen werden.
Sie können Dateien mit der Small File Upload-API hochladen. Wenn Ihre Dateien jedoch zu groß sind und das Gateway-Limit überschritten wird (z. B. längere Timeouts, Anfragen für überschrittene Dateigröße und andere Einschränkungen), können Sie zur Large File Upload-API wechseln. Diese API lädt die Datei in Teilen hoch und fügt die Daten mithilfe des Aufrufs Large File Upload Complete-API wieder zusammen.
Die Batch-Erfassung kann verwendet werden, um Daten im Profilspeicher schrittweise zu aktualisieren. Weitere Informationen finden Sie im Abschnitt zu Batch aktualisieren im Entwicklerhandbuch zur Batch-Erfassung.
Die folgenden Beispiele verwenden die Apache Parquet Dateiformat. Ein Beispiel, das das JSON-Dateiformat verwendet, finden Sie im Entwicklerhandbuch zur Batch-Erfassung.
Nachdem ein Batch erstellt wurde, können Daten in einen bereits vorhandenen Datensatz hochgeladen werden. Die hochgeladene Datei muss mit dem referenzierten XDM-Schema übereinstimmen.
PUT /batches/{BATCH_ID}/datasets/{DATASET_ID}/files/{FILE_NAME}
Eigenschaft | Beschreibung |
---|---|
{BATCH_ID} |
Die Batch-ID. |
{DATASET_ID} |
Die Datensatz-ID, in den Dateien hochgeladen werden sollen. |
{FILE_NAME} |
Der Dateiname, wie er im Datensatz angezeigt wird. |
Anfrage
curl -X PUT "https://platform.adobe.io/data/foundation/import/batches/{BATCH_ID}/datasets/{DATASET_ID}/files/{FILE_NAME}.parquet" \
-H "content-type: application/octet-stream" \
-H "x-gw-ims-org-id: {ORG_ID}" \
-H "x-sandbox-name: {SANDBOX_NAME}" \
-H "Authorization: Bearer {ACCESS_TOKEN}" \
-H "x-api-key: {API_KEY}" \
--data-binary "@{FILE_PATH_AND_NAME}.parquet"
Eigenschaft | Beschreibung |
---|---|
{FILE_PATH_AND_NAME} |
Pfad und Dateiname der Datei, die in den Datensatz hochgeladen werden soll. |
Antwort
#Status 200 OK, with empty response body
Um eine große Datei hochzuladen, muss die Datei in kleinere Abschnitte aufgeteilt und diese Abschnitte müssen einzeln hochgeladen werden.
POST /batches/{BATCH_ID}/datasets/{DATASET_ID}/files/{FILE_NAME}?action=initialize
Eigenschaft | Beschreibung |
---|---|
{BATCH_ID} |
Die Batch-ID. |
{DATASET_ID} |
Die ID des Datensatzes, in den die Dateien aufgenommen werden. |
{FILE_NAME} |
Der Dateiname, wie er im Datensatz angezeigt wird. |
Anfrage
curl -X POST "https://platform.adobe.io/data/foundation/import/batches/{BATCH_ID}/datasets/{DATASET_ID}/files/part1=a/part2=b/{FILE_NAME}.parquet?action=initialize" \
-H "x-gw-ims-org-id: {ORG_ID}" \
-H "x-sandbox-name: {SANDBOX_NAME}" \
-H "Authorization: Bearer {ACCESS_TOKEN}" \
-H "x-api-key: {API_KEY}"
Antwort
#Status 201 CREATED, with empty response body
Nachdem die Datei erstellt wurde, können alle nachfolgenden Teile durch wiederholte PATCH-Anfragen hochgeladen werden, jeweils einen für jeden Abschnitt der Datei.
PATCH /batches/{BATCH_ID}/datasets/{DATASET_ID}/files/{FILE_NAME}
Eigenschaft | Beschreibung |
---|---|
{BATCH_ID} |
Die Batch-ID. |
{DATASET_ID} |
Die ID des Datensatzes, in den die Dateien hochgeladen werden sollen. |
{FILE_NAME} |
Dateiname, wie er im Datensatz angezeigt wird. |
Anfrage
curl -X PATCH "https://platform.adobe.io/data/foundation/import/batches/{BATCH_ID}/datasets/{DATASET_ID}/files/part1=a/part2=b/{FILE_NAME}.parquet" \
-H "content-type: application/octet-stream" \
-H "x-gw-ims-org-id: {ORG_ID}" \
-H "x-sandbox-name: {SANDBOX_NAME}" \
-H "Authorization: Bearer {ACCESS_TOKEN}" \
-H "x-api-key: {API_KEY}" \
-H "Content-Range: bytes {CONTENT_RANGE}" \
--data-binary "@{FILE_PATH_AND_NAME}.parquet"
Eigenschaft | Beschreibung |
---|---|
{FILE_PATH_AND_NAME} |
Pfad und Dateiname der Datei, die in den Datensatz hochgeladen werden soll. |
Antwort
#Status 200 OK, with empty response
Nachdem alle Dateien in den Batch hochgeladen wurden, kann dieser als fertiggestellt gekennzeichnet werden. Dadurch wird die Catalog DataSetFile-Einträge werden für die abgeschlossenen Dateien erstellt und dem oben generierten Batch zugeordnet. Der Catalog-Batch wird dann als erfolgreich markiert, wodurch bei nachgelagerten Flüssen die Aufnahme der verfügbaren Daten ausgelöst wird.
Anfrage
POST /batches/{BATCH_ID}?action=COMPLETE
Eigenschaft | Beschreibung |
---|---|
{BATCH_ID} |
Die ID des Batches, der in den Datensatz hochgeladen werden soll. |
curl -X POST "https://platform.adobe.io/data/foundation/import/batches/{BATCH_ID}?action=COMPLETE" \
-H "x-gw-ims-org-id: {ORG_ID}" \
-H "x-sandbox-name: {SANDBOX_NAME}" \
-H "Authorization: Bearer {ACCESS_TOKEN}" \
-H "x-api-key: {API_KEY}"
Antwort
#Status 200 OK, with empty response
Während darauf gewartet wird, dass die Dateien in den Batch hochgeladen werden, kann der Status des Stapels überprüft werden, um den Fortschritt zu sehen.
API-Format
GET /batch/{BATCH_ID}
Eigenschaft | Beschreibung |
---|---|
{BATCH_ID} |
Die ID des geprüften Batches. |
Anfrage
curl GET "https://platform.adobe.io/data/foundation/catalog/batch/{BATCH_ID}" \
-H "Authorization: Bearer {ACCESS_TOKEN}" \
-H "x-gw-ims-org-id: {ORG_ID}" \
-H "x-sandbox-name: {SANDBOX_NAME}" \
-H "x-api-key: {API_KEY}"
Antwort
{
"{BATCH_ID}": {
"imsOrg": "{ORG_ID}",
"created": 1494349962314,
"createdClient": "MCDPCatalogService",
"createdUser": "{USER_ID}",
"updatedUser": "{USER_ID}",
"updated": 1494349963467,
"externalId": "{EXTERNAL_ID}",
"status": "success",
"errors": [
{
"code": "err-1494349963436"
}
],
"version": "1.0.3",
"availableDates": {
"startDate": 1337,
"endDate": 4000
},
"relatedObjects": [
{
"type": "batch",
"id": "foo_batch"
},
{
"type": "connection",
"id": "foo_connection"
},
{
"type": "connector",
"id": "foo_connector"
},
{
"type": "dataSet",
"id": "foo_dataSet"
},
{
"type": "dataSetView",
"id": "foo_dataSetView"
},
{
"type": "dataSetFile",
"id": "foo_dataSetFile"
},
{
"type": "expressionBlock",
"id": "foo_expressionBlock"
},
{
"type": "service",
"id": "foo_service"
},
{
"type": "serviceDefinition",
"id": "foo_serviceDefinition"
}
],
"metrics": {
"foo": 1337
},
"tags": {
"foo_bar": [
"stuff"
],
"bar_foo": [
"woo",
"baz"
],
"foo/bar/foo-bar": [
"weehaw",
"wee:haw"
]
},
"inputFormat": {
"format": "parquet",
"delimiter": ".",
"quote": "`",
"escape": "\\",
"nullMarker": "",
"header": "true",
"charset": "UTF-8"
}
}
}
Eigenschaft | Beschreibung |
---|---|
{USER_ID} |
Die ID des Benutzers, der den Batch erstellt oder aktualisiert hat. |
Das "status"
-Feld zeigt den aktuellen Status des angeforderten Batches an. Die Batches können einen der folgenden Status haben:
Status | Beschreibung |
---|---|
Vorzeitig beendet | Der Batch wurde nicht im erwarteten Zeitrahmen fertiggestellt. |
Abgebrochen | Für den angegebenen Stapel wurde explizit ein Unterbrechungsvorgang (über die Batch-Aufnahme-API) aufgerufen. Sobald sich der Batch im Status "Geladen"befindet, kann er nicht mehr abgebrochen werden. |
Aktiv | Der Batch wurde erfolgreich gefördert und steht für den nachgelagerten Verbrauch zur Verfügung. Dieser Status kann synonym mit "Erfolg"verwendet werden. |
Gelöscht | Die Daten für den Batch wurden vollständig entfernt. |
Fehlgeschlagen | Ein Terminal-Status, der entweder auf eine fehlerhafte Konfiguration und/oder auf fehlerhafte Daten zurückzuführen ist. Daten für einen fehlgeschlagenen Batch werden nicht angezeigt. Dieser Status kann synonym mit "Fehler"verwendet werden. |
Inaktiv | Der Batch wurde erfolgreich gefördert, wurde jedoch zurückgesetzt oder ist abgelaufen. Der Batch ist nicht mehr für den nachgelagerten Verbrauch verfügbar. |
Geladen | Die Daten für den Batch sind abgeschlossen und der Stapel kann gefördert werden. |
Wird geladen | Daten für diesen Batch werden hochgeladen und der Batch kann derzeit noch nicht gefördert werden. |
Wird wiederholt | Die Daten für diesen Batch werden verarbeitet. Aufgrund eines System- oder vorübergehenden Fehlers ist der Batch jedoch fehlgeschlagen. Daher wird für diesen Batch ein erneuter Versuch unternommen. |
Staging | Die Staging-Phase des Förderungsprozesses für einen Batch ist abgeschlossen und der Aufnahmeauftrag wurde ausgeführt. |
Staging | Die Daten für den Batch werden verarbeitet. |
Angehalten | Die Daten für den Batch werden verarbeitet. Die Batch-Förderung wurde jedoch nach einigen weiteren erneuten Versuchen angehalten. |