Spegla data till ett molndatalager | Qlik CloudHjälp
Gå till huvudinnehåll Gå till ytterligare innehåll

Spegla data till ett molndatalager

Speglingstjänster gör det möjligt att köra frågor mot data som lagras i din Qlik Open Lakehouse från dina molndatalager. Data speglas i ditt datalager utan duplicering. Speglade tabeller säkerställer att lagrings- och utvecklingskostnader minimeras och upprätthåller en enda källa till sanning.

Efter att du har registrerat dina data i en Qlik Open Lakehouse kan du spegla dina data till ditt molndatalager med hjälp av speglingstabeller. Data i Iceberg kan frågasättas med en frågemotor som har inbyggt stöd för Iceberg, till exempel Amazon Athena. Speglingstabeller är dock idealiska när du vill implementera den öppna Iceberg lakehouse-arkitekturen och fortsätta använda frågemotorn i ditt datalager. Speglingstjänsten för data automatiserar processen 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. Externa tabeller och vyer gör att du kan köra frågor mot dina Iceberg-data i ditt datalager utan att migrera data eller hanteringen av dina tabeller till ditt datalager.

Speglingstjänsten kör de nödvändiga DDL-instruktionerna för att skapa de externa tabellerna och vyerna. Tabellen (schemat) visas i datalagret, tillsammans med ändrings- och historiktabellerna, men om du tittar på tabelldefinitionen visas den som en vy som skapats ovanpå den externa tabellen. Datakonsumenter kan köra frågor mot vyerna som om data vore lagrade i deras molndatalagermiljö. Speglade data erbjuder hög prestanda, eftersom Qlik fortsätter att hantera och optimera data.

Följande datalager stöds:

  • Amazon Redshift

  • Databricks

  • Snowflake

Spegla till flera datalager

Ett enskilt dataset 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, Snowflake och Databricks:

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

  • Tjänsten för sjömellanlagring, EnergyGen_Lake_landing hämtar rådata till en Amazon S3-bucket.

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

  • Speglingstjänsten för data, Redshift Mirror, skapar de nödvändiga vyerna för att göra det möjligt att köra frågor mot data från Amazon Redshift, och uppdaterar automatiskt data.

  • En andra speglingstjänst för data, Snowflake Mirror, läggs till för att skapa de nödvändiga vyerna för att göra det möjligt att köra frågor mot data från Snowflake. Speglingstjänsten använder uppdateringsmekanismen Qlik-managed, vilket tillåter efterföljande transformeringar.

  • En tredje speglingstjänst för data, Databricks Mirror, läggs till för att göra det möjligt att köra frågor mot data från Databricks via en extern katalog i Databricks Unity Catalog.

Uppdateringsmekanism

Vilken uppdateringsmekanism som är tillgänglig för dig beror på din leverantör av molndatalager, enligt beskrivningen nedan.

Amazon Redshift

Data som speglas till Amazon Redshift uppdateras automatiskt och det finns inget behov av att schemalägga eller köra tjänsten. Alla tabell- och vynamn konverteras till gemener i Amazon 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 genom två sätt att uppdatera metadata:

  1. Qlik-managed: Det här alternativet kräver ett aktivt Snowflake-datalager och inkluderar övervakning och förhandsgranskning av data. Välj det här alternativet när du vill skapa efterföljande transformeringar samt övervaka och schemalägga tjänsten. Qlik äger uppdateringen av metadata, så du kan konfigurera detta manuellt, till exempel till att köras var 30:e minut. Det här alternativet är särskilt relevant för transformeringar av 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, bibehåller du konsekvensen mellan tabellerna. För transformeringar av flera tabeller kan du utlösa uppdateringen så ofta som det behövs. Qlik rekommenderar att du ställer in händelsebaserad utlösning på efterföljande transformeringssteg som följer den schemalagda speglingstjänsten.

  2. Snowflake-managed: En serverlös åtgärd som utnyttjar Snowpipe-infrastrukturen utan att kräva eller aktivera ett beräkningslager. Det här alternativet rekommenderas när du inte behöver efterföljande transformeringar. Uppdateringsintervallet konfigureras när du skapar Snowflake-katalogintegreringen. För att övervaka statusen för den automatiska uppdateringen kör du en fråga mot SYSTEM$AUTO_REFRESH_STATUS i Snowflake. Qlik förlorar äganderätten till processen och kan inte övervaka tjänster av den här typen.

