Mirroring danych do hurtowni danych w chmurze
Zadania lustrzane umożliwiają odpytywanie danych przechowywanych w Qlik Open Lakehouse z hurtowni danych w chmurze. Dane są odzwierciedlane w hurtowni bez duplikowania. Tabele lustrzane zapewniają minimalne koszty przechowywania i inżynierii oraz pozwalają utrzymać jedno źródło informacji.
Po wprowadzeniu danych do Qlik Open Lakehouse można wykonać lustrzane odbicie danych w hurtowni danych w chmurze przy użyciu tabel lustrzanych. Dane w Iceberg można przeszukiwać za pomocą silnika zapytań, który natywnie obsługuje Iceberg, takiego jak Amazon Athena. Tabele lustrzane są natomiast idealne, gdy chcesz wdrożyć otwartą architekturę Iceberg lakehouse i nadal używać silnika zapytań swojej hurtowni danych. Zadanie Mirror data automatyzuje proces udostępniania tabel Iceberg poprzez zadeklarowanie ich jako tabel i widoków zewnętrznych w Twojej hurtowni danych. Hurtownia danych odnosi się do tabeli Iceberg jako widoku zewnętrznego, ponieważ nie zarządza tabelą, a jedynie odczytuje z niej dane. Tabele i widoki zewnętrzne umożliwiają wykonywanie zapytań do danych Iceberg w Twojej hurtowni danych bez migrowania danych lub zarządzania tabelami do Twojej hurtowni danych.
Zadanie mirroringu wykonuje niezbędne instrukcje DDL w celu utworzenia tabel i widoków zewnętrznych. Tabela (schemat) jest wyświetlana w hurtowni danych, wraz z tabelami zmian i historii, ale jeśli spojrzeć na definicję tabeli, jest ona wyświetlana jako widok utworzony na zewnętrznej tabeli. Konsumenci danych mogą wysyłać zapytania do widoków tak, jakby dane były przechowywane w ich środowisku hurtowni danych. Dane lustrzane oferują wysoką wydajność, ponieważ Qlik nadal zarządza danymi i je optymalizuje.
Odbicie lustrzane w wielu hurtowniach danych
Pojedynczy zestaw danych może być replikowany do wielu hurtowni danych w chmurze. Poniższy obraz przedstawia, jak projekt potoku Qlik Open Lakehouse może być użyty do replikacji danych do Amazon Redshift i Snowflake:
-
Potok pobiera dane z bazy danych MySQL, używając połączenia, MySQL QCDI-BETA.
-
Zadanie umieszczania w Lake, EnergyGen_Lake_landing, pobiera surowe dane do zasobnika Amazon S3.
-
Następnie zadanie przechowywania, EnergyGen_Storage, kopiuje dane do lokalizacji S3, aby przechowywać je w formacie Apache Iceberg.
-
Zadanie Mirror data, Redshift Mirror, tworzy niezbędne widoki, aby umożliwić odpytywanie danych z Redshift, i automatycznie odświeża dane.
-
Zadanie transformacji, Redshift_Energygen_Silver, służy do transformacji i konsumpcji danych lustrzanych w Redshift.
-
Drugie zadanie danych Mirror, Snowflake Mirror, jest dodawane w celu utworzenia niezbędnych widoków, aby umożliwić wykonywanie zapytań do danych ze Snowflake.Zadanie mirror używa Qlik-managed mechanizmu odświeżania, który umożliwia transformacje strumieniowe.
-
Zadanie transformacji, Snowflake_Energygen_Data_Products, jest używane do transformacji i konsumpcji danych w Snowflake.
Mechanizm odświeżania
Dostępny mechanizm odświeżania zależy od Twojego dostawcy hurtowni danych w chmurze, jak wyszczególniono poniżej.
Redshift
Dane odzwierciedlone w Redshift są automatycznie odświeżane i nie ma potrzeby planowania ani uruchamiania zadania. Wszystkie nazwy tabel i widoków są konwertowane na małe litery w Redshift, ponieważ Qlik Open Lakehouse nie obsługuje nazw obiektów uwzględniających wielkość liter (baza danych, schemat, tabela lub kolumna).
Snowflake
Snowflake wskazuje na metadane, które odzwierciedlają najnowszą migawkę dostępnych danych w Iceberg. Istnieją dwa sposoby odświeżenia metadanych:
-
Qlik-managed: ta opcja wymaga aktywnej hurtowni Snowflake i obejmuje monitorowanie oraz podgląd danych. Wybierz tę opcję, jeśli chcesz utworzyć transformacje podrzędne oraz monitorować i zaplanować zadanie. Qlik jest właścicielem operacji odświeżania metadanych, dzięki czemu można ją skonfigurować ręcznie, na przykład tak, aby była uruchamiana co 30 minut. Opcja ta jest szczególnie istotna w przypadku transformacji wielu tabel, ponieważ metadane dla wszystkich tabel są aktualizowane jednocześnie. Chociaż można stracić część korzyści w czasie rzeczywistym, które oferuje odświeżanie zarządzane przez Snowflake, zachowuje się spójność między tabelami. W przypadku transformacji wielu tabel można wyzwalać odświeżanie tak często, jak to konieczne. Qlik zaleca ustawienie wyzwalania opartego na zdarzeniach dla dalszych zadań transformacji, które następują po zaplanowanym zadaniu lustrzanym.
-
Snowflake-managed: operacja bezserwerowa, która wykorzystuje infrastrukturę Snowpipe bez konieczności posiadania lub aktywowania magazynu obliczeniowego. Opcja ta jest zalecana, gdy nie są wymagane dalsze przekształcenia. Interwał odświeżania jest konfigurowany podczas tworzenia integracji katalogu Snowflake. Aby monitorować status automatycznego odświeżania, należy wysłać zapytanie do SYSTEM$AUTO_REFRESH_STATUS w Snowflake. Qlik traci własność procesu i nie jest w stanie monitorować zadań tego typu.
The parquet file 'tg_open_lakehouse/bronze/sales/tables/tg_sales_ingestion_bronze__internal.order_details__internal/data/hdr__scd_partition=asset_state/2025_09_12_00_37_asset_state_apply-4bcbb2eb-4ad3-4d88-bea6-ea611576624e.parquet' for table 'OPENLAKEHOUSE."snowflake_mirror__internal"."ext__order_details"' was inaccessible.
Wymagania wstępne
Poniższe wymagania dotyczą wszystkich obsługiwanych celów hurtowni danych:
-
Zadanie mirroringu danych można dodać dopiero po utworzeniu zadania przechowywania w projekcie Qlik Open Lakehouse.
-
Zadanie przechowywania może mieć wiele zadań mirroringu danych, każde z nich skierowane do innej hurtowni danych.
-
Zadanie mirroringu danych może być powiązane z jednym zadaniem przechowywania.
-
Aby wykonać transformacje, utwórz projekt hurtowni danych i użyj zadania Mirror data jako źródła. Projekt i zadanie mirror muszą korzystać z tej samej platformy hurtowni danych, na przykład Redshift.
Aby wykonać kopię lustrzaną danych, skonfiguruj ustawienia dla docelowej hurtowni danych.
Redshift
-
Połączenie z bazą danych hurtowni danych, w której chcesz wykonać kopię lustrzaną danych. Opcjonalnie można utworzyć nowe połączenie podczas tworzenia zadania lustrzanego. Więcej informacji zawiera temat Amazon Redshift.
-
Rola IAM przyjęta przez Redshift z uprawnieniami do odczytu katalogu danych Glue.Poniższy skrypt zapewnia niezbędne uprawnienia do dostępu do katalogu. Upewnij się, że zastąpisz <ICEBERG_BUCKET_NAME> nazwą swojego zasobnika:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "glue:GetDatabase", "glue:GetDatabases", "glue:GetTable", "glue:GetTables", "glue:GetPartition", "glue:GetPartitions" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::<ICEBERG_BUCKET_NAME>", "arn:aws:s3:::<ICEBERG_BUCKET_NAME>/*" ] } }Ta rola wymaga następującej relacji zaufania:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "redshift-serverless.amazonaws.com" }, "Action": "sts:AssumeRole" }, { "Effect": "Allow", "Principal": { "Service": "redshift.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }InformacjaWięcej informacji można znaleźć w IAM policies for Amazon Redshift Spectrum. -
Zewnętrzny schemat w Redshift, który wskazuje na bazę danych zadania przechowywania. Musisz utworzyć zewnętrzny schemat Redshift, wykonując polecenie CREATE EXTERNAL SCHEMA i wskazując wewnętrzną bazę danych zadania przechowywania Iceberg źródła. Zewnętrzni konsumenci powinni korzystać z widoków konsumpcji schematu zadania lustrzanego. Aby utworzyć zewnętrzny schemat, użyj następującej składni, upewniając się, że właściwość DATABASE jest bazą danych utworzoną przez zadanie przechowywania:
CREATE EXTERNAL SCHEMA <local_schema_name>
FROM DATA CATALOG
DATABASE '<database_name>'
IAM_ROLE 'arn:aws:iam::<AWS account-id>:role/<role-name>'
REGION '<aws-region>'
Snowflake
-
Połączenie z bazą danych hurtowni danych, w której chcesz wykonać kopię lustrzaną danych. Opcjonalnie można utworzyć nowe połączenie podczas tworzenia zadania lustrzanego. Więcej informacji zawiera temat Snowflake.
-
Wolumin zewnętrzny Snowflake. Daje to Snowflake ograniczony dostęp do lokalizacji S3. Aby skonfigurować wolumin, zobacz Konfigurowanie woluminu zewnętrznego dla Amazon S3.
-
Integracja z katalogiem danych AWS Glue. Umożliwia to Snowflake połączenie z danymi przechowywanymi w formacie otwartej tabeli Iceberg w magazynie obiektów. Aby skonfigurować integrację katalogu, zobacz Konfigurowanie integracji katalogu dla AWS Glue.
Tworzenie zadania mirroringu danych
Aby wykonać kopię lustrzaną danych do hurtowni danych, wykonaj następujące czynności:
-
Otwórz projekt, który zawiera zadanie przechowywania danych, które chcesz odzwierciedlić.
-
Kliknij opcję
Więcej czynności w zadaniu przechowywania. Wybierz opcję Mirroring danych i skonfiguruj ją:
-
Nazwa: Wprowadź nazwę zadania lustrzanego.
-
Opis: Opcjonalnie opisz cel zadania.
-
Hurtownia danych: Wybierz docelową hurtownię danych.
-
Połączenie:
-
Aby użyć istniejącego połączenia, kliknij przycisk Wybierz w celu otwarcia okna dialogowego Bezpieczne połączenie źródłowe. Wybierz Przestrzeń, w której znajduje się połączenie, a następnie wybierz połączenie. Kliknij Edytuj, aby zmienić właściwości połączenia.
-
W celu utworzenia nowego połączenia, kliknij przycisk Utwórz połączenie, aby otworzyć okno dialogowe Utwórz połączenie i wykonuj instrukcje.
-
-
Baza danych: wprowadź nazwę bazy danych, w której chcesz wykonać kopię lustrzaną danych.
-
Aby wykonać mirroring do Redshift:
-
Schemat zewnętrzny: Wprowadź nazwę schematu, w którym zostaną utworzone widoki.
InformacjaWszystkie nazwy tabel i widoków są konwertowane na małe litery w Redshift.
-
-
Aby wykonać mirroring do Snowflake:
-
Wolumin zewnętrzny Snowflake: wprowadź nazwę woluminu zewnętrznego utworzonego w Snowflake.
-
Integracja katalogu Snowflake: wprowadź nazwę integracji katalogu utworzonej w Snowflake.
-
Wybierz sposób odświeżania danych w Snowflake:
-
Zarządzane przez Qlik: wybierz tę opcję, jeśli chcesz tworzyć przekształcenia niższego szczebla. Wymaga to aktywnego magazynu Snowflake i jest monitorowane przez Qlik.
-
Zarządzane przez Snowflake: wybierz tę opcję, jeśli nie chcesz tworzyć przekształceń niższego szczebla. Hurtowania Snowflake nie jest wymagana i dlatego nie jest monitorowana przez Qlik. Jest zarządzana i monitorowana w Snowflake.
-
-
-
Kliknij OK, aby utworzyć zadanie mirroringu i dodać je do zadania przechowywania w potoku.
-
Kliknij
Więcej czynności na zadaniu lustrzanym i wybierz Otwórz. Upewnij się, że wyświetlany jest widok Projektowanie.
-
Aby wybrać podzbiór dostępnych zestawów danych, kliknij Wybierz źródło danych i usuń niechciane zestawy danych.
-
Kliknij przycisk Przygotuj, aby utworzyć obiekty zewnętrzne i wykonać kopię lustrzaną danych.
Wykonywanie transformacji
Jeśli konieczne jest przekształcenie danych, można utworzyć projekt Redshift lub Snowflake i użyć zadania mirroringu danych w projekcie Qlik Open Lakehouse jako źródła.Źródło zadania mirroringu musi być tą samą platformą hurtowni danych w chmurze co projekt.Na przykład, gdy tworzysz projekt Redshift, aby wykonać transformacje, musisz użyć zadania mirroringu danych Redshift jako źródła.
Usuwanie zadania mirroringu danych
Po usunięciu zadania mirror, wewnętrzne schematy i widoki utworzone przez zadanie mirror są usuwane. Zewnętrzne schematy i tabele w Redshift nie są usuwane. Jeśli tabela zostanie usunięta z AWS Glue, na przykład gdy użytkownik usunie zestaw danych w pamięci masowej lub usunie całe zadanie pamięci masowej, zmiana zostanie automatycznie odzwierciedlona w zewnętrznym schemacie Redshift. Tabela jest usuwana i nie wymaga oddzielnego usuwania. Zgodnie z najlepszymi praktykami, usuń zewnętrzny schemat w całości, jeśli nie jest już używany.
Aby usunąć zadanie mirroringu danych, wykonaj następujące czynności:
-
Na zadaniu mirroringu danych, które chcesz usunąć, kliknij menu
Więcej czynności i wybierz pozycję Usuń. -
W oknie dialogowym potwierdzenia kliknij Usuń.