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

Dica

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

Use atividades de transformação de dados em um pipeline do Data Factory ou do Synapse para transformar e processar dados brutos em previsões e informações. A Atividade de Procedimento Armazenado é uma das atividades de transformação compatíveis com os pipelines. Este artigo baseia-se no artigo sobre dados de transformação, que apresenta uma visão geral da transformação de dados e das atividades de transformação com suporte.

Observação

Se você é novo no Azure Data Factory, leia a Introdução ao Azure Data Factory e siga o tutorial: Transformar dados antes de ler este artigo. Para saber mais sobre o Synapse Analytics, leia O que é Azure Synapse Analytics.

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

  • Banco de Dados SQL do Azure
  • Azure Synapse Analytics
  • Banco de Dados do SQL Server. Se estiver usando o SQL Server, instale o Integration Runtime (auto-hospedado) no mesmo computador que hospeda o banco de dados ou em um computador separado com acesso ao banco de dados. O Integration Runtime (auto-hospedado) é um componente que conecta fontes de dados locais ou em uma VM do Azure aos serviços de nuvem de maneira segura e gerenciada. Consulte o artigo Self-hosted integration runtime (Integration Runtime auto-hospedado) para obter detalhes.

Importante

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

Ao copiar os dados do Banco de Dados SQL do Azure, 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, confira os seguintes artigos sobre o 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 a atividade de pesquisa e script. A atividade de procedimento armazenado ainda não dá suporte à chamada de SPs com o parâmetro de saída.

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

Falha na execução do SQL Server. Entre em contato com a equipe do SQL Server se precisar de mais suporte. Número do erro SQL: 201. Mensagem de erro: Procedimento ou função 'sp_name' espera o 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, realize as seguintes etapas:

  1. Pesquise Procedimento Armazenado no painel Atividades do pipeline e arraste uma atividade Procedimento Armazenado para a tela do pipeline.

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

    Shows the UI for a Stored Procedure activity.

  3. Selecione ou crie um serviço vinculado a um Banco de Dados SQL do Azure, um Azure Synapse Analytics ou um SQL Server.

  4. Escolha um procedimento armazenado e forneça 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 seguinte tabela descreve essas propriedades JSON:

Propriedade Descrição Obrigatório
name Nome da atividade Sim
descrição Texto que descreve qual a utilidade da atividade Não
type Para a atividade de procedimento armazenado, o tipo de atividade é SqlServerStoredProcedure Sim
linkedServiceName Referência ao Banco de Dados SQL do Azure, ao Azure Synapse Analytics ou ao SQL Server registrado como um serviço vinculado no Data Factory. Para saber mais sobre esse serviço vinculado, consulte o artigo Compute linked services (Serviços de computação vinculados). Sim
storedProcedureName Especifique o nome do procedimento armazenado para invocar. Sim
storedProcedureParameters Especifique os valores para parâmetros de procedimento armazenado. Use "param1": { "value": "param1Value","type":"param1Type" } para passar os valores de parâmetro e seu tipo com suporte da fonte de dados. Se você precisar passar null para um parâmetro, use "param1": { "value": null } (tudo em letras minúsculas). Não

Mapeamento de tipo de dados de parâmetro

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

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