Anteckning om informationVarje speglingstjänst inom ett Snowflake-projekt kan konfigureras med sin egen uppdateringsmekanism: om du skapar två speglingstjänster kan den ena använda den Qlik-hanterade uppdateringen och den andra kan använda den Snowflake-hanterade uppdateringen.
Anteckning om informationOm du försöker köra frågor mot speglingsutdata eller använda dem i transformeringar och ser ett internt serverfel (se exempel nedan), är dina Iceberg-metadata inte synkroniserade med den externa katalogen. För att åtgärda problemet kör du speglingstjänsten 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.

Databricks

Databricks externa katalog läser Iceberg-metadata direkt från AWS Glue. När du har kört speglingstjänsten är den senaste ögonblicksbilden av data tillgänglig för frågor i Databricks utan ytterligare uppdateringssteg.

Förutsättningar

Följande krav gäller för alla måldatalager som stöds:

  • En speglingstjänst för data kan endast läggas till efter att en lagringstjänst har skapats i ett Qlik Open Lakehouse-projekt.

  • En lagringstjänst kan ha flera speglingstjänster för data, som var och en är riktad mot ett annat datalager.

  • En speglingstjänst för data kan endast associeras med en lagringstjänst.

  • För utföra transformeringar skapar du ett datalagerprojekt och använder speglingstjänsten för data som källa. Projektet och speglingstjänsten måste använda samma datalagerplattform, till exempel Redshift.

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

Amazon Redshift

  • En koppling till databasen i det datalager där du vill spegla dina data. Du kan också välja att skapa en ny koppling när du skapar speglingstjänsten. Mer information finns i Amazon Redshift.

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

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

    Den här rollen 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å lagringstjänstens databas. Du måste skapa ett externt Redshift-schema genom att köra kommandot CREATE EXTERNAL SCHEMA och peka på källans Iceberg-lagringstjänsts interna databas. Externa konsumenter bör konsumera från speglingstjänstens vyer för schemakonsumtion. Använd följande syntax för att skapa ditt externa schema, och se till att egenskapen DATABASE är den databas som skapats av lagringstjänsten:


    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 databasen i det datalager där du vill spegla dina data. Du kan också välja att skapa en ny koppling när du skapar speglingstjänsten. Mer information finns i Snowflake.

  • En extern Snowflake-volym. Detta ger Snowflake begränsad åtkomst till din S3-plats. Information om hur du konfigurerar volymen finns i Configure an external volume for Amazon S3.

  • En AWS Glue Data Catalog-integrering. Detta gör det möjligt för Snowflake att ansluta till data som lagras i det öppna tabellformatet Iceberg i ditt objektlager. Information om hur du konfigurerar en katalogintegrering finns i Configure a catalog integration for AWS Glue.

Databricks

  • En koppling till den Databricks-arbetsyta där du vill spegla dina data. Du kan också välja att skapa en ny koppling när du skapar speglingstjänsten. Mer information finns i Databricks.

  • Följande objekt måste konfigureras i AWS och Databricks innan du skapar speglingstjänsten:

    • En Glue-koppling i AWS. Detta gör det möjligt för Databricks att federera metadatafrågor via AWS Glue Data Catalog. Mer information finns i AWS Glue > Connecting to data.

    • En AWS-länkad tjänstebehörighet i Databricks Unity Catalog. Detta ger Databricks de behörigheter som krävs för att komma åt AWS-tjänster. Mer information finns i Databricks > Create service credentials.

    • En extern plats i Databricks Unity Catalog som pekar på din S3-bucket. Detta ger Databricks behörighet att läsa Iceberg-data på den S3-sökväg som hanteras av lagringstjänsten. Mer information finns i Databricks > External locations.

    • En extern katalog i Databricks Unity Catalog. Detta exponerar de Iceberg-tabeller som registrerats i AWS Glue som sökbara tabeller i Databricks. Mer information finns i Databricks > Foreign catalogs.

Skapa en speglingstjänst för data

Gör följande för att spegla data till ditt datalager:

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

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

    • Namn: Ange ett namn för din speglingstjänst.

    • Beskrivning: Du kan också beskriva syftet med tjänsten.

    • Datalager: Välj ditt måldatalager.

    • Koppling

      • För att 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 finns och välj sedan kopplingen. Klicka på Redigera för att ändra kopplingsegenskaperna.

      • För att 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.

    • För att spegla till Amazon Redshift:

      • Externt schema: Ange namnet på det schema där vyerna ska skapas.

        Anteckning om informationAlla tabell- och vynamn konverteras till gemener i Amazon Redshift.
    • För att spegla till Snowflake:

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

      • Snowflake-katalogintegrering: Ange namnet på den katalogintegrering som skapats i Snowflake.

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

        • Qlik-managed: Välj det här alternativet om du vill skapa efterföljande transformeringar. Detta kräver ett aktivt Snowflake-datalager och övervakas av Qlik.

        • Snowflake-managed: Välj det här alternativet när du inte vill utföra efterföljande transformeringar. Ett Snowflake-datalager krävs inte och övervakas därför inte av Qlik. Detta administreras och övervakas i Snowflake.

    • För att spegla till Databricks:

      • Databricks-katalog: Ange namnet på Databricks Unity Catalog. Detta är vanligtvis hive_metastore.

      • Extern Databricks-katalog: Ange namnet på den externa Databricks-katalogen som är ansluten till AWS Glue.

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

  4. Klicka på Fler åtgärder på speglingstjänsten och välj Öppna. Se till att du visar vyn Design.

  5. För att välja en delmängd av de tillgängliga dataseten klickar du på Välj källdata och tar bort eventuella oönskade dataset.

  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-, Snowflake- eller Databricks-projekt och använda en speglingstjänst för data inom ditt Qlik Open Lakehouse-projekt som källa. Speglingstjänstens källa måste vara samma molndatalagerplattform som projektet. Till exempel, när du skapar ett Amazon Redshift-projekt för att utföra transformeringar, måste du använda en Amazon Redshift-speglingstjänst för data som källa.

Anteckning om informationInformation om hur du skapar en transformeringsstjänst med data från ett befintligt projekt finns i Building cross-project pipelines.

Visa uppgiftsinformation

Klicka på Information i menyraden för att visa uppgiftsinformation, till exempel:

  • Ägare

  • Utrymme

  • Dataplattform

  • Projekt-id

  • Körnings-ID för datauppgift

Ta bort en speglingstjänst för data

När du tar bort en speglingstjänst tas de interna scheman och vyer som skapats av speglingstjänsten 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 datasetet i lagringen eller tar bort hela lagringstjänsten, återspeglas ändringen automatiskt i det externa Redshift-schemat. 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 informationNär du tar bort en Databricks-speglingstjänst tas den externa katalogen och den externa platsen i Databricks inte bort. Ta bort dessa manuellt i Databricks om de inte längre behövs.
Anteckning om informationEn lagringstjänst kan inte tas bort så länge en speglingstjänst läser från den.

Gör följande för att ta bort en speglingstjänst för data:

  1. På den speglingstjänst för data som du vill ta bort klickar du på menyn Fler åtgärder på tjänsten och väljer Ta bort.

  2. Klicka på Ta bort 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!