Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
SE APLICA A:
Azure Data Factory
Azure Synapse Analytics
Sugerencia
Pruebe Data Factory en Microsoft Fabric, una solución de análisis integral 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.
Este artículo se centra en conceptos fundamentales y ejemplos que le ayudan a crear canalizaciones de datos parametrizadas en Azure Data Factory. La parametrización y las expresiones dinámicas agregan flexibilidad a ADF y pueden ahorrar tiempo al permitir soluciones de extracción, transformación, carga (ETL) o extracción, carga y transformación (ELT) más flexibles. Estas características reducen los costos de mantenimiento de soluciones y aceleran la implementación de nuevas características en canalizaciones existentes. La parametrización minimiza la codificación rígida y aumenta el número de objetos y procesos reutilizables en una solución.
Interfaz de usuario y parámetros de Azure Data Factory
Puede encontrar la creación y asignación de parámetros en la interfaz de usuario (UI) de Azure Data Factory para canalizaciones, conjuntos de datos y flujos de datos.
En Azure Data Factory Studio, vaya al lienzo de creación y edite una canalización, un conjunto de datos o un flujo de datos.
Seleccione el lienzo en blanco para abrir la configuración de la canalización. No seleccione ninguna actividad. Es posible que tenga que extraer el panel de configuración desde la parte inferior del lienzo porque podría contraerse.
Seleccione la pestaña Parámetros y seleccione + Nuevo para agregar parámetros.
También puede usar parámetros en servicios vinculados seleccionando Agregar contenido dinámico junto a la propiedad que desea parametrizar.
Conceptos de parámetros
Puede usar parámetros para pasar valores externos a canalizaciones, conjuntos de datos, servicios vinculados y flujos de datos. Por ejemplo, si tiene un conjunto de datos que tiene acceso a carpetas en Azure Blob Storage, puede parametrizar la ruta de acceso de la carpeta para que pueda reutilizar el mismo conjunto de datos para acceder a diferentes carpetas cada vez que se ejecuta la canalización.
Los parámetros son similares a las variables, pero difieren en que los parámetros son externos y, por tanto, se pasan a canalizaciones, conjuntos de datos, servicios vinculados y flujos de datos, mientras que las variables se definen y usan dentro de una canalización. Los parámetros son de solo lectura, mientras que las variables se pueden modificar dentro de una canalización mediante la actividad Establecer variable.
Puede usar parámetros por sí mismos o como parte de las expresiones. Y el valor de un parámetro puede ser un valor literal o una expresión que se evalúa en tiempo de ejecución.
Por ejemplo:
"name": "value"
o
"name": "@pipeline().parameters.password"
Expresiones con parámetros
Las expresiones se usan para construir valores dinámicos en varias partes de una canalización, un conjunto de datos, un servicio vinculado o una definición de flujo de datos. Las expresiones empiezan siempre por una arroba (@) seguida del cuerpo de la expresión entre paréntesis. Por ejemplo, la expresión siguiente usa la concat función para combinar dos cadenas:
@concat('Hello, ', 'World!')
Al hacer referencia a parámetros en expresiones, se usa la sintaxis siguiente:
@pipeline().parameters.parameterName
o
@dataset().parameters.parameterName
Puede obtener más información sobre las expresiones en el artículo Información general del lenguaje de expresiones, pero estos son algunos ejemplos de uso de parámetros en expresiones.
Ejemplo de expresión compleja
En el ejemplo siguiente se hace referencia a un subcampo detallado del resultado de la actividad. Para hacer referencia a un parámetro de canalización que se evalúa como un subcampo, use la sintaxis [] en lugar del operador dot(.) (como en el caso de subcampo1 y subcampo2).
@activity('*activityName*').output.*subfield1*.*subfield2*[pipeline().parameters.*subfield3*].*subfield4*
Editor de contenido dinámico
El editor de contenido dinámico convierte automáticamente los caracteres de escape en el contenido cuando finaliza la edición. Por ejemplo, el siguiente contenido en el editor de contenido es una interpolación de cadenas con dos funciones de expresión.
{
"type": "@{if(equals(1, 2), 'Blob', 'Table' )}",
"name": "@{toUpper('myData')}"
}
El editor de contenido dinámico convierte el contenido anterior en la expresión "{ \n \"type\": \"@{if(equals(1, 2), 'Blob', 'Table' )}\",\n \"name\": \"@{toUpper('myData')}\"\n}". El resultado de esta expresión es una cadena de formato JSON, que se muestra a continuación.
{
"type": "Table",
"name": "MYDATA"
}
Conjunto de datos con parámetros
En el ejemplo siguiente, BlobDataset toma un parámetro llamado path. Su valor establece un valor para la propiedad folderPath mediante la expresión : dataset().path.
{
"name": "BlobDataset",
"properties": {
"type": "AzureBlob",
"typeProperties": {
"folderPath": "@dataset().path"
},
"linkedServiceName": {
"referenceName": "AzureStorageLinkedService",
"type": "LinkedServiceReference"
},
"parameters": {
"path": {
"type": "String"
}
}
}
}
Canalización con parámetros
En el ejemplo siguiente, la canalización toma los parámetros inputPath y outputPath. La ruta de acceso del conjunto de datos de blobs con parámetros se establece mediante los valores de estos parámetros. La sintaxis utilizada aquí es: pipeline().parameters.parametername.
{
"name": "Adfv2QuickStartPipeline",
"properties": {
"activities": [
{
"name": "CopyFromBlobToBlob",
"type": "Copy",
"inputs": [
{
"referenceName": "BlobDataset",
"parameters": {
"path": "@pipeline().parameters.inputPath"
},
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "BlobDataset",
"parameters": {
"path": "@pipeline().parameters.outputPath"
},
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "BlobSource"
},
"sink": {
"type": "BlobSink"
}
}
}
],
"parameters": {
"inputPath": {
"type": "String"
},
"outputPath": {
"type": "String"
}
}
}
}
Ejemplos detallados para practicar
Canalización de copia de Azure Data Factory con parámetros
Este tutorial sobre cómo pasar parámetros en la canalización de copia de Azure Data Factory le guía a través del proceso de pasar parámetros entre una canalización y una actividad, así como entre diferentes actividades.
Canalización de flujo de datos de asignación con parámetros
Siga la guía Mapping data flow with parameters (Flujo de datos de mapeo con parámetros) para obtener un ejemplo completo de cómo usar parámetros en el flujo de datos.
Canalización controlada por metadatos con parámetros
Siga la guía Canalización controlada por metadatos con parámetros para obtener más información sobre cómo usar parámetros para diseñar canalizaciones controladas por metadatos. Este es un caso de uso común para los parámetros.
Contenido relacionado
Para obtener una lista de las variables del sistema que se pueden usar en las expresiones, vea Variables del sistema.