Databricks
Du kan använda Databricks som en måldataplattform i en datapipeline eller i en replikeringsuppgift. I en datapipeline kan diverse ELT-åtgärder utföras på målplattformen, inklusive lagring av data, omvandling av data, skapande av datamart och dataregistrering. En replikeringsuppgift å andra sidan omfattar replikering av data direkt från ett källsystem till ett målsystem med grundläggande omvandlingsfunktioner, men utan stöd för ELT-åtgärder.
Ställa in Databricks som mål omfattar att:
- Uppfylla förhandskraven
- Konfigurera en koppling till ett molnförberedelseområde. Detta krävs inte om du registrerar befintliga data.
- Konfigurera en koppling till Databricks
Konfigurera ett molnförberedelseområde
När du använder en Databricks-målkoppling måste du också definera ett molnförberedelseområde, som är ett område där data och ändringar förbereds innan de tillämpas och lagras. Följande lagringsplattformar stöds:
Konfigurera en koppling till Databricks
När du har angett mellanlagringsinställningarna gör du följande:
-
I Kopplingar klickar du på Skapa koppling.
-
Välj Databricks-målkopplingen och ange följande inställningar:
Datamål
Datagateway
Gateway för dataflytt behövs enbart om det inte går att komma åt måldatabasen från Qlik Cloud och bara kan nås via en privat länk (om den exempelvis är placerad i ett virtuellt privat moln). I så fall ska du välja Gateway för dataflytt att använda för åtkomst till måldatabasen.
Beroende på användningsfall kan det vara samma Gateway för dataflytt som distribuerats för att flytta data från datakällan eller någon annan.
Information om Gateway för dataflytt-användningsfall finns i När krävs Gateway för dataflytt? och Vanliga användningsfall.
Om måldatabasen kan kommas åt direkt från Qlik Cloud ska du välja Ingen.
Anslutningsegenskaper
- Värd: värdnamnet för Databricks-arbetsutrymmet.
- Port: porten som används för att komma åt arbetsutrymmet.
- HTTP-sökväg: sökvägen till det kluster som används.
- Token: din personliga token för att komma åt arbetsutrymmet.
Katalogegenskaper
Klicka på Ladda kataloger för att ladda de tillgängliga katalogerna och därefter välja en Katalog. Om din miljö inte är konfigurerad med några kataloger väljer du hive_metastore, som är standardkatalogen.
Du måste ge Gateway för dataflytt tillgång till externa (ohanterade) tabeller genom att definiera en extern plats i Databricks. Riktlinjer finns i:
Interna egenskaper
Interna egenskaper är till för speciella användarfall och visas därför inte i dialogen. De ska bara användas om Qlik-supporten uppmanar dig att göra det.
Använd - och -knapparna till höger om fälten för att lägga till och ta bort egenskaper efter behov.
Namn
Visningsnamnet för anslutningen.
Förutsättningar
Allmänna behörigheter
- Tiden på Qlik Talend Data Integration-serverdatorn måste vara korrekt.
- Tabellbehörigheter för Databricks: Qlik Talend Data Integration kräver behörigheter för att utföra följande åtgärder på Databricks-tabeller: CREATE, DROP, TRUNCATE, DESCRIBE och ALTER.
- I inställningarna för åtkomstkontroll (IAM) för ADLS Gen2-filsystemet tilldelar du rollen "Storage Blob Data Contributor" till Qlik Talend Data Integration (AD-app-ID). Det kan ta några minuter innan rollen träder i kraft.
- För att Qlik Talend Data Integration ska kunna ansluta till ett Databricks-kluster via ODBC, måste användare beviljas ”Can Attach To”-behörighet i sitt Databricks-konto.
- Ett giltigt säkerhetstoken krävs för att få åtkomst till Databricks. Token ska anges när du konfigurerar Databricks ODBC Access-fälten i slutpunktsinställningarna.
-
När du konfigurerar ett nytt kluster med Microsoft Azure Data Lake Storage (ADLS) Gen2, måste följande rad läggas till i avsnittet ”Spark Config”.
spark.hadoop.hive.server2.enable.doAs false
-
För att kunna komma åt lagringskatalogerna från Databricks-klustret, måste användare lägga till en konfiguration (i Spark Config) för det lagringskontot och dess nyckel.
Exempel:
fs.azure.account.key.<storage-account-name>.dfs.core.windows.net <storage-account-access-key>
Mer information finns i onlinehjälpen till Databricks på: https://docs.databricks.com/clusters/configure.html#spark-configuration
-
Bästa praxis är att inte använda rotplats (/Usr/Hive/Warehouse/) för Databricks-databasen, eftersom detta kan påverka prestandan.
Åtkomstbehörighet till lagring
Databricks SQL-beräkningar måste konfigureras för att ge tillgång till molnlagring. Instruktioner finns i leverantörens direkthjälp.
Inställning av drivrutin
En drivrutin behövs bara om du kommer åt en databas via Gateway för dataflytt. I det här fallet måste du installera drivrutinen på Gateway för dataflytt-maskinen.
Du kan installera driver med verktyget för installation av drivrutiner (rekommenderas) eller manuellt. Manuell installation ska bara användas om det mot förmodan skulle inträffa ett problem med verktyget för installation av drivrutiner.
Använda verktyget för installation av drivrutiner för att installera drivrutinen
I det här delavsnittet beskrivs hur driver som krävs installeras. Processen innebär att ett skript körs som automatiskt hämtar, installerar och konfigurerar den nödvändiga driver. Du kan också köra skript som uppdaterar och avinstallerar driver efter behov.
Förbereda installationen
-
Kontrollera att Python 3.6 eller senare är installerad på Dataflytt-gatewayservern.
Python kommer förinstallerad på de flesta Linuxdistributioner. Du kan kontrollera vilken Pythonversion som är installerad på ditt system genom att köra följande kommando:
python3 --version
Installera driver
Så här hämtar och installerar du driver:
-
Stoppa tjänsten Gateway för dataflytt:
sudo systemctl stop repagent
-
Om du vill kan du bekräfta att tjänsten har stoppats:
sudo systemctl status repagent
Statusen ska vara enligt följande:
Active: inactive (dead) since <timestamp> ago
-
På Dataflytt-gatewaydatorn byter du arbetskatalog till:
opt/qlik/gateway/movement/drivers/bin
-
Kör följande kommando:
Syntax:
./install databricks
Om driver inte kan hämtas (på grund av åtkomstbegränsningar eller tekniska problem) visas ett meddelande som beskriver var du kan hämta driver och vart du ska kopiera den på Dataflytt-gatewaydatorn. När du har gjort detta kör du install databricks-kommandot igen.
I annat fall visas EULA för driver.
-
Gör ett av följande:
- Tryck på [Enter] flera gånger för att långsamt rulla genom EULA.
- Tryck på mellanslagstangenten flera gånger för att snabbt rulla genom EULA.
- Tryck på q för att lämna avtalstexten. Godkännandealternativen för EULA visas.
-
Gör något av följande:
- Skriv in "y" och tryck på [Enter] för att godkänna EULA och börja med installationen.
- Skriv in "n" och tryck på [Enter] för att avböja EULA och avsluta installationen.
-
Skriv in "v" och tryck på [Enter] för att visa EULA igen.
-
Vänta tills installationen har slutförts (anges med "Slutförd!") och starta sedan Gateway för dataflytt-tjänsten:
sudo systemctl start repagent
-
Du kan även bekräfta att tjänsten har startats:
sudo systemctl status repagent
Statusen ska vara enligt följande:
Active: active (running) since <timestamp> ago
driver kommer att installeras.
Uppdatering av driver
Kör uppdateringskommandot om du vill avinstallera tidigare versioner av driver innan du installerar den tillhandahållna driver.
Så här hämtar och uppdaterar du driver:
-
Stoppa tjänsten Gateway för dataflytt:
sudo systemctl stop repagent
-
Om du vill kan du bekräfta att tjänsten har stoppats:
sudo systemctl status repagent
Statusen ska vara enligt följande:
Active: inactive (dead) since <timestamp> ago
-
På Dataflytt-gatewaydatorn byter du arbetskatalog till:
opt/qlik/gateway/movement/drivers/bin
-
Kör följande kommando:
Syntax:
./update databricks
Om driver inte kan hämtas (på grund av åtkomstbegränsningar eller tekniska problem) visas ett meddelande som beskriver var du kan hämta driver och vart du ska kopiera den på Dataflytt-gatewaydatorn. När du har gjort detta kör du update databricks-kommandot igen.
I annat fall visas EULA för driver.
-
Gör ett av följande:
- Tryck på [Enter] flera gånger för att långsamt rulla genom EULA.
- Tryck på mellanslagstangenten flera gånger för att snabbt rulla genom EULA.
- Tryck på q för att lämna avtalstexten. Godkännandealternativen för EULA visas.
-
Gör något av följande:
- Skriv in "y" och tryck på [Enter] för att godkänna EULA och börja med installationen.
- Skriv in "n" och tryck på [Enter] för att avböja EULA och avsluta installationen.
- Skriv in "v" och tryck på [Enter] för att granska EULA från början.
-
Vänta tills installationen har slutförts (anges med "Slutförd!") och starta sedan Gateway för dataflytt-tjänsten:
sudo systemctl start repagent
-
Du kan även bekräfta att tjänsten har startats:
sudo systemctl status repagent
Statusen ska vara enligt följande:
Active: active (running) since <timestamp> ago
Den gamla driver avinstalleras och den nya driver installeras.
Avinstallera driver
Kör avinstalleringskommandot om du vill avinstallera driver.
Så här avinstallerar du driver:
-
Stoppa alla uppgifter som är konfigurerade för att använda denna koppling.
-
På Dataflytt-gatewaydatorn byter du arbetskatalog till:
opt/qlik/gateway/movement/drivers/bin
-
Kör följande kommando:
-syntax
./uninstall databricks
driver kommer att avinstalleras.
Installera drivrutinen manuellt
Du bör bara försöka installera driver manuellt om den automatiserade drivrutinsinstallationen inte slutfördes.
Installera ODBC-drivrutinen
När Gateway för dataflytt har installerats hämtar du filen SimbaSparkODBC-<version>-LinuxRPM-64bit.zip. Du hittar en direkt nedladdningslänk till den version som stöds i binary-artifacts i /opt/qlik/gateway/movement/drivers/manifests/databricks.yaml. När hämtningen har slutförts kopierar du filerna till Gateway för dataflytt-maskinen.
-
Stoppa tjänsten Gateway för dataflytt:
sudo systemctl stop repagent
-
Om du vill kan du bekräfta att tjänsten har stoppats:
sudo systemctl status repagent
-
Installera drivrutinen på Gateway för dataflytt-maskinen.
-
Efter installationen kontrollerar du att följande avsnitt visas i filen /etc/odbcinst.ini:
-
Starta Gateway för dataflytt-tjänsten.
sudo systemctl start repagent
-
Om du vill kan du bekräfta att tjänsten har startats:
sudo systemctl status repagent
Statusen ska vara enligt följande:
Active: active (running) since <timestamp> ago
Statusen ska vara enligt följande:
Active: inactive (dead) since <timestamp> ago
[Simba Spark ODBC Driver] Description=Amazon Hive ODBC Driver (64-bit) Driver=/opt/simba/spark/lib/64/libsparkodbc_sb64.so
Installera JDBC-drivrutinen
-
Hämta filen databricks-jdbc-<version>.jar . Du hittar en direkt nedladdningslänk till den version som stöds i binary-artifacts i /opt/qlik/gateway/movement/drivers/manifests/databricks.yaml. När hämtningen har slutförts kopierar du JAR-filen till Gateway för dataflytt-maskinen.
/opt/qlik/gateway/movement/qcs_agents/qdi-db-commands/lib
-
Starta om Gateway för dataflytt-tjänsten och kontrollera att den har startat genom att köra kommandona som beskrivs i Servicekommandon för Gateway för dataflytt
Port
Brandväggsport 443 måste öppnas för utgående kommunikation.
Datatyper
Följande tabell visar de Databricks-datatyper som stöds vid användning av Qlik Cloud och standardmappningen från Qlik Cloud-datatyper.
Information om inbyggd datatyp bevaras och visas i kolumnen Inbyggd datatyp i datauppsättningsvyer. Om kolumnen inte är synlig måste du öppna kolumnväljaren i datauppsättnignsvyn och välja kolumnen Inbyggd datatyp.
Qlik Cloud-datatyper | Databricks-datatyper |
---|---|
BOOLEAN |
BOOLEAN |
Byte |
sträng |
Datum |
Datum |
Tid |
sträng |
Datum och tid: |
TIMESTAMP |
INT1 |
TINYINT |
INT2 |
SMALLINT |
INT4 |
INT |
INT8 |
BIGINT |
Numerisk |
DECIMAL (precision, skala) |
REAL4 |
FLOAT |
REAL8 |
DOUBLE |
UINT1 |
SMALLINT |
UINT2 |
INT |
UINT4 |
BIGINT |
UINT8 |
DECIMAL (20, 0) |
sträng |
VARCHAR (längd i bytes) |
WSTRING |
VARCHAR (längd i bytes) |
BLOB |
sträng |
NCLOB |
sträng |
CLOB |
sträng |
Följande datatyper konverteras till STRING(255):
-
MAP
-
ARRAY
-
STRUCT
Begränsningar och överväganden
-
När du använder Databricks på AWS med tabeller utan primärnyckel misslyckas den nya inläsningen av tabellerna i mellanlagringen i Storage-appen. För att lösa detta kan du antingen
-
Definiera en primärnyckel i tabellerna.
-
Ställ in spark.databricks.delta.alterTable.rename.enabledOnAWS på True i Databricks.
-
När du skapar en SQL-baserad omvandling returneras alla VARCHAR-fält som STRING(255).
-