Partilhar via


Transforme dados utilizando a atividade SQL Server Stored Procedure no Azure Data Factory ou Synapse Analytics

APLICA-SE A: Azure Data Factory Azure Synapse Analytics

Gorjeta

Data Factory em Microsoft Fabric é a próxima geração de Azure Data Factory, com uma arquitetura mais simples, IA incorporada e novas funcionalidades. Se és novo na integração de dados, começa pelo Fabric Data Factory. As cargas de trabalho existentes do ADF podem atualizar para o Fabric para aceder a novas capacidades em ciência de dados, análise em tempo real e relatórios.

Você usa atividades de transformação de dados em um pipeline do Data Factory ou Synapse para transformar e processar dados brutos em previsões e insights. A Atividade de Procedimento Armazenado é uma das atividades de transformação suportadas pelos pipelines. Este artigo baseia-se no artigo de transformação de dados , que apresenta uma visão geral da transformação de dados e das atividades de transformação suportadas.

Nota

Se és novo no Azure Data Factory, lê Introdução ao Azure Data Factory e faz o tutorial: Tutorial: transformar dados antes de leres este artigo. Para saber mais sobre a Synapse Analytics, leia O que é Azure Synapse Analytics.

Pode usar a Atividade de Procedimento Armazenado para invocar um procedimento armazenado num dos seguintes armazenamentos de dados na sua empresa ou numa máquina virtual Azure (VM):

  • Base de Dados SQL do Azure
  • Azure Synapse Analytics
  • Base de Dados SQL Server. Se estiver a usar SQL Server, instale o runtime de integração auto-hospedado na mesma máquina que hospeda a base de dados ou numa máquina separada que tenha acesso à base de dados. O runtime de integração Self-Hosted é um componente que liga fontes de dados no local/ou em VMs do Azure com serviços na nuvem de forma segura e gerida. Consulte o artigo sobre tempo de execução de integração auto-hospedada para obter detalhes.

Importante

Ao copiar dados para Base de Dados SQL do Azure ou SQL Server, pode configurar o SqlSink na atividade de cópia para invocar um procedimento armazenado usando a propriedade sqlWriterStoredProcedureName. Para detalhes sobre a propriedade, consulte os seguintes artigos sobre conectores: Base de Dados SQL do Azure, SQL Server. Não é suportado invocar um procedimento armazenado enquanto se copiam dados para um Azure Synapse Analytics através de uma atividade de cópia. Mas pode usar a atividade de procedimento armazenado para invocar um procedimento armazenado no Azure Synapse Analytics.

Ao copiar dados de Base de Dados SQL do Azure ou SQL Server ou Azure Synapse Analytics, pode configurar SqlSource em atividade de cópia para invocar um procedimento armazenado para ler dados da base de dados de origem usando a propriedade sqlReaderStoredProcedureName. Para mais informações, consulte os seguintes artigos sobre conectores: Base de Dados SQL do Azure, SQL Server, Azure Synapse Analytics

Quando o procedimento armazenado tiver parâmetros de saída, utilize a atividade de consulta e a atividade de script em vez da atividade de procedimento armazenado. A atividade de procedimento armazenado ainda não suporta a chamada de SPs com o parâmetro Output.

Se você chamar um procedimento armazenado com parâmetros de saída usando a atividade de procedimento armazenado, ocorrerá o seguinte erro.

Falha de execução no sql server. Por favor, contacte a equipa do SQL Server se precisar de mais apoio. Número de erro SQL: 201. Mensagem de erro: Procedimento ou função 'sp_name' espera parâmetro '@output_param_name', que não foi fornecido.

Criar uma atividade de Stored Procedure com interface de utilizador

Para usar uma atividade de Procedimento Armazenado em um pipeline, conclua as seguintes etapas:

  1. Procure Procedimento Armazenado no painel Atividades do pipeline e arraste uma atividade de Procedimento Armazenado para o quadro do pipeline.

  2. Selecione a nova atividade Procedimento Armazenado na tela, caso ainda não esteja selecionada, e a guia Configurações para editar os seus detalhes.

    Mostra a interface de utilizador para uma atividade de Procedimento Armazenado.

  3. Selecione um serviço existente ou crie um novo serviço ligado a uma Base de Dados SQL do Azure, Azure Synapse Analytics ou SQL Server.

  4. Escolha um procedimento armazenado e forneça todos os parâmetros para sua execução.

Detalhes da sintaxe

Aqui está o formato JSON para definir uma atividade de procedimento armazenado:

{
    "name": "Stored Procedure Activity",
    "description":"Description",
    "type": "SqlServerStoredProcedure",
    "linkedServiceName": {
        "referenceName": "AzureSqlLinkedService",
        "type": "LinkedServiceReference"
    },
    "typeProperties": {
        "storedProcedureName": "usp_sample",
        "storedProcedureParameters": {
            "identifier": { "value": "1", "type": "Int" },
            "stringData": { "value": "str1" }

        }
    }
}

A tabela a seguir descreve essas propriedades JSON:

Propriedade Descrição Obrigatório
nome Nome da atividade Sim
descrição Texto que descreve para que serve a atividade Não
tipo Para Atividade de Procedimento Armazenado, o tipo de atividade é SqlServerStoredProcedure Sim
nome do serviço ligado Referência ao serviço Base de Dados SQL do Azure ou Azure Synapse Analytics ou SQL Server registado como serviço ligado na Data Factory. Para saber mais sobre esse serviço vinculado, consulte o artigo Serviços vinculados de computação. Sim
storedProcedureName Especifique o nome do procedimento armazenado a ser invocado. Sim
parâmetrosDeProcedimentoArmazenado Especifique os valores para parâmetros de procedimento armazenado. Use "param1": { "value": "param1Value","type":"param1Type" } para passar valores de parâmetro e seu tipo suportado pela fonte de dados. Se você precisar passar null para um parâmetro, use "param1": { "value": null } (todos em minúsculas). Não

Mapeamento de tipo de dados de parâmetro

O tipo de dados especificado para o parâmetro é o tipo de serviço interno que mapeia para o tipo de dados na fonte de dados que você está usando. Você pode encontrar os mapeamentos de tipo de dados para sua fonte de dados descritos na documentação dos conectores. Por exemplo:

Consulte os seguintes artigos que explicam como transformar dados de outras maneiras: