Reflejar datos en un almacén de datos en la nube
Las tareas de reflejo de datos le permiten consultar los datos almacenados en su Qlik Open Lakehouse desde Snowflake. Los datos se reflejan en Snowflake sin duplicación.El reflejo de tablas garantiza que los costes de almacenamiento e ingeniería sean mínimos y que se mantenga una única fuente de verdad.
Tras incorporar sus datos a Qlik Open Lakehouse, puede reflejarlos en Snowflake utilizando tablas espejo. Los datos en Iceberg pueden consultarse utilizando un motor de consulta que admita Iceberg de forma nativa, como Amazon Athena. Sin embargo, las tablas espejo son ideales cuando se desea implantar la arquitectura abierta de lakehouse Iceberg pero seguir utilizando Snowflake como motor de consulta. La tarea de reflejo de datos automatiza el proceso de hacer que las tablas Iceberg sean accesibles en Snowflake declarándolas como tablas externas. Snowflake se refiere a la tabla Iceberg como una tabla externa porque no administra la tabla, tan solo lee de ella. Las tablas externas le permiten consultar sus datos Iceberg en Snowflake sin necesidad de migrar los datos o la gestión de sus tablas a Snowflake.
Para reflejar los datos, debe crear un volumen externo en Snowflake que apunte al depósito de S3 donde se encuentran las tablas Iceberg y que actualiza la tarea de almacenamiento. A continuación, cree una integración de catálogo Snowflake que apunte al catálogo de datos utilizado por su proyecto Qlik Open Lakehouse, por ejemplo, AWS Glue Data Catalog.
La tarea de reflejo ejecuta las sentencias DDL necesarias para crear las tablas externas en Snowflake. La tabla (esquema) se muestra en Snowflake, junto con las tablas de cambios e historial, pero si se observa la definición de la tabla, se muestra como una vista creada sobre la tabla externa. Los usuarios de Snowflake pueden consultar las vistas como si los datos estuvieran almacenados en su entorno Snowflake. Los datos reflejados ofrecen un alto rendimiento, ya que Qlik sigue gestionando y optimizando los datos.
Mecanismo de actualización
Snowflake apunta a los metadatos que reflejan la última captura de los datos disponibles dentro de Iceberg. Hay dos formas de actualizar los metadatos:
-
Administrado por Qlik: esta opción requiere un almacén de Snowflake activo e incluye la supervisión y la vista previa de los datos.Seleccione esta opción cuando desee crear transformaciones posteriores, descendentes, y supervisar y programar la tarea. Qlik posee la operación de actualización de los metadatos, por lo que puede configurarlo manualmente, por ejemplo, para que se ejecute cada 30 minutos. Esta opción es especialmente útil para las transformaciones de varias tablas, ya que los metadatos de todas las tablas se actualizan simultáneamente. Aunque puede perder parte de la ganancia en tiempo real que ofrece la actualización gestionada por Snowflake, mantendrá la coherencia entre las tablas. Para las transformaciones de varias tablas, puede activar la actualización tantas veces como sea necesario. Qlik le recomienda que establezca la activación basada en eventos en las tareas de transformación posteriores que siguen a la tarea de reflejo programada.
-
Administrado por Snowflake: una operación sin servidor que aprovecha la infraestructura Snowpipe sin requerir ni activar un almacén de computación. Esta opción se recomienda cuando no necesite transformaciones posteriores. El intervalo de actualización se configura al crear la integración del catálogo Snowflake. Para supervisar el estado de la actualización automática, consulte el SYSTEM$AUTO_REFRESH_STATUS en Snowflake. Qlik pierde la propiedad del proceso y es incapaz de supervisar tareas de este tipo.
Cada tarea de reflejo dentro de un proyecto puede configurarse con su propio mecanismo de actualización: si crea dos tareas de reflejo de datos, una puede utilizar la actualización administrada por Qlik y la otra puede utilizar la actualización administrada por Snowflake.
Evolución del esquema
Si añade o elimina manualmente columnas o tablas de la tarea de almacenamiento, o indirectamente de la tarea de aterrizaje, los cambios se reflejarán automáticamente en el diseño de la tarea de reflejo. Debe preparar la tarea para aplicar los cambios a la tabla reflejada. Si la evolución del esquema está activa en la configuración de las tareas de réplica y almacenamiento, cualquier cambio de esquema que se detecte automáticamente en la tarea de almacenamiento se aplicará a las tablas de réplica.
Requisitos previos
Una tarea de reflejo de datos solo puede añadirse después de que se haya creado una tarea de almacenamiento en un proyecto de Qlik Open Lakehouse. Una tarea de almacenamiento puede tener varias tareas de reflejo de datos. Una tarea de reflejo de datos solo puede asociarse a una tarea de almacenamiento.
Para reflejar sus datos en Snowflake, necesita:
-
Una conexión a la base de datos Snowflake en la que desea reflejar sus datos. Opcionalmente, puede crear una nueva conexión durante la creación de la tarea de reflejo. Encontrará los requisitos en las instrucciones de conexión a Snowflake.
-
Un volumen externo de Snowflake. Esto concede a Snowflake un acceso restringido a su ubicación de S3. Para configurar el volumen, consulte Configurar un volumen externo para Amazon S3.
-
Una integración de catálogo de datos de AWS Glue. Esto permite a Snowflake conectarse a los datos mantenidos en formato de tabla abierta Iceberg en su almacén de objetos. Para configurar una integración en el catálogo, consulte Configurar una integración en el catálogo para AWS Glue.
Crear una tarea de reflejo de datos
Para reflejar los datos en Snowflake, haga lo siguiente:
-
Abra el proyecto que contiene la tarea de almacenamiento de los datos que desea reflejar.
-
Haga clic en
Más acciones en la tarea de almacenamiento. Seleccione Reflejar datos y configúrelos:
-
Nombre: escriba un nombre para su tarea de reflejo.
-
Descripción: opcionalmente, describa el propósito de la tarea.
-
Conexión:
-
Para utilizar una conexión existente, haga clic en Seleccionar para abrir el cuadro de diálogo Conexión de fuente segura. Seleccione el Espacio en el que se encuentra su conexión y, a continuación, seleccione la conexión. Haga clic en Editar para modificar las propiedades de la conexión.
-
Para crear una nueva conexión, haga clic en Crear conexión para abrir el cuadro de diálogo Crear conexión y siga las instrucciones.
-
-
Base de datos: indique el nombre de la base de datos en la que desea reflejar los datos.
-
Volumen externo de Snowflake: escriba el nombre del volumen externo creado en Snowflake.
-
Integración en el catálogo de Snowflake: indique el nombre de la integración de catálogo creada en Snowflake.
-
Seleccione cómo desea que se actualicen sus datos en Snowflake:
-
Administrado por Qlik: seleccione esta opción si desea crear transformaciones descendentes. Esto requiere un almacén Snowflake activo y está supervisado por Qlik.
-
Administrado por Snowflake: seleccione esta opción cuando no desee realizar transformaciones posteriores.Un almacén de Snowflake no es necesario y, por tanto, no está supervisado por Qlik. Esto se administra y supervisa en Snowflake.
-
Cree la tarea de reflejo para añadirla a la tarea de almacenamiento en su canalización de datos.
-
Haga clic en
Más acciones en la tarea de reflejo y seleccione Abrir. Asegúrese de que está visualizando la vista Diseño.
-
Para seleccionar un subconjunto de los conjuntos de datos disponibles, haga clic en Seleccionar datos de origen y elimine los conjuntos de datos no deseados.
-
Haga clic en Preparar para crear la tabla externa en Snowflake y reflejar los datos.
Realizar transformaciones
Si necesita transformar sus datos, puede crear un proyecto en Snowflake y utilizar como fuente una tarea de reflejo de datos dentro de su proyecto de Qlik Open Lakehouse. Para crear una tarea de transformación utilizando datos de un proyecto existente, consulte Crear canalizaciones entre proyectos.
Eliminar una tarea de reflejo de datos
Cuando elimina una tarea de reflejo de datos, las tablas y vistas externas se borran de Snowflake y ya no están disponibles para su consulta. Una tarea de almacenamiento no puede borrarse mientras una tarea de reflejo esté leyendo de ella.
Para eliminar una tarea de reflejo de datos, haga lo siguiente:
-
En la tarea de reflejo de datos que desee eliminar, haga clic en el menú
Más acciones de la tarea y seleccione Eliminar. -
En el diálogo de confirmación, haga clic en Eliminar.