Gå till huvudinnehåll Gå till ytterligare innehåll

Spegling av data till ett molndatalager

Med speglingsuppgifter kan du ställa frågor om data som lagras i ditt Qlik Open Lakehouse från dina molndatalager. Data återspeglas i ditt datalager utan att kopieras. Speglade tabeller gör att lagrings- och teknikkostnaderna är minimala och upprätthåller en enda källa till sanning.

När du har överfört dina data till ett Qlik Open Lakehouse kan du spegla dina data till ditt molndatalager med hjälp av spegeltabeller. Data i Iceberg kan efterfrågas med hjälp av en frågemotor som har inbyggt stöd för Iceberg, t.ex. Amazon Athena. Spegeltabeller är dock perfekta när du vill implementera den öppna Iceberg-sjöhusarkitekturen och fortsätter att använda din datalagerfrågemotor. Uppgiften Spegla data automatiserar processen med att göra Iceberg-tabeller tillgängliga genom att deklarera dem som externa tabeller och vyer i ditt datalager. Datalagret refererar till Iceberg-tabellen som en extern vy eftersom det inte hanterar tabellen utan bara läser från den. Med externa tabeller och vyer kan du ställa frågor om dina Iceberg-data i ditt datalager utan att migrera data eller hanteringen av dina tabeller till ditt datalager.

Speglingsuppgiften kör de DDL-satser som krävs för att skapa de externa tabellerna och vyerna. Tabellen (schemat) visas i datalagret tillsammans med ändrings- och historiktabellerna, men om man tittar på tabelldefinitionen visas den som en vy som skapats ovanpå den externa tabellen. Datakonsumenter kan ställa frågor till vyerna som om data lagras i deras datalager-miljö. Speglade data ger hög prestanda, eftersom Qlik fortsätter att hantera och optimera data.

Speglat till flera datalager

En enskild datamängd kan speglas till flera molndatalager. Följande bild visar hur ett Qlik Open Lakehouse pipeline-projekt kan användas för att spegla data till Amazon Redshift och Snowflake:

  • Pipelinens hämtar data från en MySQL-databas med hjälp av kopplingen, MySQL QCDI-BETA.

  • Lake-mellanlagringsuppgiften, EnergyGen_Lake_landing, hämtar rådata till en Amazon S3-bucket.

  • Därefter kopierar lagringsuppgiften, EnergyGen_Storage, data till en S3-plats för att lagra data i Apache Iceberg-format.

  • Speglingsdatauppgiften, Redshift Mirror, skapar de nödvändiga vyerna för att möjliggöra att data kan efterfrågas från Redshift, och uppdaterar automatiskt data.

  • Transformationsuppgiften, Redshift_Energygen_Silver, används för att transformera och konsumera speglingsdata i Redshift.

  • En andra Mirror-datauppgift, Snowflake Mirror, läggs till för att skapa de nödvändiga vyerna för att möjliggöra att data kan frågas från Snowflake.Mirror-uppgiften använder den Qlik-hanterade uppdateringsmekanismen, vilket möjliggör nedströms transformationer.

  • Transformationsuppgiften, Snowflake_Energygen_Data_Products, används för att transformera och konsumera data i Snowflake.

Uppdatera mekanism

Den uppdateringsmekanism som är tillgänglig för dig beror på din molndatalagerleverantör, enligt detaljerna nedan.

Redshift

Data som speglas till Redshift uppdateras automatiskt och det finns inget behov av att schemalägga eller köra uppgiften. Alla tabell- och vynamn konverteras till gemener i Redshift, eftersom Qlik Open Lakehouse inte stöder skiftlägeskänsliga objektnamn (databas, schema, tabell eller kolumn).

Snowflake

