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.
Nota:
Este artículo se centra en una arquitectura de solución de solución de CI/CD y ALM (Administración del ciclo de vida de aplicaciones) para Dataflow Gen2 que se basa en la funcionalidad de modo de parámetros públicos y solo se aplica a Dataflow Gen2 con soporte para CI/CD.
Los parámetros de Fabric Dataflow Gen2 permiten definir entradas reutilizables que dan forma a cómo se ha diseñado un flujo de datos y, con el modo de parámetros públicos , esas entradas se pueden establecer en tiempo de ejecución a través de canalizaciones o API. Hace que un único flujo de datos sea muy flexible y versátil, ya que puede reutilizar la misma lógica en muchos escenarios simplemente pasando valores diferentes, lo que permite flujos de trabajo dinámicos y automatizados sin necesidad de volver a escribir ni duplicar las transformaciones.
Este tutorial le guía a través de un ejemplo que muestra cómo:
- Parametrizar un origen: uso de una instancia de Lakehouse con el conjunto de datos de ejemplo WideWorldImpoters como origen
- Lógica de parametrización: uso de los widgets de entrada disponibles en toda la experiencia de flujo de datos
- Parametrizar destino: Uso de un almacén como destino
- Enviar una solicitud de ejecución con valores de parámetro: pasar valores de parámetro a través de la experiencia de actividad de flujo de datos dentro de una canalización de Fabric
Nota:
Los conceptos mostrados en este artículo son universales para Dataflow Gen2 y son aplicables a otros orígenes y destinos más allá de los que se muestran aquí.
Escenario
El flujo de datos usado en este escenario es sencillo, pero los principios básicos descritos se aplican a todos los tipos de flujos de datos. Se conecta a la tabla denominada dimension_city del conjunto de datos de ejemplo Wide World Importers almacenado en una instancia de Lakehouse. Filtra las filas en las que la columna SalesTerritory es igual al Sudeste y carga el resultado en una nueva tabla denominada City en un almacén. Todos los componentes (Lakehouse, Warehouse y Dataflow) se encuentran en la misma área de trabajo. Para que el flujo de datos sea dinámico, parametrice la tabla de origen, el valor de filtro y la tabla de destino. Estos cambios permiten que el flujo de datos se ejecute con valores específicos en lugar de con valores codificados de forma rígida.
Antes de continuar, para habilitar el modo de parámetros públicos, vaya a la pestaña Inicio , seleccione Opciones y, en la sección Parámetros , active la casilla Habilitar parámetros para que se detecten e invaliden para su ejecución y permitan que el flujo de datos acepte parámetros durante la ejecución.
Parametrizar origen
Cuando se usa cualquiera de los conectores de Fabric( como Lakehouse, Warehouse o Fabric SQL), todos siguen la misma estructura de navegación y usan el mismo formato de entrada. En este escenario, ninguno de los conectores requiere una entrada manual para establecer una conexión. Sin embargo, cada uno indica a qué área de trabajo y elemento está conectado mediante los pasos de navegación de la consulta. Por ejemplo, el primer paso de navegación incluye el workspaceId al que se conecta la consulta.
El objetivo es reemplazar los valores codificados de forma rígida en la barra de fórmulas por parámetros. En concreto, debe crear un parámetro para WorkspaceId y otro para LakehouseId. Para crear parámetros, vaya a la pestaña Inicio de la cinta de opciones, seleccione Administrar parámetros y elija Nuevo parámetro en el menú desplegable.
Al crear los parámetros, asegúrese de que ambos están marcados como obligatorios y establecidos en el tipo de texto . Para sus valores actuales, use los que coincidan con los valores correspondientes de su entorno específico.
Una vez creados ambos parámetros, puede actualizar el script de consulta para usarlos en lugar de valores codificados de forma rígida. Esto implica reemplazar manualmente los valores originales de la barra de fórmulas por referencias a los parámetros Workspace ID y Lakehouse ID. El script de consulta original tiene este aspecto:
let
Source = Lakehouse.Contents([]),
#"Navigation 1" = Source{[workspaceId = "8b325b2b-ad69-4103-93ae-d6880d9f87c6"]}[Data],
#"Navigation 2" = #"Navigation 1"{[lakehouseId = "2455f240-7345-4c8b-8524-c1abbf107d07"]}[Data],
#"Navigation 3" = #"Navigation 2"{[Id = "dimension_city", ItemKind = "Table"]}[Data],
#"Filtered rows" = Table.SelectRows(#"Navigation 3", each ([SalesTerritory] = "Southeast")),
#"Removed columns" = Table.RemoveColumns(#"Filtered rows", {"ValidFrom", "ValidTo", "LineageKey"})
in
#"Removed columns"
Una vez que actualice las referencias en los pasos de navegación, el nuevo script actualizado podría tener este aspecto:
let
Source = Lakehouse.Contents([]),
#"Navigation 1" = Source{[workspaceId = WorkspaceId]}[Data],
#"Navigation 2" = #"Navigation 1"{[lakehouseId = LakehouseId]}[Data],
#"Navigation 3" = #"Navigation 2"{[Id = "dimension_city", ItemKind = "Table"]}[Data],
#"Filtered rows" = Table.SelectRows(#"Navigation 3", each ([SalesTerritory] = "Southeast")),
#"Removed columns" = Table.RemoveColumns(#"Filtered rows", {"ValidFrom", "ValidTo", "LineageKey"})
in
#"Removed columns"
Y observa que sigue evaluando correctamente la vista previa de los datos en el editor de flujo de datos.
Parametrizar lógica
Ahora que el origen usa parámetros, puede centrarse en parametrizar la lógica de transformación del flujo de datos. En este escenario, el paso de filtro es donde se aplica la lógica y el valor que se va a filtrar, actualmente codificado como Sudeste, debe reemplazarse por un parámetro . Para ello, cree un nuevo parámetro denominado Territory, establezca su tipo de datos en texto, lo marque como no necesario y establezca su valor actual en Mideast.
Dado que el paso de filtro se creó mediante la interfaz de usuario, puede dirigirse al paso Filas filtradas, haga doble clic en él y abrir el cuadro de diálogo de configuración del paso de filtro. Este cuadro de diálogo le permite seleccionar, a través del widget de entrada, si desea usar un parámetro en lugar de un valor estático:
Después de seleccionar la opción Seleccionar un parámetro, aparecerá una lista desplegable para mostrar todos los parámetros disponibles que coincidan con el tipo de datos necesario. En esta lista, puede seleccionar el parámetro Territory recién creado.
Una vez que seleccione Aceptar, observe que la vista de diagrama ya ha creado el vínculo entre el parámetro recién creado y la consulta en uso. No solo eso, sino que la vista previa de datos ahora muestra información sobre el territorio de Mideast .
Parametrizar destino
Nota:
Se recomienda familiarizarse con el concepto de destinos de datos en Dataflow Gen2 y cómo se crea su script de mashup a partir del artículo sobre destinos de datos y configuración administrada.
El último componente que se va a parametrizar en este escenario es el destino. Aunque la información sobre el destino de datos se puede encontrar en el editor de flujo de datos, para parametrizar esta parte del flujo de datos debe usar Git o la API REST.
En este tutorial se muestra cómo realizar los cambios a través de Git. Para poder realizar cambios a través de Git, asegúrese de:
- Cree un parámetro con el nombre WarehouseId: asegúrese de usar el identificador correspondiente del almacén como valor actual, establézcalo como necesario y del tipo de datos de texto.
- Guarde el flujo de datos: use el botón Guardar en la pestaña inicio de la cinta de opciones.
Una vez guardado el flujo de datos, asegúrese de confirmar los cambios en el repositorio de Git y diríjase al repositorio para ver el archivo mashup.pq del flujo de datos. Al examinar el archivo mashup.pq , busque la consulta con la que ha asociado el destino de datos. En este escenario, el nombre de esa consulta es dimension_city. Verá un atributo de registro encima de este nombre de consulta:
[DataDestinations = {[Definition = [Kind = "Reference", QueryName = "dimension_city_DataDestination", IsNewTarget = true], Settings = [Kind = "Manual", AllowCreation = true, ColumnSettings = [Mappings = {[SourceColumnName = "CityKey", DestinationColumnName = "CityKey"], [SourceColumnName = "WWICityID", DestinationColumnName = "WWICityID"], [SourceColumnName = "City", DestinationColumnName = "City"], [SourceColumnName = "StateProvince", DestinationColumnName = "StateProvince"], [SourceColumnName = "Country", DestinationColumnName = "Country"], [SourceColumnName = "Continent", DestinationColumnName = "Continent"], [SourceColumnName = "SalesTerritory", DestinationColumnName = "SalesTerritory"], [SourceColumnName = "Region", DestinationColumnName = "Region"], [SourceColumnName = "Subregion", DestinationColumnName = "Subregion"], [SourceColumnName = "Location", DestinationColumnName = "Location"], [SourceColumnName = "LatestRecordedPopulation", DestinationColumnName = "LatestRecordedPopulation"]}], DynamicSchema = false, UpdateMethod = [Kind = "Replace"], TypeSettings = [Kind = "Table"]]]}]
shared dimension_city = let
Este registro de atributo tiene un campo con el nombre QueryName, que contiene el nombre de la consulta que tiene asociada toda la lógica de destino de datos para esta consulta. Esta consulta tiene el siguiente aspecto:
shared dimension_city_DataDestination = let
Pattern = Fabric.Warehouse([HierarchicalNavigation = null, CreateNavigationProperties = false]),
Navigation_1 = Pattern{[workspaceId = "8b325b2b-ad69-4103-93ae-d6880d9f87c6"]}[Data],
Navigation_2 = Navigation_1{[warehouseId = "527ba9c1-4077-433f-a491-9ef370e9230a"]}[Data],
TableNavigation = Navigation_2{[Item = "City", Schema = "dbo"]}?[Data]?
in
TableNavigation
Observe que, de forma similar al script del origen de Lakehouse, este script para el destino tiene un patrón similar en el que codifica el workspaceid que debe usarse y también warehouseId. Reemplace esos valores fijos por los identificadores de los parámetros y el script tendrá el siguiente aspecto:
shared dimension_city_DataDestination = let
Pattern = Fabric.Warehouse([HierarchicalNavigation = null, CreateNavigationProperties = false]),
Navigation_1 = Pattern{[workspaceId = WorkspaceId]}[Data],
Navigation_2 = Navigation_1{[warehouseId = WarehouseId]}[Data],
TableNavigation = Navigation_2{[Item = "City", Schema = "dbo"]}?[Data]?
in
TableNavigation
Ahora puede confirmar este cambio y actualizar su flujo de datos utilizando los cambios de su flujo de datos a través de la función de control de código fuente en su área de trabajo. Puede comprobar que todos los cambios están en vigor abriendo el flujo de datos y revisando el destino de los datos y las referencias de parámetros anteriores que se agregaron. Esto finaliza toda la parametrización del flujo de datos y ahora puede pasar a ejecutar el flujo de datos pasando los valores de parámetro para su ejecución.
Ejecutar solicitud con valores de parámetro
Puede usar la API REST de Fabric para enviar una solicitud de ejecución con una carga personalizada que contenga los valores de parámetro para esa operación de ejecución específica y también puede usar la API REST para detectar parámetros de flujo de datos y comprender lo que espera el flujo de datos para que pueda desencadenar una ejecución. En este tutorial, vas a utilizar la experiencia que se encuentra en la actividad de flujo de datos para tuberías de Fabric. Empiece por crear una canalización y agregue una nueva actividad de flujo de datos al lienzo. En la configuración de la actividad, busque el área de trabajo donde se encuentra el flujo de datos y, a continuación, seleccione el flujo de datos en la lista desplegable.
Se puede expandir una sección de parámetros de flujo de datos para mostrar todos los parámetros disponibles en el flujo de datos y sus valores predeterminados. Puede reemplazar cualquier valor aquí, y los valores pasados se usarán para definir qué orígenes, lógica y destino deben usarse para evaluar la ejecución del flujo de datos. También puede intentar nuevos escenarios creando un nuevo almacén y cambiando el WarehouseId para la evaluación o utilizando este patrón en una canalización de implementación donde se deben pasar el WorkspaceId y otros parámetros para señalar los elementos correctos en el entorno correspondiente.