O Mixpanel A fonte está em beta. Consulte a visão geral das fontes para obter mais informações sobre o uso de fontes com rótulo beta.
O tutorial a seguir o orienta pelas etapas para criar uma conexão de origem e um fluxo de dados para trazer Mixpanel dados para a Adobe Experience Platform usando a variável API de Serviço de Fluxo.
Este guia requer uma compreensão funcional dos seguintes componentes do Experience Platform:
As seções a seguir fornecem informações adicionais que você precisará saber para se conectar com êxito ao Mixpanel usando o Flow Service API.
Para se conectar Mixpanel para Plataforma, você deve fornecer valores para as seguintes propriedades de conexão:
Credencial | Descrição | Exemplo |
---|---|---|
host |
O Mixpanel endpoint da API de exportação de dados brutos. Consulte a Raw Data Export API na seção Documentação de referência da API do Mixpanel para obter mais informações. | https://data.mixpanel.com |
username |
O nome de usuário da conta de serviço que corresponde a sua Mixpanel conta. Consulte a Mixpanel documentação das contas de serviço para obter mais informações. | Test8.6d4ee7.mp-service-account |
password |
A senha da conta de serviço que corresponde ao seu Mixpanel conta. | dLlidiKHpCZtJhQDyN2RECKudMeTItX1 |
projectId |
Seu Mixpanel ID do projeto. Essa ID é necessária para criar uma conexão de origem. Consulte a Mixpanel documentação de configurações do projeto e Mixpanel guia sobre criação e gestão de projetos para obter mais informações. | 2384945 |
timezone |
O fuso horário que corresponde a Mixpanel projeto. O fuso horário é necessário para criar uma conexão de origem. Consulte a Documentação de configurações do projeto Mixpanel para obter mais informações. | Pacific Standard Time |
Para obter mais informações sobre como autenticar seu Mixpanel na fonte, consulte o Mixpanel visão geral da fonte.
Uma conexão base retém informações entre a fonte e a Plataforma, incluindo as credenciais de autenticação da fonte, o estado atual da conexão e a ID de conexão base exclusiva. A ID de conexão básica permite explorar e navegar pelos arquivos da fonte e identificar os itens específicos que deseja assimilar, incluindo informações sobre os tipos e formatos de dados.
Para criar uma ID de conexão base, faça uma solicitação de POST para a variável /connections
endpoint enquanto fornece seu Mixpanel credenciais de autenticação como parte do corpo da solicitação.
Formato da API
POST /connections
Solicitação
A solicitação a seguir cria uma conexão base para Mixpanel:
curl -X POST \
'https://platform.adobe.io/data/foundation/flowservice/connections' \
-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": "Mixpanel base connection",
"description": "Mixpanel base connection to authenticate to Platform",
"connectionSpec": {
"id": "fd2c8ff3-1de0-4f6b-8fa8-4264784870eb",
"version": "1.0"
},
"auth": {
"specName": "Basic Authentication",
"params": {
"host": "https://data.mixpanel.com",
"username": "{USERNAME}",
"password": "{PASSWORD}"
}
}
}'
Propriedade | Descrição |
---|---|
name |
O nome da sua conexão básica. Certifique-se de que o nome da sua conexão base seja descritivo, pois você pode usá-lo para pesquisar informações sobre a sua conexão base. |
description |
Um valor opcional que pode ser incluído para fornecer mais informações sobre a sua conexão básica. |
connectionSpec.id |
A ID de especificação de conexão da sua origem. Essa ID pode ser recuperada depois que a fonte é registrada e aprovada por meio do Flow Service API. |
auth.specName |
O tipo de autenticação que você está usando para autenticar sua origem na Plataforma. |
auth.params. |
Contém as credenciais necessárias para autenticar sua fonte. |
auth.params.host |
O domínio exclusivo específico da sua conta criado durante o processo de registro. |
auth.params.username |
O nome de usuário que corresponde a sua Mixpanel conta. |
auth.params.password |
A senha que corresponde ao seu Mixpanel conta. |
Resposta
Uma resposta bem-sucedida retorna a conexão base recém-criada, incluindo seu identificador de conexão exclusivo (id
). Essa ID é necessária para explorar a estrutura e o conteúdo do arquivo da sua origem na próxima etapa.
{
"id": "70383d02-2777-4be7-a309-9dd6eea1b46d",
"etag": "\"d64c8298-add4-4667-9a49-28195b2e2a84\""
}
Usando a ID de conexão básica gerada na etapa anterior, você pode explorar arquivos e diretórios executando solicitações do GET.
Use as chamadas a seguir para encontrar o caminho do arquivo que deseja trazer para o Experience Platform:
Formato da API
GET /connections/{BASE_CONNECTION_ID}/explore?objectType=rest&object={OBJECT}&fileType={FILE_TYPE}&preview={PREVIEW}&sourceParams={SOURCE_PARAMS}
Ao executar solicitações do GET para explorar a estrutura de arquivos e o conteúdo de sua origem, você deve incluir os parâmetros de consulta listados na tabela abaixo:
Parâmetro | Descrição |
---|---|
{BASE_CONNECTION_ID} |
A ID de conexão básica gerada na etapa anterior. |
objectType=rest |
O tipo de objeto que você deseja explorar. No momento, esse valor está sempre definido como rest . |
{OBJECT} |
Esse parâmetro é necessário somente ao visualizar um diretório específico. Seu valor representa o caminho do diretório que você deseja explorar. Para essa fonte, o valor seria json . |
fileType=json |
O tipo de arquivo do arquivo que você deseja trazer para a plataforma. Atualmente, json é o único tipo de arquivo compatível. |
{PREVIEW} |
Um valor booleano que define se o conteúdo da conexão suporta pré-visualização. |
{SOURCE_PARAMS} |
Define parâmetros para o arquivo de origem que deseja trazer para a Plataforma. Para recuperar o tipo de formato aceito para {SOURCE_PARAMS} , você deve codificar o todo {"projectId":"2671127","timezone":"Pacific Standard Time"} string em base64. Observação: No exemplo abaixo, "{"projectId":"2671127","timezone":"Pacific Standard Time"}" codificado em base64 é igual a eyJwcm9qZWN0SWQiOiIyNjcxMTI3IiwidGltZXpvbmUiOiJQYWNpZmljIFN0YW5kYXJkIFRpbWUifQ== . |
Solicitação
curl -X GET \
'https://platform.adobe.io/data/foundation/flowservice/connections/70383d02-2777-4be7-a309-9dd6eea1b46d/explore?objectType=rest&object=json&fileType=json&preview=true&sourceParams=eyJsaXN0SWQiOiIxMGMwOTdjYTcxIn0=' \
-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.
{
"format": "hierarchical",
"schema": {
"type": "object",
"properties": {
"event": {
"type": "string"
},
"properties": {
"type": "object",
"properties": {
"$mp_api_endpoint": {
"type": "string"
},
"$insert_id": {
"type": "string"
},
"item_id": {
"type": "string"
},
"distinct_id": {
"type": "string"
},
"$mp_api_timestamp_ms": {
"type": "integer",
"minimum": -9007199254740992,
"maximum": 9007199254740991
},
"item_price": {
"type": "string"
},
"$import": {
"type": "boolean"
},
"item_name": {
"type": "string"
},
"time": {
"type": "integer",
"minimum": -9007199254740992,
"maximum": 9007199254740991
},
"mp_processing_time_ms": {
"type": "integer",
"minimum": -9007199254740992,
"maximum": 9007199254740991
}
}
}
}
},
"data": [
{
"event": "Items purchased",
"properties": {
"time": 1652825148,
"distinct_id": "test@test.com",
"$insert_id": "935d87b1-00cd-41b7-be34-b9d98dd08b70",
"$mp_api_endpoint": "api.mixpanel.com",
"$mp_api_timestamp_ms": 1652850348643,
"item_id": "29066",
"item_name": "charger",
"item_price": "800.00",
"mp_processing_time_ms": 1652850348702
}
},
{
"event": "Items sold",
"properties": {
"time": 1652423938,
"distinct_id": "test@test.com",
"$insert_id": "935d87b1-00cd-41b7-be34-b9d98dd08b70",
"$mp_api_endpoint": "api.mixpanel.com",
"$mp_api_timestamp_ms": 1652449138115,
"item_id": "29036",
"item_name": "chair",
"item_price": "5000.00",
"mp_processing_time_ms": 1652449138173
}
},
{
"event": "Items sold",
"properties": {
"time": 1652854256,
"distinct_id": "test@test.com",
"$insert_id": "935d87b1-00cd-41b7-be34-b9d98dd08b70",
"$mp_api_endpoint": "api.mixpanel.com",
"$mp_api_timestamp_ms": 1652879456538,
"item_id": "29066",
"item_name": "mobile",
"item_price": "7000.00",
"mp_processing_time_ms": 1652879456604
}
},
{
"event": "Sign off",
"properties": {
"time": 1648140611,
"distinct_id": "test@test.com",
"$insert_id": "935d87b1-00cd-41b7-be34-b9d98dd08b75",
"$mp_api_endpoint": "api.mixpanel.com",
"$mp_api_timestamp_ms": 1648555709515,
"item_id": "29073",
"item_name": "Watch",
"item_price": "50000.00",
"mp_processing_time_ms": 1648555710375
}
},
{
"event": "Items sold",
"properties": {
"time": 1648140612,
"distinct_id": "test@test.com",
"$insert_id": "935d87b1-00cd-41b7-be34-b9d98dd08b75",
"$mp_api_endpoint": "api.mixpanel.com",
"$mp_api_timestamp_ms": 1648556481708,
"item_id": "29073",
"item_name": "Pen",
"item_price": "1000.00",
"mp_processing_time_ms": 1648556481880
}
},
{
"event": "Sign in",
"properties": {
"time": 1648140614,
"distinct_id": "test1@test.com",
"$import": true,
"$insert_id": "935d87b1-00cd-41b7-be34-b9d98dd08b75",
"$mp_api_endpoint": "api.mixpanel.com",
"$mp_api_timestamp_ms": 1648556032401,
"item_id": "29073",
"item_name": "Watch",
"item_price": "50000.00",
"mp_processing_time_ms": 1648556032462
}
},
{
"event": "Item Purchased",
"properties": {
"time": 1648165814,
"distinct_id": "test1@test.com",
"$insert_id": "935d87b1-00cd-41b7-be34-b9d98dd08b74",
"$mp_api_endpoint": "api.mixpanel.com",
"$mp_api_timestamp_ms": 1648480684785,
"item_id": "29073",
"item_name": "Watch",
"item_price": "50000.00",
"mp_processing_time_ms": 1648480685058
}
},
{
"event": "Item Purchased",
"properties": {
"time": 1648165814,
"distinct_id": "test1@test.com",
"$insert_id": "935d87b1-00cd-41b7-be34-b9d98dd08b75",
"$mp_api_endpoint": "api.mixpanel.com",
"$mp_api_timestamp_ms": 1648551687866,
"item_id": "29073",
"item_name": "Watch",
"item_price": "50000.00",
"mp_processing_time_ms": 1648551687922
}
},
{
"event": "Sign off",
"properties": {
"time": 1648530419,
"distinct_id": "test1@test.com",
"$insert_id": "935d87b1-00cd-41b7-be34-b9d98dd08b75",
"$mp_api_endpoint": "api.mixpanel.com",
"$mp_api_timestamp_ms": 1648555619274,
"item_id": "29073",
"item_name": "Watch",
"item_price": "50000.00",
"mp_processing_time_ms": 1648555619326
}
},
{
"event": "Items sold",
"properties": {
"time": 1648566534,
"distinct_id": "test1@test.com",
"$import": true,
"$insert_id": "935d87b1-00cd-41b7-be34-b9d98dd08b75",
"$mp_api_endpoint": "api.mixpanel.com",
"$mp_api_timestamp_ms": 1648635830114,
"item_id": "29073",
"item_name": "Pen",
"item_price": "1000.00",
"mp_processing_time_ms": 1648635831010
}
}
]
}
Você pode criar uma conexão de origem fazendo uma solicitação de POST para o Flow Service API. 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.
Formato da API
POST /sourceConnections
Solicitação
A solicitação a seguir cria uma conexão de origem para Mixpanel:
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": "Mixpanel source connection",
"description": "Mixpanel source connection",
"baseConnectionId": "70383d02-2777-4be7-a309-9dd6eea1b46d",
"connectionSpec": {
"id": "fd2c8ff3-1de0-4f6b-8fa8-4264784870eb",
"version": "1.0"
},
"data": {
"format": "json"
},
"params": {
"projectId": "{PROJECT_ID}",
"timezone": "{TIMEZONE}"
}
}'
Propriedade | Descrição |
---|---|
name |
O nome da sua conexão de origem. Certifique-se de que o nome da conexão de origem seja descritivo, pois você pode usá-lo para pesquisar informações sobre a conexão de origem. |
description |
Um valor opcional que pode ser incluído para fornecer mais informações sobre a conexão de origem. |
baseConnectionId |
A ID de conexão básica de Mixpanel. Essa ID foi gerada em uma etapa anterior. |
connectionSpec.id |
A ID da especificação de conexão que corresponde à sua origem. |
data.format |
O formato do Mixpanel dados que você deseja assimilar. Atualmente, o único formato de dados compatível é json . |
params.projectId |
Seu Mixpanel ID do projeto. |
params.timezone |
O fuso horário de seu Mixpanel projeto. |
Resposta
Uma resposta bem-sucedida retorna o identificador exclusivo (id
) da conexão de origem recém-criada. Essa ID é necessária em uma etapa posterior para criar um fluxo de dados.
{
"id": "246d052c-da4a-494a-937f-a0d17b1c6cf5",
"etag": "\"712a8c08-fda7-41c2-984b-187f823293d8\""
}
Para que os dados de origem sejam usados na Platform, um schema de target deve ser criado para estruturar os dados de origem de acordo com suas necessidades. O schema de destino é usado para criar um conjunto de dados da plataforma no qual os dados de origem estão contidos.
Um esquema XDM de destino pode ser criado executando-se uma solicitação de POST para a API do Registro de Schema.
Para obter etapas detalhadas sobre como criar um esquema XDM de destino, consulte o tutorial em criação de um schema usando a API.
Um conjunto de dados de destino pode ser criado executando uma solicitação de POST para a API do Serviço de catálogo, fornecendo a ID do schema do target no payload.
Para obter etapas detalhadas sobre como criar um conjunto de dados de destino, consulte o tutorial em criação de um conjunto de dados usando a API.
Uma conexão de destino representa a conexão com o destino onde os dados assimilados devem ser armazenados. Para criar uma conexão de destino, você deve fornecer a ID de especificação de conexão fixa que corresponde ao lago de dados. Essa ID é: c604ff05-7f1a-43c0-8e18-33bf874cb11c
.
Agora você tem os identificadores exclusivos em um esquema de destino em um conjunto de dados de destino e a ID de especificação de conexão no lago de dados. Usando esses identificadores, você pode criar uma conexão de target usando o Flow Service API para especificar o conjunto de dados que conterá os dados de origem de entrada.
Formato da API
POST /targetConnections
Solicitação
A solicitação a seguir cria uma conexão de destino para Mixpanel:
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": "{Mixpanel} Target Connection",
"description": "{Mixpanel} Target Connection",
"connectionSpec": {
"id": "fd2c8ff3-1de0-4f6b-8fa8-4264784870eb",
"version": "1.0"
},
"data": {
"format": "json"
},
"params": {
"dataSetId": "5ef4551c52e054191a61a99f"
}
}'
Propriedade | Descrição |
---|---|
name |
O nome da conexão de destino. Certifique-se de que o nome da conexão de destino seja descritivo, pois você pode usá-lo para pesquisar informações sobre a conexão de destino. |
description |
Um valor opcional que pode ser incluído para fornecer mais informações sobre a conexão de destino. |
connectionSpec.id |
A ID da especificação de conexão que corresponde ao lago de dados. Essa ID fixa é: fd2c8ff3-1de0-4f6b-8fa8-4264784870eb . |
data.format |
O formato do Mixpanel dados que você deseja trazer para a plataforma. |
params.dataSetId |
A ID do conjunto de dados de destino recuperada em uma etapa anterior. |
Resposta
Uma resposta bem-sucedida retorna o identificador exclusivo da nova conexão de destino (id
). Essa ID é necessária em etapas posteriores.
{
"id": "7c96c827-3ffd-460c-a573-e9558f72f263",
"etag": "\"a196f685-f5e8-4c4c-bfbd-136141bb0c6d\""
}
Para que os dados de origem sejam assimilados em um conjunto de dados de destino, eles devem primeiro ser mapeados para o schema de destino ao qual o conjunto de dados de destino adere. Isso é feito executando uma solicitação POST para Data Prep API com mapeamentos de dados definidos na carga da solicitação.
Formato da API
POST /conversion/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/995dabbea86d58e346ff91bd8aa741a9f36f29b1019138d4",
"xdmVersion": "1.0",
"id": null,
"mappings": [
{
"sourceType": "ATTRIBUTE",
"source": "data.distinct_id",
"destination": "_extconndev.distinct_id",
"name": "distinct_id",
"description": "Mixpanel"
},
{
"sourceType": "ATTRIBUTE",
"source": "data.event_name",
"destination": "_extconndev.event_name"
},
{
"sourceType": "ATTRIBUTE",
"source": "data.import",
"destination": "_extconndev.import"
},
{
"sourceType": "ATTRIBUTE",
"source": "data.insert_id",
"destination": "_extconndev.insert_id"
},
{
"sourceType": "ATTRIBUTE",
"source": "data.item_id",
"destination": "_extconndev.item_id"
},
{
"sourceType": "ATTRIBUTE",
"source": "data.item_name",
"destination": "_extconndev.item_name"
},
{
"sourceType": "ATTRIBUTE",
"source": "data.item_price",
"destination": "_extconndev.item_price"
},
{
"sourceType": "ATTRIBUTE",
"source": "data.mp_api_endpoint",
"destination": "_extconndev.mp_api_endpoint"
},
{
"sourceType": "ATTRIBUTE",
"source": "data.mp_api_timestamp_ms",
"destination": "_extconndev.mp_api_timestamp_ms"
},
{
"sourceType": "ATTRIBUTE",
"source": "data.mp_processing_time_ms",
"destination": "_extconndev.mp_processing_time_ms"
},
{
"sourceType": "ATTRIBUTE",
"source": "data.time",
"destination": "_extconndev.time"
}
]
}'
Propriedade | Descrição |
---|---|
xdmSchema |
A ID do esquema XDM de destino gerado em uma etapa anterior. |
mappings.destinationXdmPath |
O caminho XDM de destino para o qual o atributo de origem está sendo mapeado. |
mappings.sourceAttribute |
O atributo de origem que precisa ser mapeado para um caminho XDM de destino. |
mappings.identity |
Um valor booleano que designa se o conjunto de mapeamento será marcado para Identity Service. |
Resposta
Uma resposta bem-sucedida retorna detalhes do mapeamento recém-criado, incluindo seu identificador exclusivo (id
). Esse valor é necessário em uma etapa posterior para criar um fluxo de dados.
{
"id": "bf5286a9c1ad4266baca76ba3adc9366",
"version": 0,
"createdDate": 1597784069368,
"modifiedDate": 1597784069368,
"createdBy": "{CREATED_BY}",
"modifiedBy": "{MODIFIED_BY}"
}
O último passo para trazer dados do Mixpanel para Platform é criar um fluxo de dados. Por enquanto, você terá os seguintes valores obrigatórios preparados:
Um fluxo de dados é responsável por agendar e coletar dados de uma fonte. Você pode criar um fluxo de dados executando uma solicitação de POST e, ao mesmo tempo, fornecendo os valores mencionados anteriormente dentro da carga útil.
Para agendar uma assimilação, primeiro defina o valor de hora de início como época em segundos. Em seguida, você deve definir 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 ingestões consecutivas, no entanto, a criação de uma ingestão única não requer a definição de um intervalo. Para todas as outras frequências, o valor do intervalo deve ser definido como igual ou superior a 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": "{Mixpanel} dataflow",
"description": "{Mixpanel} dataflow",
"flowSpec": {
"id": "6499120c-0b15-42dc-936e-847ea3c24d72",
"version": "1.0"
},
"sourceConnectionIds": [
"246d052c-da4a-494a-937f-a0d17b1c6cf5"
],
"targetConnectionIds": [
"7c96c827-3ffd-460c-a573-e9558f72f263"
],
"transformations": [
{
"name": "Mapping",
"params": {
"mappingId": "bf5286a9c1ad4266baca76ba3adc9366",
"mappingVersion": "0"
}
}
],
"scheduleParams": {
"startTime": "1625040887",
"frequency": "minute",
"interval": 15
}
}'
Propriedade | Descrição |
---|---|
name |
O nome do seu fluxo de dados. Certifique-se de que o nome do seu fluxo de dados seja descritivo, pois você pode usá-lo para pesquisar informações no seu fluxo de dados. |
description |
Um valor opcional que pode ser incluído para fornecer mais informações sobre o fluxo de dados. |
flowSpec.id |
A ID de especificação de fluxo necessária para criar um fluxo de dados. Essa ID fixa é: 6499120c-0b15-42dc-936e-847ea3c24d72 . |
flowSpec.version |
A versão correspondente da ID de especificação de fluxo. Esse valor assume como padrão 1.0 . |
sourceConnectionIds |
O ID de conexão de origem gerado em uma etapa anterior. |
targetConnectionIds |
O target connection ID gerado em uma etapa anterior. |
transformations |
Essa propriedade contém as várias transformações necessárias para serem aplicadas aos seus dados. Essa propriedade é necessária ao trazer dados não compatíveis com XDM para a plataforma. |
transformations.name |
O nome atribuído à transformação. |
transformations.params.mappingId |
O ID de mapeamento gerado em uma etapa anterior. |
transformations.params.mappingVersion |
A versão correspondente da ID de mapeamento. Esse valor assume como padrão 0 . |
scheduleParams.startTime |
Essa propriedade contém informações sobre o agendamento de assimilação do fluxo de dados. |
scheduleParams.frequency |
A frequência com 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 consecutivas de fluxo. O valor do intervalo deve ser um número inteiro diferente de zero. O intervalo não é necessário quando a frequência é definida como once e deve ser maior que ou igual a 15 para outros valores de frequência. |
Resposta
Uma resposta bem-sucedida retorna a ID (id
) do fluxo de dados recém-criado. Você pode usar essa ID para monitorar, atualizar ou excluir seu fluxo de dados.
{
"id": "993f908f-3342-4d9c-9f3c-5aa9a189ca1a",
"etag": "\"510bb1d4-8453-4034-b991-ab942e11dd8a\""
}
Depois que o fluxo de dados tiver sido 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.
Formato da API
GET /runs?property=flowId=={FLOW_ID}
Solicitação
A solicitação a seguir recupera as especificações de um fluxo de dados existente.
curl -X GET \
'https://platform.adobe.io/data/foundation/flowservice/runs?property=flowId==993f908f-3342-4d9c-9f3c-5aa9a189ca1a' \
-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 detalhes sobre a execução do fluxo, incluindo informações sobre a data de criação, as conexões de origem e de destino, bem como o identificador exclusivo da execução do fluxo (id
).
{
"items": [
{
"createdAt": 1596656079576,
"updatedAt": 1596656113526,
"createdBy": "{CREATED_BY}",
"updatedBy": "{UPDATED_BY}",
"createdClient": "{CREATED_CLIENT}",
"updatedClient": "{UPDATED_CLIENT}",
"sandboxId": "1bd86660-c5da-11e9-93d4-6d5fc3a66a8e",
"sandboxName": "prod",
"id": "9830305a-985f-47d0-b030-5a985fd7d004",
"flowId": "993f908f-3342-4d9c-9f3c-5aa9a189ca1a",
"etag": "\"510bb1d4-8453-4034-b991-ab942e11dd8a\"",
"metrics": {
"durationSummary": {
"startedAtUTC": 1596656058198,
"completedAtUTC": 1596656113306
},
"sizeSummary": {
"inputBytes": 24012,
"outputBytes": 17128
},
"recordSummary": {
"inputRecordCount": 100,
"outputRecordCount": 99,
"failedRecordCount": 1
},
"fileSummary": {
"inputFileCount": 1,
"outputFileCount": 1,
"activityRefs": [
"promotionActivity"
]
},
"statusSummary": {
"status": "success",
"errors": [
{
"code": "CONNECTOR-2001-500",
"message": "Error occurred at promotion activity."
}
],
"activityRefs": [
"promotionActivity"
]
}
},
"activities": [
{
"id": "copyActivity",
"updatedAtUTC": 1596656095088,
"durationSummary": {
"startedAtUTC": 1596656058198,
"completedAtUTC": 1596656089650,
"extensions": {
"windowStart": 1596653708000,
"windowEnd": 1596655508000
}
},
"sizeSummary": {
"inputBytes": 24012,
"outputBytes": 24012
},
"recordSummary": {},
"fileSummary": {
"inputFileCount": 1,
"outputFileCount": 1
},
"statusSummary": {
"status": "success",
"extensions": {
"type": "one-time"
}
},
"sourceInfo": [
{
"id": "c0e18602-f9ea-44f9-a186-02f9ea64f9ac",
"type": "SourceConnection",
"reference": {
"type": "AdfRunId",
"ids": [
"8a8eb0cc-e283-4605-ac70-65a5adb1baef"
]
}
}
]
},
{
"id": "promotionActivity",
"updatedAtUTC": 1596656113485,
"durationSummary": {
"startedAtUTC": 1596656095333,
"completedAtUTC": 1596656113306
},
"sizeSummary": {
"inputBytes": 24012,
"outputBytes": 17128
},
"recordSummary": {
"inputRecordCount": 100,
"outputRecordCount": 99,
"failedRecordCount": 1
},
"fileSummary": {
"inputFileCount": 2,
"outputFileCount": 1,
"extensions": {
"manifest": {
"fileInfo": "https://platform.adobe.io/data/foundation/export/batches/01EF01X41KJD82Y9ZX6ET54PCZ/meta?path=input_files"
}
}
},
"statusSummary": {
"status": "success",
"errors": [
{
"code": "CONNECTOR-2001-500",
"message": "Error occurred at promotion activity."
}
],
"extensions": {
"manifest": {
"failedRecords": "https://platform.adobe.io/data/foundation/export/batches/01EF01X41KJD82Y9ZX6ET54PCZ/meta?path=row_errors",
"sampleErrors": "https://platform.adobe.io/data/foundation/export/batches/01EF01X41KJD82Y9ZX6ET54PCZ/meta?path=row_error_samples.json"
},
"errors": [
{
"code": "INGEST-1212-400",
"message": "Encountered 1 errors in the data. Successfully ingested 99 rows. Review the associated diagnostic files for additional details."
},
{
"code": "MAPPER-3700-400",
"recordCount": 1,
"message": "Mapper Transform Error"
}
]
}
},
"targetInfo": [
{
"id": "47166b83-01c7-4b65-966b-8301c70b6562",
"type": "TargetConnection",
"reference": {
"type": "Batch",
"ids": [
"01EF01X41KJD82Y9ZX6ET54PCZ"
]
}
}
]
}
]
}
],
"_links": {}
}
Propriedade | Descrição |
---|---|
items |
Contém uma única carga de metadados associada à sua execução de fluxo específica. |
metrics |
Define características dos dados na execução do fluxo. |
activities |
Define como os dados são transformados. |
durationSummary |
Define a hora inicial e final da execução do fluxo. |
sizeSummary |
Define o volume dos dados em bytes. |
recordSummary |
Define a contagem de registros dos dados. |
fileSummary |
Define a contagem de arquivos dos dados. |
statusSummary |
Define se a execução do fluxo é bem-sucedida ou uma falha. |
Para atualizar o cronograma de execução, o nome e a descrição do seu fluxo de dados, execute uma solicitação de PATCH para a Flow Service API, fornecendo a ID do fluxo, a versão e o novo agendamento que deseja usar.
O If-Match
é necessário usar o cabeçalho ao fazer uma solicitação de PATCH. O valor desse cabeçalho é a tag exclusiva do fluxo de dados que você deseja atualizar.
Formato da API
PATCH /flows/{FLOW_ID}
Solicitação
A solicitação a seguir atualiza o agendamento da execução do fluxo, bem como o nome e a descrição do seu fluxo de dados.
curl -X PATCH \
'https://platform.adobe.io/data/foundation/flowservice/flows/993f908f-3342-4d9c-9f3c-5aa9a189ca1a' \
-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 'If-Match: "1a0037e4-0000-0200-0000-602e06f60000"' \
-d '[
{
"op": "replace",
"path": "/scheduleParams/frequency",
"value": "day"
},
{
"op": "replace",
"path": "/name",
"value": "New dataflow name"
},
{
"op": "replace",
"path": "/description",
"value": "Updated dataflow description"
}
]'
Parâmetro | Descrição |
---|---|
op |
A chamada de operação usada para definir a ação necessária para atualizar o fluxo de dados. As operações incluem: add , replace e remove . |
path |
O caminho do parâmetro a ser atualizado. |
value |
O novo valor com o qual você deseja atualizar seu parâmetro. |
Resposta
Uma resposta bem-sucedida retorna a ID do fluxo e uma tag atualizada. Você pode verificar a atualização fazendo uma solicitação do GET para o Flow Service API, enquanto fornece a ID do fluxo.
{
"id": "993f908f-3342-4d9c-9f3c-5aa9a189ca1a",
"etag": "\"50014cc8-0000-0200-0000-6036eb720000\""
}
Com uma ID de fluxo existente, é possível excluir um fluxo de dados executando uma solicitação de DELETE para a Flow Service API.
Formato da API
DELETE /flows/{FLOW_ID}
Parâmetro | Descrição |
---|---|
{FLOW_ID} |
O único id para o fluxo de dados que deseja excluir. |
Solicitação
curl -X DELETE \
'https://platform.adobe.io/data/foundation/flowservice/flows/993f908f-3342-4d9c-9f3c-5aa9a189ca1a' \
-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 o status HTTP 204 (Sem conteúdo) e um corpo em branco. É possível confirmar a exclusão tentando uma solicitação de pesquisa (GET) para o fluxo de dados. A API retornará um erro HTTP 404 (Not Found), indicando que o fluxo de dados foi excluído.
Para atualizar o nome, a descrição e as credenciais da conexão, execute uma solicitação de PATCH para a Flow Service API ao fornecer a ID de conexão básica, a versão e as novas informações que deseja usar.
O If-Match
é necessário usar o cabeçalho ao fazer uma solicitação de PATCH. O valor desse cabeçalho é a versão exclusiva da conexão que você deseja atualizar.
Formato da API
PATCH /connections/{BASE_CONNECTION_ID}
Parâmetro | Descrição |
---|---|
{BASE_CONNECTION_ID} |
O único id para a conexão que deseja atualizar. |
Solicitação
A solicitação a seguir fornece um novo nome e descrição, bem como um novo conjunto de credenciais, para atualizar sua conexão.
curl -X PATCH \
'https://platform.adobe.io/data/foundation/flowservice/connections/139f6a5f-a78b-4744-9f6a-5fa78bd74431' \
-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 'If-Match: 1400dd53-0000-0200-0000-5f3f23450000' \
-d '[
{
"op": "replace",
"path": "/auth/params",
"value": {
"username": "salesforce-connector-username",
"password": "{NEW_PASSWORD}",
"securityToken": "{NEW_SECURITY_TOKEN}"
}
},
{
"op": "replace",
"path": "/name",
"value": "Test salesforce connection"
},
{
"op": "add",
"path": "/description",
"value": "A test salesforce connection"
}
]'
Parâmetro | Descrição |
---|---|
op |
A chamada de operação usada para definir a ação necessária para atualizar a conexão. As operações incluem: add , replace e remove . |
path |
O caminho do parâmetro a ser atualizado. |
value |
O novo valor com o qual você deseja atualizar seu parâmetro. |
Resposta
Uma resposta bem-sucedida retorna a ID de conexão básica e uma tag atualizada. Você pode verificar a atualização fazendo uma solicitação do GET para o Flow Service API, enquanto fornece a ID de conexão.
{
"id": "139f6a5f-a78b-4744-9f6a-5fa78bd74431",
"etag": "\"3600e378-0000-0200-0000-5f40212f0000\""
}
Depois de ter uma ID de conexão base existente, execute uma solicitação de DELETE para a Flow Service API.
Formato da API
DELETE /connections/{CONNECTION_ID}
Parâmetro | Descrição |
---|---|
{BASE_CONNECTION_ID} |
O único id para a conexão básica que deseja excluir. |
Solicitação
curl -X DELETE \
'https://platform.adobe.io/data/foundation/flowservice/connections/dd3631cd-d0ea-4fea-b631-cdd0ea6fea21' \
-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 o status HTTP 204 (Sem conteúdo) e um corpo em branco.
Você pode confirmar a exclusão tentando uma solicitação de pesquisa (GET) para a conexão.