Snowflake pekar på de metadata som återspeglar den senaste ögonblicksbilden av tillgängliga data i Iceberg. Det finns två sätt att uppdatera metadata:

  1. Qlik-hanterad: detta alternativ kräver ett aktivt Snowflake-lager och inkluderar övervakning och förhandsgranskning av data. Välj det här alternativet när du vill skapa nedströmstransformeringar och övervaka och schemalägga uppgiften. Qlik äger uppdateringsoperationen för metadata, så du kan konfigurera detta manuellt, till exempel för att köras var 30:e minut. Det här alternativet är särskilt relevant för transformeringar med flera tabeller, eftersom metadata för alla tabeller uppdateras samtidigt. Även om du kan förlora en del av den realtidsvinst som den Snowflake-hanterade uppdateringen erbjuder, behåller du konsekvensen tabellerna emellan. För transformeringar med flera tabeller kan du utlösa uppdateringen så ofta som behövs. Qlik rekommenderar att du ställer in händelsebaserad utlösning på nedströms omvandlingsaktiviteter som följer den schemalagda spegelaktiviteten.

  2. Snowflake-hanterad: en serverlös åtgärd som utnyttjar Snowpipe-infrastrukturen utan att kräva eller aktivera ett datalager. Detta alternativ rekommenderas när du inte behöver transformeringar nedströms. Uppdateringsintervallet konfigureras när du skapar katalogintegrationen för Snowflake. För att övervaka statusen för den automatiska uppdateringen ställer du en fråga till SYSTEM$AUTO_REFRESH_STATUS i Snowflake. Qlik förlorar äganderätten till processen och kan inte övervaka uppgifter av den här typen.

Anteckning om informationVarje spegeluppgift inom ett Snowflake-projekt kan konfigureras med sin egen uppdateringsmekanism: om du skapar två spegeluppgifter kan den ena använda Qlik-hanterad uppdatering, och den andra kan använda Snowflake-hanterad uppdatering.
Anteckning om informationOm du försöker fråga spegelutdata eller använda dem i transformeringar och ser ett internt serverfel (se exempel nedan), då är din Iceberg-metadata osynkroniserad med den externa katalogen. För att åtgärda detta problem, kör speglingsuppgiften för att uppdatera Iceberg-metadata.

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.

Förutsättningar

Följande krav gäller för alla datalager som stöds:

  • En speglingsdatauppgift kan endast läggas till efter att en lagringsuppgift har skapats i ett Qlik Open Lakehouse-projekt.

  • En lagringsuppgift kan ha flera speglingsdatauppgifter, var och en riktad mot ett annat datalager.

  • En speglingsdatauppgift kan endast associeras med en lagringsuppgift.

  • För att utföra transformationer, skapa ett datalagerprojekt och använd uppgiften Spegla data som källa. Projektet och speglingsuppgiften måste använda samma datalagerplattform, till exempel Redshift.

För att spegla dina data, konfigurera inställningarna för ditt måldatalager.

Redshift

  • En koppling till datalagerdatabasen där du vill spegla dina data. Alternativt kan du skapa en ny koppling under skapandet av spegeluppgiften. Mer information finns i Amazon Redshift.

  • En IAM-roll som antas av Redshift med läsbehörigheter för Glue Data Catalog.Följande skript tillhandahåller de nödvändiga behörigheterna för att komma åt din katalog. Se till att du ersätter <ICEBERG_BUCKET_NAME> med ditt bucketnamn:

    {
    	 "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>/*"
                    ]
                }
    }

    Denna roll kräver följande förtroenderelation:

    {
    	"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"
                 }
          ]
    }

    Anteckning om informationMer information finns i IAM policies for Amazon Redshift Spectrum.
  • Ett externt schema i Redshift som pekar på lagringsuppgiftens databas. Du måste skapa ett externt Redshift-schema genom att köra CREATE EXTERNAL SCHEMA kommandot och peka på källans interna Iceberg-lagringsuppgiftsdatabas. Externa konsumenter bör konsumera från speglingsuppgiftens schemakonsumtionsvyer. För att skapa ditt externa schema, använd följande syntax, och se till att DATABASE egenskapen är databasen som skapats av lagringsuppgiften:


    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

  • En koppling till datalagerdatabasen där du vill spegla dina data. Alternativt kan du skapa en ny koppling under skapandet av spegeluppgiften. Mer information finns i Snowflake.

  • Snowflake extern volym Detta ger Snowflake begränsad åtkomst till din S3-plats. För att konfigurera volymen, se Konfigurera en extern volym för Amazon S3.

  • En AWS Glue Data Catalog-integration. Detta gör det möjligt för Snowflake att få koppling till data i Icebergs öppna tabellformat i ditt objektlager. Om du vill konfigurera en katalogintegration, se Konfigurera en katalogintegration för AWS Glue.

