Criar um fluxo de dados para fontes de comércio eletrônico usando a API Flow Service
Este tutorial aborda as etapas para recuperar dados de uma fonte de comércio eletrônico e trazê-los para a Platform usando a Flow Service API.
- Para criar um fluxo de dados, você já deve ter uma ID de conexão base válida com uma fonte de comércio eletrônico. Se você não tiver essa ID, consulte a visão geral das fontes para obter uma lista de fontes de comércio eletrônico com as quais você pode criar uma conexão base.
- Para Experience Platform assimilar dados, os fusos horários de todas as fontes de lote baseadas em tabela devem ser configurados como UTC.
Introdução
Este tutorial requer que você tenha uma compreensão funcional dos seguintes componentes do Adobe Experience Platform:
-
Experience Data Model (XDM) System: a estrutura padronizada pela qual o Experience Platform organiza os dados de experiência do cliente.
- Noções básicas sobre a composição de esquema: saiba mais sobre os blocos de construção básicos de esquemas XDM, incluindo princípios-chave e práticas recomendadas na composição de esquema.
- API do Registro de Esquema: saiba como executar chamadas para a API do Registro de Esquema com êxito. Isso inclui o
{TENANT_ID}
, o conceito de "contêineres" e os cabeçalhos necessários para fazer solicitações (com atenção especial ao cabeçalho Aceitar e seus valores possíveis).
-
Catalog Service: Catálogo é o sistema de registro para localização e linhagem de dados em Experience Platform.
-
Batch ingestion: a API de assimilação em lote permite assimilar dados em Experience Platform como arquivos em lote.
-
Sandboxes: Experience Platform fornece sandboxes virtuais que particionam uma única instância do Platform em ambientes virtuais separados para ajudar a desenvolver aplicativos de experiência digital.
Uso de APIs da plataforma
Para obter informações sobre como fazer chamadas para APIs da Platform com êxito, consulte o manual sobre introdução às APIs da Platform.
Criar uma conexão de origem source
Você pode criar uma conexão de origem fazendo uma solicitação POST para a API Flow Service. Uma conexão de origem consiste em uma ID de conexão, um caminho para o arquivo de dados de origem e uma ID de especificação de conexão.
Para criar uma conexão de origem, você também deve definir um valor de enumeração para o atributo de formato de dados.
Use os seguintes valores de enumeração para conectores baseados em arquivo:
delimited
json
parquet
Para todos os conectores baseados em tabela, defina o valor como tabular
.
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": "Shopify source connection",
"baseConnectionId": "582f4f8d-71e9-4a5c-a164-9d2056318d6c",
"description": "Shopify source connection",
"data": {
"format": "tabular"
},
"params": {
"tableName": "Shopify.Orders",
"columns": [
{
"name": "Email",
"type": "string"
},
{
"name": "Phone",
"type": "string"
},
]
},
"connectionSpec": {
"id": "4f63aa36-bd48-4e33-bb83-49fbcd11c708",
"version": "1.0"
}
}'
baseConnectionId
params.path
connectionSpec.id
Resposta
Uma resposta bem-sucedida retorna o identificador exclusivo (id
) da conexão de origem recém-criada. Essa ID é necessária nas etapas posteriores para criar uma conexão de destino.
{
"id": "c278ab14-acdf-440b-b67f-1265d15a7655",
"etag": "\"10007c3f-0000-0200-0000-5fa9be720000\""
}
Criar um esquema XDM de destino target-schema
Para que os dados de origem sejam usados na Platform, um esquema de destino deve ser criado para estruturar os dados de origem de acordo com suas necessidades. O esquema de destino é usado para criar um conjunto de dados da Platform no qual os dados de origem estão contidos.
Um esquema XDM de destino pode ser criado executando uma solicitação POST para a API do Registro de Esquema.
Para obter etapas detalhadas sobre como criar um esquema XDM de destino, consulte o tutorial sobre criação de um esquema usando a API.
Criar um conjunto de dados de destino target-dataset
Um conjunto de dados de destino pode ser criado por meio de uma solicitação POST para a API de Serviço de Catálogo, fornecendo a ID do esquema de destino na carga.
Para obter etapas detalhadas sobre como criar um conjunto de dados de destino, consulte o tutorial sobre criação de um conjunto de dados usando a API.
Criar uma conexão de destino target-connection
Uma conexão de destino representa a conexão com o destino onde os dados assimilados chegam. Para criar uma conexão de destino, você deve fornecer a ID de especificação da conexão fixa associada ao Data Lake. Esta ID de especificação de conexão é: c604ff05-7f1a-43c0-8e18-33bf874cb11c
.
Agora você tem os identificadores exclusivos, um esquema de destino, um conjunto de dados de destino e a ID de especificação da conexão para o data lake. Usando a API Flow Service, você pode criar uma conexão de destino especificando esses identificadores junto com o conjunto de dados que conterá os dados de origem de entrada.
Formato da API
POST /targetConnections
Solicitação
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": "Shopify target connection",
"description": "Shopify target connection",
"data": {
"format": "parquet_xdm",
"schema": {
"id": "https://ns.adobe.com/{TENANT_ID}/schemas/854ddc36ad2c7bd001f66a4392575ed4004f81883328772f",
"version": "application/vnd.adobe.xed-full-notext+json; version=1"
}
},
"params": {
"dataSetId": "5fa9c083de62e418dd170b42"
},
"connectionSpec": {
"id": "c604ff05-7f1a-43c0-8e18-33bf874cb11c",
"version": "1.0"
}
}'
data.schema.id
$id
do esquema XDM de destino.data.schema.version
application/vnd.adobe.xed-full+json;version=1
, que retorna a versão secundária mais recente do esquema.params.dataSetId
connectionSpec.id
c604ff05-7f1a-43c0-8e18-33bf874cb11c
.Resposta
Uma resposta bem-sucedida retorna o identificador exclusivo (id
) da nova conexão de destino. Esse valor é necessário em uma etapa posterior para criar um fluxo de dados.
{
"id": "6c0ba537-a96b-4d74-8c95-450eb88baee8",
"etag": "\"00005506-0000-0200-0000-5fa9c13c0000\""
}
Criar um mapeamento mapping
Para que os dados de origem sejam assimilados em um conjunto de dados de destino, eles devem primeiro ser mapeados para o esquema de destino ao qual o conjunto de dados de destino adere.
Para criar um conjunto de mapeamento, faça uma solicitação POST para o ponto de extremidade mappingSets
da Data Prep API enquanto fornece o esquema XDM de destino $id
e os detalhes dos conjuntos de mapeamento que deseja criar.
Formato da API
POST /mappingSets
Solicitação
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/854ddc36ad2c7bd001f66a4392575ed4004f81883328772f",
"xdmVersion": "1.0",
"id": null,
"mappings": [
{
"destinationXdmPath": "personalEmail.address",
"sourceAttribute": "Email",
"identity": false,
"version": 0
},
{
"destinationXdmPath": "mobilePhone.number",
"sourceAttribute": "Shipping_Address_Phone",
"identity": false,
"version": 0
}
]
}'
xdmSchema
$id
do esquema XDM de destino.Resposta
Uma resposta bem-sucedida retorna detalhes do mapeamento recém-criado, incluindo seu identificador exclusivo (id
). Essa ID é necessária em uma etapa posterior para criar um fluxo de dados.
{
"id": "22922102bffd4369b6209c102a604062",
"version": 0,
"createdDate": 1604960750613,
"modifiedDate": 1604960750613,
"createdBy": "{CREATED_BY}",
"modifiedBy": "{MODIFIED_BY}"
}
Pesquisar especificações de fluxo de dados specs
Um fluxo de dados é responsável por coletar dados de fontes e trazê-los para Platform. Para criar um fluxo de dados, você deve primeiro obter as especificações do fluxo de dados executando uma solicitação GET para a API Flow Service. As especificações de fluxo de dados são responsáveis pela coleta de dados de uma fonte de comércio eletrônico.
Formato da API
GET /flowSpecs?property=name=="CRMToAEP"
Solicitação
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}'
Resposta
Uma resposta bem-sucedida retorna os detalhes da especificação do fluxo de dados responsáveis por trazer os dados de sua origem para a Platform. A resposta inclui a especificação de fluxo exclusiva id
necessária para criar um novo fluxo de dados.
code language-json |
---|
|
Criar um fluxo de dados
A última etapa para coletar dados é criar um fluxo de dados. Nesse ponto, os seguintes valores obrigatórios devem ser preparados:
Um fluxo de dados é responsável por agendar e coletar dados de uma origem. Você pode criar um fluxo de dados executando uma solicitação POST enquanto fornece os valores mencionados anteriormente na carga da solicitação.
Para agendar uma assimilação, primeiro defina o valor da hora inicial como a época em segundos. Em seguida, defina o valor de frequência para uma das cinco opções: once
, minute
, hour
, day
ou week
. O valor do intervalo designa o período entre duas assimilações consecutivas e a criação de uma assimilação única não requer que um intervalo seja definido. Para todas as outras frequências, o valor do intervalo deve ser definido como igual ou maior que 15
.
Formato da API
POST /flows
Solicitação
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": "Test Shopify dataflow",
"description": "Shopify With mapping ingestion",
"flowSpec": {
"id": "14518937-270c-4525-bdec-c2ba7cce3860",
"version": "1.0"
},
"sourceConnectionIds": [
"c278ab14-acdf-440b-b67f-1265d15a7655"
],
"targetConnectionIds": [
"6c0ba537-a96b-4d74-8c95-450eb88baee8"
],
"transformations": [
{
"name": "Mapping",
"params": {
"mappingId": "22922102bffd4369b6209c102a604062",
"mappingVersion": 0
}
}
],
"scheduleParams": {
"startTime": "1604961070",
"frequency": "once"
}
}'
flowSpec.id
sourceConnectionIds
targetConnectionIds
transformations.params.mappingId
transformations.params.mappingId
scheduleParams.startTime
scheduleParams.frequency
frequency
em que o fluxo de dados coletará dados. Os valores aceitáveis incluem: once
, minute
, hour
, day
ou week
.scheduleParams.interval
O intervalo designa o período entre duas execuções de fluxo consecutivas. O valor do intervalo deve ser um inteiro diferente de zero. O valor mínimo de intervalo aceito para cada frequência é o seguinte:
- Uma vez: n/d
- Minuto: 15
- Hora: 1
- Dia: 1
- Semana: 1
Resposta
Uma resposta bem-sucedida retorna a ID id
do fluxo de dados recém-criado.
{
"id": "20c115bc-46e3-40f3-bfe9-fb25abe4ba76",
"etag": "\"030018cb-0000-0200-0000-5fa9c31a0000\""
}
Monitorar seu fluxo de dados
Depois que o fluxo de dados for criado, você poderá monitorar os dados que estão sendo assimilados por meio dele para ver informações sobre execuções de fluxo, status de conclusão e erros. Para obter mais informações sobre como monitorar fluxos de dados, consulte o tutorial sobre monitoramento de fluxos de dados na API
Próximas etapas
Ao seguir este tutorial, você criou um conector de origem para coletar dados de comércio eletrônico de forma programada. Os dados de entrada agora podem ser usados por serviços Platform downstream, como Real-Time Customer Profile e Data Science Workspace. Consulte os seguintes documentos para obter mais detalhes: