Compartir vía


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

Data Factory en Microsoft Fabric es la próxima generación de Azure Data Factory, con una arquitectura más sencilla, inteligencia artificial integrada y nuevas características. Si no está familiarizado con la integración de datos, comience con Fabric Data Factory. Las cargas de trabajo de ADF existentes pueden actualizarse a Fabric para acceder a nuevas funcionalidades en ciencia de datos, análisis en tiempo real e informes.

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, lea Introducción a Azure Data Factory y realice el tutorial: Tutorial: transformar 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
  • SQL Server Database. Si usa SQL Server, instale el entorno de ejecución de integración autohospedado en la misma máquina que hospeda la base de datos o en una máquina independiente que tenga acceso a la base de datos. Self-Hosted Integration Runtime es un componente que conecta orígenes de datos locales o en una máquina virtual de Azure con servicios en la nube de manera segura y gestionada. 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, puede configurar el SqlSink en la actividad de copia para invocar un procedimiento almacenado mediante la propiedad sqlWriterStoredProcedureName. Para obtener más información sobre la propiedad, consulte los siguientes artículos del conector: Azure SQL Database, SQL Server. No se admite la invocación de un procedimiento almacenado al copiar datos en una Azure Synapse Analytics mediante una actividad de copia. Sin embargo, puede usar la actividad de procedimiento almacenado para invocar un procedimiento almacenado en Azure Synapse Analytics.

Al copiar datos desde Azure SQL Database o SQL Server o Azure Synapse Analytics, puede configurar SqlSource en la actividad de copia para invocar un procedimiento almacenado para leer datos de la base de datos de origen mediante la propiedad sqlReaderStoredProcedureName. Para obtener más información, consulte los siguientes artículos sobre conectores: 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 SQL Server equipo si necesita soporte técnico adicional. 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ó.

Crear 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.

    Muestra la interfaz de usuario de una actividad de procedimiento almacenado.

  3. Seleccione un servicio vinculado existente o cree un nuevo servicio vinculado en un 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
nombre Nombre de la actividad
descripción Texto que describe para qué se usa la actividad. No
tipo Para la actividad de procedimiento almacenado, el tipo de actividad es SqlServerStoredProcedure
nombreDelServicioVinculado Referencia al Azure SQL Database o Azure Synapse Analytics o SQL Server registrado como servicio vinculado en Data Factory. Para obtener más información sobre este servicio vinculado, consulte el artículo Servicios vinculados de cómputo.
nombreDeProcedimientoAlmacenado 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 los valores de los parámetros y su tipo compatible con la fuente 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 los mapeos de tipos de datos para su origen de datos en la documentación de los conectores. Por ejemplo:

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