Skapa en spegeldatauppgift

Gör så här för att spegla data till ditt datalager:

  1. Öppna projektet som innehåller lagringsuppgiften för de data som du vill spegla.

  2. Klicka på Fler åtgärder i lagringsuppgiften. Välj Spegla data och konfigurera den:

    • Namn: ange ett namn för din speglingsuppgift.

    • Beskrivning: om du vill kan du beskriva syftet med uppgiften.

    • Datalager: Välj ditt måldatalager.

    • Koppling

      • Om du vill använda en befintlig koppling klickar du på Välj för att öppna dialogrutan Säker källkoppling. Välj det Utrymme där din koppling är placerad och välj sedan kopplingen. Klicka på Redigera för att ändra egenskaperna för kopplingen.

      • Om du vill skapa en ny koppling klickar du på Skapa koppling för att öppna dialogrutan Skapa koppling och följer instruktionerna.

    • Databas: ange namnet på den databas där du vill spegla data.

    • Att spegla till Redshift:

      • Externt schema: Ange namnet på schemat där vyerna kommer att skapas.

        Anteckning om informationAlla tabell- och vynamn konverteras till gemener i Redshift.
    • Att spegla till Snowflake:

      • Extern volym i Snowflake: ange namnet på den externa volym som skapats i Snowflake.

      • Katalogintegration i Snowflake: ange namnet på den katalogintegration som skapats i Snowflake.

      • Välj hur du vill att dina data ska uppdateras i Snowflake:

        • Qlik-hanterad: Välj det här alternativet om du vill skapa nedströmstransformeringar. Detta kräver ett aktivt Snowflake-lager och övervakas av Qlik.

        • Snowflake-hanterad: välj det här alternativet om du vill skapa nedströmstransformeringar. Ett Snowflake-lager är inte obligatoriskt och övervakas därför inte av Qlik. Detta administreras och övervakas i Snowflake.

  3. Klicka på OK för att skapa spegeluppgiften och lägga till den i lagringsuppgiften i din pipeline.

  4. Klicka på Fler åtgärder i speglingsuppgiften och välj Öppna. Kontrollera att du visar vyn Design.

  5. Om du vill välja en delmängd av de tillgängliga datauppsättningarna klickar du på Välj källdata och tar bort oönskade datauppsättningar.

  6. Klicka på Förbered för att skapa de externa objekten och spegla data.

Utföra transformeringar

Om du behöver transformera dina data kan du skapa ett Redshift- eller Snowflake-projekt och använda en speglad datauppgift i ditt Qlik Open Lakehouse-projekt som källa.Källan för speglingsuppgiften måste vara samma molndatalagerplattform som projektet.Till exempel, när du skapar ett Redshift-projekt för att utföra transformationer, måste du använda en Redshift-speglad datauppgift som källa.

Anteckning om informationOm du vill skapa en datatransformering med data från ett befintligt projekt, se Bygga projektöverskridande pipelines.

Ta bort en spegeldatauppgift

När du tar bort en speglingsuppgift tas de interna scheman och vyer som skapats av speglingsuppgiften bort. Externa scheman och tabeller i Redshift tas inte bort. Om en tabell tas bort från AWS Glue, till exempel när en användare tar bort datauppsättningen i lagringen eller tar bort hela lagringsuppgiften, återspeglas ändringen automatiskt i Redshifts externa schema. Tabellen tas bort och behöver inte tas bort separat. Som bästa praxis bör du ta bort det externa schemat helt om det inte längre används.

Anteckning om informationEn lagringsuppgift kan inte tas bort medan en spegeluppgift läser från den.

Gör följande för att ta bort en spegeldatauppgift:

  1. Klicka på menyn Fler åtgärder i den spegeldatauppgift som du vill ta bort och välj Ta bort.

  2. Klicka på Radera i bekräftelsedialogrutan.

Var den här sidan till hjälp för dig?

Om du stöter på några problem med den här sidan eller innehållet på den, t.ex. ett stavfel, ett saknat steg eller ett tekniskt fel – meddela oss!