Azure Synapse Analytics · Arazzo Workflow

Azure Synapse Analytics Build Data Integration Pipeline

Version 1.0.0

Stand up a linked service, a dataset, a pipeline, and trigger a run.

1 workflow 3 source APIs 1 provider
View Spec View on GitHub AnalyticsApache SparkBig DataData IntegrationData WarehouseETLSQLArazzoWorkflows

Provider

microsoft-azure-synapse-analytics

Workflows

build-data-integration-pipeline
Create a linked service, a dataset bound to it, a pipeline, and run the pipeline.
Provisions a linked service, then a dataset that references it, then a pipeline, and finally submits a pipeline run, capturing the run identifier.
4 steps inputs: apiVersion, dataset, datasetName, linkedService, linkedServiceName, pipeline, pipelineName, runParameters outputs: datasetId, linkedServiceId, pipelineId, runId
1
createLinkedService
LinkedService_CreateOrUpdateLinkedService
Create or update the linked service that defines the connection to the backing data store.
2
createDataset
Dataset_CreateOrUpdateDataset
Create or update the dataset that references the linked service.
3
createPipeline
Pipeline_CreateOrUpdatePipeline
Create or update the pipeline that orchestrates movement using the dataset and linked service above.
4
runPipeline
Pipeline_CreatePipelineRun
Submit a run of the newly built pipeline, passing any optional run-time parameters.

Source API Descriptions

Arazzo Workflow Specification

microsoft-azure-synapse-analytics-build-data-integration-pipeline-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Azure Synapse Analytics Build Data Integration Pipeline
  summary: Stand up a linked service, a dataset, a pipeline, and trigger a run.
  description: >-
    The full data integration provisioning chain in Azure Synapse Analytics: a
    linked service defines the connection, a dataset shapes the data over that
    connection, a pipeline orchestrates the movement, and a pipeline run
    executes it. This workflow creates each resource in dependency order and then
    submits a run of the resulting pipeline. Every step spells out its request
    inline so the flow can be read and executed without opening the underlying
    OpenAPI description.
  version: 1.0.0
sourceDescriptions:
- name: linkedServiceApi
  url: ../openapi/azure-synapse-analytics-linked-service-openapi.yml
  type: openapi
- name: datasetApi
  url: ../openapi/azure-synapse-analytics-dataset-openapi.yml
  type: openapi
- name: pipelineApi
  url: ../openapi/azure-synapse-analytics-pipeline-openapi.yml
  type: openapi
workflows:
- workflowId: build-data-integration-pipeline
  summary: >-
    Create a linked service, a dataset bound to it, a pipeline, and run the
    pipeline.
  description: >-
    Provisions a linked service, then a dataset that references it, then a
    pipeline, and finally submits a pipeline run, capturing the run identifier.
  inputs:
    type: object
    required:
    - apiVersion
    - linkedServiceName
    - linkedService
    - datasetName
    - dataset
    - pipelineName
    - pipeline
    properties:
      apiVersion:
        type: string
        description: The Synapse data plane API version (e.g. 2020-12-01).
      linkedServiceName:
        type: string
        description: The name of the linked service to create.
      linkedService:
        type: object
        description: The LinkedServiceResource definition.
      datasetName:
        type: string
        description: The name of the dataset to create.
      dataset:
        type: object
        description: >-
          The DatasetResource definition; its linkedServiceName reference should
          point at the linked service created here.
      pipelineName:
        type: string
        description: The name of the pipeline to create.
      pipeline:
        type: object
        description: The PipelineResource definition.
      runParameters:
        type: object
        description: Optional run-time parameters passed to the pipeline run.
  steps:
  - stepId: createLinkedService
    description: >-
      Create or update the linked service that defines the connection to the
      backing data store.
    operationId: LinkedService_CreateOrUpdateLinkedService
    parameters:
    - name: api-version
      in: query
      value: $inputs.apiVersion
    - name: linkedServiceName
      in: path
      value: $inputs.linkedServiceName
    requestBody:
      contentType: application/json
      payload: $inputs.linkedService
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      linkedServiceId: $response.body#/id
  - stepId: createDataset
    description: >-
      Create or update the dataset that references the linked service.
    operationId: Dataset_CreateOrUpdateDataset
    parameters:
    - name: api-version
      in: query
      value: $inputs.apiVersion
    - name: datasetName
      in: path
      value: $inputs.datasetName
    requestBody:
      contentType: application/json
      payload: $inputs.dataset
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      datasetId: $response.body#/id
  - stepId: createPipeline
    description: >-
      Create or update the pipeline that orchestrates movement using the dataset
      and linked service above.
    operationId: Pipeline_CreateOrUpdatePipeline
    parameters:
    - name: api-version
      in: query
      value: $inputs.apiVersion
    - name: pipelineName
      in: path
      value: $inputs.pipelineName
    requestBody:
      contentType: application/json
      payload: $inputs.pipeline
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      pipelineId: $response.body#/id
  - stepId: runPipeline
    description: >-
      Submit a run of the newly built pipeline, passing any optional run-time
      parameters.
    operationId: Pipeline_CreatePipelineRun
    parameters:
    - name: api-version
      in: query
      value: $inputs.apiVersion
    - name: pipelineName
      in: path
      value: $inputs.pipelineName
    requestBody:
      contentType: application/json
      payload: $inputs.runParameters
    successCriteria:
    - condition: $statusCode == 202
    outputs:
      runId: $response.body#/runId
  outputs:
    linkedServiceId: $steps.createLinkedService.outputs.linkedServiceId
    datasetId: $steps.createDataset.outputs.datasetId
    pipelineId: $steps.createPipeline.outputs.pipelineId
    runId: $steps.runPipeline.outputs.runId