Conectar Data Landing Zone ao Adobe Experience Platform usando a API do Serviço de Fluxo
O Data Landing Zone é um recurso de armazenamento de arquivos seguro e baseado em nuvem para trazer arquivos para a Adobe Experience Platform. Os dados são excluídos automaticamente do Data Landing Zone após sete dias.
Este tutorial o guiará pelas etapas sobre como criar uma conexão de origem Data Landing Zone usando a Flow Service API. Este tutorial também fornece instruções sobre como recuperar o Data Landing Zone, bem como visualizar e atualizar suas credenciais.
Introdução
Este guia requer entendimento prático dos seguintes componentes do Experience Platform:
- Fontes: o Experience Platform permite que os dados sejam assimilados de várias fontes e, ao mesmo tempo, fornece a capacidade de estruturar, rotular e aprimorar os dados recebidos usando os serviços da plataforma.
- Sandboxes: o Experience Platform fornece sandboxes virtuais que particionam uma única instância da Platform em ambientes virtuais separados para ajudar a desenvolver aplicativos de experiência digital.
As seções a seguir fornecem informações adicionais que você precisará saber para criar com êxito uma conexão de origem do Data Landing Zone usando a API Flow Service.
Este tutorial também requer que você leia o guia sobre introdução às APIs da plataforma para saber como autenticar nas APIs da plataforma e interpretar as chamadas de exemplo fornecidas na documentação.
Recuperar uma zona de destino utilizável
A primeira etapa no uso de APIs para acessar o Data Landing Zone é fazer uma solicitação GET para o ponto de extremidade /landingzone
da API Connectors e, ao mesmo tempo, fornecer type=user_drop_zone
como parte do cabeçalho da sua solicitação.
Formato da API
GET /data/foundation/connectors/landingzone?type=user_drop_zone
user_drop_zone
user_drop_zone
permite que a API diferencie um contêiner de zona de aterrissagem dos outros tipos de contêineres disponíveis para você.Solicitação
A solicitação a seguir recupera uma zona de aterrissagem existente.
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'
Resposta
A resposta a seguir retorna informações sobre uma zona de aterrissagem, incluindo seus containerName
e containerTTL
correspondentes.
{
"containerName": "dlz-user-container",
"containerTTL": "7"
}
containerName
containerTTL
Recuperar credenciais de Data Landing Zone
Para recuperar credenciais para Data Landing Zone, faça uma solicitação GET para o ponto de extremidade /credentials
da API Connectors.
Formato da API
GET /data/foundation/connectors/landingzone/credentials?type=user_drop_zone
Solicitação
O exemplo de solicitação a seguir recupera credenciais para uma zona de aterrissagem existente.
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' \
Resposta
A resposta a seguir retorna as informações de credencial da sua zona de aterrissagem de dados, incluindo sua SASToken
, SASUri
, storageAccountName
e data de expiração atuais.
{
"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
Recuperar os campos obrigatórios usando APIs
Após gerar o token, é possível recuperar os campos obrigatórios programaticamente usando os exemplos de solicitação abaixo:
code language-py |
---|
|
code language-java |
---|
|
Atualizar credenciais de Data Landing Zone
Você pode atualizar seu SASToken
fazendo uma solicitação POST para o ponto de extremidade /credentials
da API Connectors.
Formato da API
POST /data/foundation/connectors/landingzone/credentials?type=user_drop_zone&action=refresh
user_drop_zone
user_drop_zone
permite que a API diferencie um contêiner de zona de aterrissagem dos outros tipos de contêineres disponíveis para você.refresh
refresh
permite redefinir suas credenciais de zona de aterrissagem e gerar automaticamente um novo SASToken
.Solicitação
A solicitação a seguir atualiza suas credenciais de zona de aterrissagem.
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' \
Resposta
A resposta a seguir retorna valores atualizados para o(a) SASToken
e 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"
}
Explorar a estrutura e o conteúdo do arquivo de zona de aterrissagem
Você pode explorar a estrutura de arquivos e o conteúdo da sua zona de destino fazendo uma solicitação GET para o ponto de extremidade connectionSpecs
da API Flow Service.
Formato da API
GET /connectionSpecs/{CONNECTION_SPEC_ID}/explore?objectType=root
{CONNECTION_SPEC_ID}
26f526f2-58f4-4712-961d-e41bf1ccc0e8
.Solicitação
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}'
Resposta
Uma resposta bem-sucedida retorna uma matriz de arquivos e pastas encontrados no diretório consultado. Anote a propriedade path
do arquivo que deseja carregar, pois você deverá fornecê-la na próxima etapa para inspecionar sua estrutura.
[
{
"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
}
]
Visualizar estrutura e conteúdo do arquivo de zona de aterrissagem
Para inspecionar a estrutura de um arquivo na zona de destino, execute uma solicitação GET enquanto fornece o caminho e o tipo do arquivo como um parâmetro de consulta.
Formato da 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
Solicitação
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}'
Resposta
Uma resposta bem-sucedida retorna a estrutura do arquivo consultado, incluindo nomes de arquivo e tipos de dados.
{
"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"
}
]
}
Use determineProperties
para detectar automaticamente informações de propriedade de arquivo de um Data Landing Zone
Você pode usar o parâmetro determineProperties
para detectar automaticamente informações de propriedade do conteúdo do arquivo de seu Data Landing Zone ao fazer uma chamada GET para explorar o conteúdo e a estrutura de sua origem.
determineProperties
casos de uso
A tabela a seguir descreve os diferentes cenários que você pode encontrar ao usar o parâmetro de consulta determineProperties
ou ao fornecer informações manualmente sobre o arquivo.
determineProperties
queryParams
determineProperties
for fornecido como um parâmetro de consulta, ocorrerá a detecção das propriedades do arquivo e a resposta retornará uma nova chave properties
que inclui informações sobre tipo de arquivo, tipo de compactação e delimitador de coluna.queryParams
, eles serão usados para gerar o esquema e as mesmas propriedades serão retornadas como parte da resposta.Formato da API
GET /connectionSpecs/{CONNECTION_SPEC_ID}/explore?objectType=file&object={OBJECT}&fileType={FILE_TYPE}&preview={PREVIEW}&determineProperties=true
determineProperties
true
Solicitação
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}'
Resposta
Uma resposta bem-sucedida retorna a estrutura do arquivo consultado, incluindo nomes de arquivos e tipos de dados, bem como uma chave properties
, contendo informações sobre fileType
, compressionType
e columnDelimiter
.
code language-json |
---|
|
properties.fileType
delimited
, json
e parquet
.properties.compressionType
O tipo de compactação correspondente usado para o arquivo consultado. Os tipos de compactação compatíveis são:
bzip2
gzip
zipDeflate
tarGzip
tar
properties.columnDelimiter
(,)
.Criar uma conexão de origem
Uma conexão de origem cria e gerencia a conexão com a origem externa de onde os dados são assimilados. Uma conexão de origem consiste em informações como fonte de dados, formato de dados e a ID da conexão de origem necessária para criar um fluxo de dados. Uma instância de conexão de origem é específica para um locatário e uma organização.
Para criar uma conexão de origem, faça uma solicitação POST para o ponto de extremidade /sourceConnections
da API Flow Service.
Formato da API
POST /sourceConnections
Solicitação
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
.Resposta
Uma resposta bem-sucedida retorna o identificador exclusivo (id
) da conexão de origem recém-criada. Essa ID é necessária no próximo tutorial para criar um fluxo de dados.
{
"id": "f5b46949-8c8d-4613-80cc-52c9c039e8b9",
"etag": "\"1400d460-0000-0200-0000-613be3520000\""
}
Próximas etapas
Seguindo este tutorial, você recuperou as credenciais do Data Landing Zone, explorou a estrutura do arquivo para encontrar o arquivo que deseja trazer para a Platform e criou uma conexão de origem para começar a trazer seus dados para a Platform. Agora você pode prosseguir para o próximo tutorial, onde aprenderá a criar um fluxo de dados para trazer dados de armazenamento na nuvem para a Platform usando a Flow Service API.