Transformación de datos mediante la actividad de procedimiento almacenado de SQL Server en Azure Data Factory o Synapse Analytics

SE APLICA A: Azure Data Factory Azure Synapse Analytics

Sugerencia

Pruebe Data Factory en Microsoft Fabric, una solución de análisis todo en uno para empresas. Microsoft Fabric abarca todo, desde el movimiento de datos hasta la ciencia de datos, el análisis en tiempo real, la inteligencia empresarial y los informes. Obtenga información sobre cómo iniciar una nueva evaluación gratuita.

Las actividades de transformación de una canalización de Data Factory o Synapse se usan para transformar y procesar los datos sin procesar a fin de convertirlos en predicciones y conclusiones. La actividad de procedimiento almacenado es una de las actividades de transformación que admiten las canalizaciones. Este artículo se basa en el artículo sobre transformación de datos, que presenta información general de la transformación de datos y las actividades de transformación admitidas.

Nota

Si no está familiarizado con Azure Data Factory, vea Introducción a Azure Data Factory y siga el tutorial sobre la Transformación de datos antes de leer este artículo. Para más información sobre Synapse Analytics, lea ¿Qué es Azure Synapse Analytics?.

Puede usar la actividad de procedimiento almacenado para invocar un procedimiento almacenado en uno de los siguientes almacenes de datos de la empresa o en una máquina virtual (VM) de Azure:

  • Azure SQL Database
  • Azure Synapse Analytics
  • Base de datos de SQL Server. Si se usa SQL Server, se debe instalar el entorno de ejecución de integración autohospedado en el mismo equipo que hospeda la base de datos o en un equipo independiente que tenga acceso a la base de datos. El entorno de ejecución de integración autohospedado es un componente que conecta orígenes de datos locales o en la máquina virtual de Azure con servicios en la nube de forma segura y administrada. Consulte el artículo sobre el entorno de ejecución de integración autohospedado para más información.

Importante

Al copiar datos en Azure SQL Database o SQL Server, se puede configurar SqlSink en la actividad de copia para invocar un procedimiento almacenado mediante la propiedad sqlWriterStoredProcedureName. Para más información sobre la propiedad, consulte los artículos sobre los conectores siguientes: Azure SQL Database, SQL Server. No se admite la invocación de un procedimiento almacenado al copiar datos en Azure Synapse Analytics mediante una actividad de copia. Pero se puede usar la actividad de procedimiento almacenado para invocar un procedimiento almacenado de Azure Synapse Analytics.

Al copiar datos de Azure SQL Database, SQL Server o Azure Synapse Analytics, se puede configurar SqlSource en la actividad de copia para invocar un procedimiento almacenado de lectura de datos desde la base de datos de origen mediante la propiedad sqlReaderStoredProcedureName. Para más información, consulte los artículos sobre los conectores siguientes: Azure SQL Database, SQL Server, Azure Synapse Analytics

Cuando el procedimiento almacenado tiene parámetros de salida, en lugar de usar la actividad de procedimiento almacenado, use la actividad de búsqueda y la actividad de script. La actividad de procedimiento almacenado todavía no admite la llamada a SP con el parámetro de salida.

Si llama a un procedimiento almacenado con parámetros de salida mediante la actividad de procedimiento almacenado, se produce el siguiente error.

Error de ejecución en SQL Server. Póngase en contacto con el equipo de SQL Server si necesita más soporte técnico. El número del error de SQL: 201. Mensaje de error: Procedimiento o función "sp_name" espera el parámetro "@output_param_name", que no se proporcionó.

Creación de una actividad de procedimiento almacenado con la interfaz de usuario

Para usar una actividad de procedimiento almacenado en una canalización, complete los pasos siguientes:

  1. Busque Procedimiento almacenado en el panel Actividades de canalización y arrastre una actividad de procedimiento almacenado al lienzo de la canalización.

  2. Seleccione la nueva actividad de procedimiento almacenado en el lienzo si aún no está seleccionada y la pestaña Configuración para editar los detalles.

    Shows the UI for a Stored Procedure activity.

  3. Seleccione un servicio vinculado existente o cree uno nuevo para una instancia de Azure SQL Database, Azure Synapse Analytics o SQL Server.

  4. Elija un procedimiento almacenado y proporcione los parámetros para su ejecución.

Detalles de la sintaxis

Este es el formato JSON para definir una actividad de procedimiento almacenado:

{
    "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" }

        }
    }
}

En la tabla siguiente se describen estas propiedades JSON:

Propiedad Descripción Obligatorio
name Nombre de la actividad
description Texto que describe para qué se usa la actividad. No
type Para la actividad de procedimiento almacenado, el tipo de actividad es SqlServerStoredProcedure
linkedServiceName Referencia a Azure SQL Database, Azure Synapse Analytics o SQL Server registrada como un servicio vinculado en Data Factory. Para obtener más información sobre este servicio vinculado, vea el artículo Compute linked services (Servicios vinculados de procesos).
storedProcedureName Especifique el nombre del procedimiento almacenado que se invocará.
storedProcedureParameters Especifique los valores para los parámetros del procedimiento almacenado. Use "param1": { "value": "param1Value","type":"param1Type" } para pasar valores de parámetros y su tipo compatible con el origen de datos. Si necesita pasar NULL para un parámetro, use "param1": { "value": null } (todo en minúsculas). No

Asignación de tipos de datos de parámetros

El tipo de datos que especifique para el parámetro es el tipo de servicio interno que se asigna al tipo de datos del origen de datos que usa. Puede encontrar las descripciones de las asignaciones de tipos de datos para el origen de datos en la documentación sobre los conectores. Por ejemplo:

Vea los siguientes artículos, en los que se explica cómo transformar datos de otras maneras: