Transformar dados usando a atividade de Procedimento Armazenado do SQL Server no Azure Data Factory ou no Synapse Analytics

APLICA-SE A: Azure Data Factory Azure Synapse Analytics

Gorjeta

Experimente o Data Factory no Microsoft Fabric, uma solução de análise tudo-em-um para empresas. O Microsoft Fabric abrange tudo, desde a movimentação de dados até ciência de dados, análises em tempo real, business intelligence e relatórios. Saiba como iniciar uma nova avaliação gratuitamente!

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 você é novo no Azure Data Factory, leia Introdução ao Azure Data Factory e faça o tutorial: Tutorial: transformar dados antes de ler este artigo. Para saber mais sobre o Synapse Analytics, leia O que é o Azure Synapse Analytics.

Você pode usar a Atividade de Procedimento Armazenado para invocar um procedimento armazenado em um dos seguintes armazenamentos de dados em sua empresa ou em uma máquina virtual (VM) do Azure:

  • Base de Dados SQL do Azure
  • Azure Synapse Analytics
  • Banco de dados SQL Server. Se você estiver usando o SQL Server, instale o tempo de execução de integração auto-hospedado na mesma máquina que hospeda o banco de dados ou em uma máquina separada que tenha acesso ao banco de dados. O tempo de execução de integração auto-hospedado é um componente que conecta fontes de dados locais/na VM do Azure com serviços de nuvem de forma segura e gerenciada. Consulte o artigo Self-hosted integration runtime para obter detalhes.

Importante

Ao copiar dados para o Banco de Dados SQL do Azure ou para o SQL Server, você pode configurar o SqlSink na atividade de cópia para invocar um procedimento armazenado usando a propriedade sqlWriterStoredProcedureName . Para obter detalhes sobre a propriedade, consulte os seguintes artigos do conector: Banco de Dados SQL do Azure, SQL Server. Não há suporte para invocar um procedimento armazenado ao copiar dados em um Azure Synapse Analytics usando uma atividade de cópia. Mas, você pode usar a atividade de procedimento armazenado para invocar um procedimento armazenado no Azure Synapse Analytics.

Ao copiar dados do Banco de Dados SQL do Azure ou do SQL Server ou do Azure Synapse Analytics, você pode configurar o SqlSource na atividade de cópia para invocar um procedimento armazenado para ler dados do banco de dados de origem usando a propriedade sqlReaderStoredProcedureName . Para obter mais informações, consulte os seguintes artigos do conector: Banco de Dados SQL do Azure, SQL Server, Azure Synapse Analytics

Quando o procedimento armazenado tiver parâmetros de saída, em vez de usar a atividade de procedimento armazenado, use atividade de pesquisa e atividade de script. 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. Entre em contato com a equipe do SQL Server se precisar de mais suporte. 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 procedimento armazenado com a interface do usuário

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 a tela do pipeline.

  2. Selecione a nova atividade Procedimento armazenado na tela, se ainda não estiver selecionada, e sua guia Configurações para editar seus detalhes.

    Shows the UI for a Stored Procedure activity.

  3. Selecione um serviço existente ou crie um novo serviço vinculado a um Banco 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:

Property 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
linkedServiceName Referência ao Banco de Dados SQL do Azure ou ao Azure Synapse Analytics ou SQL Server registrado como um serviço vinculado no 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
storedProcedureParameters 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: