使用流服务API将Data Landing Zone连接到Adobe Experience Platform
Data Landing Zone是一种安全的基于云的文件存储工具,可将文件导入Adobe Experience Platform。 数据会在七天后自动从Data Landing Zone中删除。
本教程将指导您完成有关如何使用Flow Service API创建Data Landing Zone源连接的步骤。 本教程还提供了有关如何检索Data Landing Zone以及查看和刷新凭据的说明。
快速入门
本指南要求您对Experience Platform的以下组件有一定的了解:
以下部分提供使用Flow Service API成功创建Data Landing Zone源连接所需了解的其他信息。
本教程还要求您阅读Platform API快速入门指南,了解如何对Platform API进行身份验证并解释文档中提供的示例调用。
检索可用的登陆区域
使用API访问Data Landing Zone的第一步是向Connectors API的/landingzone
端点发出GET请求,同时将type=user_drop_zone
作为请求标头的一部分提供。
API格式
GET /data/foundation/connectors/landingzone?type=user_drop_zone
user_drop_zone
user_drop_zone
类型允许API将登陆区域容器与您可用的其他类型容器区分开来。请求
以下请求将检索现有的登陆区域。
curl -X GET \
'https://platform.adobe.io/data/foundation/connectors/landingzone?type=user_drop_zone' \
-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'
响应
以下响应返回有关登陆区域的信息,包括其对应的containerName
和containerTTL
。
{
"containerName": "dlz-user-container",
"containerTTL": "7"
}
containerName
containerTTL
检索Data Landing Zone凭据
要检索Data Landing Zone的凭据,请向Connectors API的/credentials
端点发出GET请求。
API格式
GET /data/foundation/connectors/landingzone/credentials?type=user_drop_zone
请求
以下请求示例检索现有登陆区域的凭据。
curl -X GET \
'https://platform.adobe.io/data/foundation/connectors/landingzone/credentials?type=user_drop_zone' \
-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' \
响应
以下响应返回数据登录区域的凭据信息,包括当前的SASToken
、SASUri
、storageAccountName
和到期日期。
{
"containerName": "dlz-user-container",
"SASToken": "sv=2020-04-08&si=dlz-ed86a61d-201f-4b50-b10f-a1bf173066fd&sr=c&sp=racwdlm&sig=4yTba8voU3L0wlcLAv9mZLdZ7NlMahbfYYPTMkQ6ZGU%3D",
"storageAccountName": "dlblobstore99hh25i3dflek",
"SASUri": "https://dlblobstore99hh25i3dflek.blob.core.windows.net/dlz-user-container?sv=2020-04-08&si=dlz-ed86a61d-201f-4b50-b10f-a1bf173066fd&sr=c&sp=racwdlm&sig=4yTba8voU3L0wlcLAv9mZLdZ7NlMahbfYYPTMkQ6ZGU%3D",
"expiryDate": "2024-01-06"
}
containerName
SASToken
SASUri
expiryDate
使用API检索必填字段
生成令牌后,您可以使用以下请求示例以编程方式检索必填字段:
code language-py |
---|
|
code language-java |
---|
|
更新Data Landing Zone凭据
您可以通过向Connectors API的/credentials
端点发出POST请求来更新SASToken
。
API格式
POST /data/foundation/connectors/landingzone/credentials?type=user_drop_zone&action=refresh
user_drop_zone
user_drop_zone
类型允许API将登陆区域容器与您可用的其他类型容器区分开来。refresh
refresh
操作允许您重置登陆区域凭据并自动生成新的SASToken
。请求
以下请求将更新您的登陆区域凭据。
curl -X POST \
'https://platform.adobe.io/data/foundation/connectors/landingzone/credentials?type=user_drop_zone&action=refresh' \
-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' \
响应
以下响应返回您的SASToken
和SASUri
的更新值。
{
"containerName": "dlz-user-container",
"SASToken": "sv=2020-04-08&si=dlz-9c4d03b8-a6ff-41be-9dcf-20123e717e99&sr=c&sp=racwdlm&sig=JbRMoDmFHQU4OWOpgrKdbZ1d%2BkvslO35%2FXTqBO%2FgbRA%3D",
"storageAccountName": "dlblobstore99hh25i3dflek",
"SASUri": "https://dlblobstore99hh25i3dflek.blob.core.windows.net/dlz-user-container?sv=2020-04-08&si=dlz-9c4d03b8-a6ff-41be-9dcf-20123e717e99&sr=c&sp=racwdlm&sig=JbRMoDmFHQU4OWOpgrKdbZ1d%2BkvslO35%2FXTqBO%2FgbRA%3D",
"expiryDate": "2024-01-06"
}
探索登陆区域文件结构和内容
您可以通过向Flow Service API的connectionSpecs
端点发出GET请求来探索登陆区域的文件结构和内容。
API格式
GET /connectionSpecs/{CONNECTION_SPEC_ID}/explore?objectType=root
{CONNECTION_SPEC_ID}
26f526f2-58f4-4712-961d-e41bf1ccc0e8
。请求
curl -X GET \
'http://platform.adobe.io/data/foundation/flowservice/connectionSpecs/26f526f2-58f4-4712-961d-e41bf1ccc0e8/explore?objectType=root' \
-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}'
响应
成功的响应将返回在查询的目录中找到的文件和文件夹数组。 请记下要上传的文件的path
属性,因为您需要在下一步中提供该属性以检查其结构。
[
{
"type": "file",
"name": "account.csv",
"path": "dlz-user-container/account.csv",
"canPreview": true,
"canFetchSchema": true
},
{
"type": "file",
"name": "data8.csv",
"path": "dlz-user-container/data8.csv",
"canPreview": true,
"canFetchSchema": true
},
{
"type": "folder",
"name": "userdata1",
"path": "dlz-user-container/userdata1/",
"canPreview": false,
"canFetchSchema": false
}
]
预览登陆区域文件结构和内容
要在登陆区域中检查文件的结构,请在提供文件路径并键入作为查询参数的同时执行GET请求。
API格式
GET /connectionSpecs/{CONNECTION_SPEC_ID}/explore?objectType=file&object={OBJECT}&fileType={FILE_TYPE}&preview={PREVIEW}
{CONNECTION_SPEC_ID}
26f526f2-58f4-4712-961d-e41bf1ccc0e8
。{OBJECT_TYPE}
file
{OBJECT}
dlz-user-container/data8.csv
{FILE_TYPE}
delimited
json
parquet
{PREVIEW}
-
true
-
false
请求
curl -X GET \
'http://platform.adobe.io/data/foundation/flowservice/connectionSpecs/26f526f2-58f4-4712-961d-e41bf1ccc0e8/explore?objectType=file&object=dlz-user-container/data8.csv&fileType=delimited&preview=true' \
-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}'
响应
成功的响应将返回查询文件的结构,包括文件名和数据类型。
{
"format": "flat",
"schema": {
"columns": [
{
"name": "Id",
"type": "string",
"xdm": {
"type": "string"
}
},
{
"name": "FirstName",
"type": "string",
"xdm": {
"type": "string"
}
},
{
"name": "LastName",
"type": "string",
"xdm": {
"type": "string"
}
},
{
"name": "Email",
"type": "string",
"xdm": {
"type": "string"
}
},
{
"name": "Phone",
"type": "string",
"xdm": {
"type": "string"
}
}
]
},
"data": [
{
"Email": "rsmith@abc.com",
"FirstName": "Richard",
"Phone": "111111111",
"Id": "12345",
"LastName": "Smith"
},
{
"Email": "morgan@bac.com",
"FirstName": "Morgan",
"Phone": "22222222222",
"Id": "67890",
"LastName": "Hart"
}
]
}
使用determineProperties
自动检测Data Landing Zone的文件属性信息
在进行GET调用以探索源的内容和结构时,可以使用determineProperties
参数自动检测Data Landing Zone文件内容的属性信息。
determineProperties
用例
下表概述了在使用determineProperties
查询参数或手动提供文件信息时可能会遇到的不同情况。
determineProperties
queryParams
determineProperties
作为查询参数提供,则进行文件属性检测,响应将返回新的properties
键,该键包括关于文件类型、压缩类型和列分隔符的信息。queryParams
的一部分手动提供,则它们将用于生成架构,并且相同的属性作为响应的一部分返回。API格式
GET /connectionSpecs/{CONNECTION_SPEC_ID}/explore?objectType=file&object={OBJECT}&fileType={FILE_TYPE}&preview={PREVIEW}&determineProperties=true
determineProperties
true
请求
curl -X GET \
'https://platform.adobe.io/data/foundation/flowservice/connectionSpecs/26f526f2-58f4-4712-961d-e41bf1ccc0e8/explore?objectType=file&object=dlz-user-container/garageWeek/file1&preview=true&determineProperties=true' \
-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}'
响应
成功的响应将返回查询文件的结构,包括文件名和数据类型,以及包含有关fileType
、compressionType
和columnDelimiter
信息的properties
键。
code language-json |
---|
|
properties.fileType
delimited
、json
和parquet
。properties.compressionType
用于查询文件的相应压缩类型。 支持的压缩类型包括:
bzip2
gzip
zipDeflate
tarGzip
tar
properties.columnDelimiter
(,)
。创建源连接
源连接创建和管理与摄取数据的外部源的连接。 源连接由数据源、数据格式和创建数据流所需的源连接ID等信息组成。 源连接实例特定于租户和组织。
要创建源连接,请向Flow Service API的/sourceConnections
端点发出POST请求。
API格式
POST /sourceConnections
请求
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": "Data Landing Zone source connection",
"data": {
"format": "delimited"
},
"params": {
"path": "dlz-user-container/data8.csv"
},
"connectionSpec": {
"id": "26f526f2-58f4-4712-961d-e41bf1ccc0e8",
"version": "1.0"
}
}'
name
data.format
params.path
connectionSpec.id
26f526f2-58f4-4712-961d-e41bf1ccc0e8
。响应
成功的响应返回新创建的源连接的唯一标识符(id
)。 在下一个教程中,创建数据流时需要此ID。
{
"id": "f5b46949-8c8d-4613-80cc-52c9c039e8b9",
"etag": "\"1400d460-0000-0200-0000-613be3520000\""
}
后续步骤
通过完成本教程,您已检索到Data Landing Zone凭据,探索了其文件结构以查找要带到Platform的文件,并创建了源连接以开始将您的数据带到Platform。 您现在可以继续下一教程,其中您将学习如何创建数据流以使用 Flow Service API将云存储数据引入平台。