IBM Db2-databas
Sammanfattning
Föremål | Beskrivning |
---|---|
Versionstillstånd | Allmän tillgänglighet |
Produkter | Excel Power BI (semantiska modeller) Power BI (dataflöden) Plattform (Dataflöde Gen2) Power Apps (dataflöden) Dynamics 365 Customer Insights |
Autentiseringstyper som stöds | Grundläggande Databas Windows |
Dokumentation om funktionsreferens | DB2.Database |
Obs
Vissa funktioner kan finnas i en produkt, men inte andra på grund av distributionsscheman och värdspecifika funktioner.
Förutsättningar
Som standard använder IBM Db2-databasanslutningsappen Microsoft-drivrutinen för att ansluta till dina data. Om du väljer att använda IBM-drivrutinen i de avancerade alternativen i Power Query Desktop måste du först installera IBM Db2-drivrutinen för .NET på den dator som används för att ansluta till data. Namnet på den här drivrutinen ändras då och då, så se till att installera IBM Db2-drivrutinen som fungerar med .NET. Anvisningar om hur du laddar ned, installerar och konfigurerar IBM Db2-drivrutinen för .NET finns i Hämta initiala version 11.5-klienter och drivrutiner. Mer information: Begränsningar för drivrutin, Kontrollera att IBM Db2-drivrutinen är installerad
Funktioner som stöds
- Import
- DirectQuery (Power BI-semantiska modeller)
- Avancerade alternativ
- Drivrutin (IBM eller Microsoft)
- Tidsgräns för kommando i minuter
- Paketsamling
- SQL-instruktion
- Inkludera relationskolumner
- Navigera med fullständig hierarki
Ansluta till en IBM Db2-databas från Power Query Desktop
Utför följande steg för att upprätta anslutningen:
Välj alternativet IBM Db2-databas från Hämta data.
Ange den IBM Db2-server som ska anslutas till i Server. Om en port krävs anger du den med formatet ServerName:Port, där Port är portnumret. Ange också den IBM Db2-databas som du vill komma åt i Database. I det här exemplet är servernamnet och porten
TestIBMDb2server.contoso.com:4000
och IBM Db2-databasen som används ärNORTHWD2
.Om du ansluter från Power BI Desktop väljer du antingen Importera eller DirectQuery dataanslutningsläge. Resten av de här exempelstegen använder anslutningsläget Importera data. Om du vill veta mer om DirectQuery går du till Använd DirectQuery i Power BI Desktop.
Not
Som standardinställning använder IBM Db2-databasen dialogrutan Microsoft-drivrutinen vid inloggning. Om du vill använda IBM-drivrutinen öppnar du Avancerade alternativ och väljer IBM-. Mer information: Anslut med hjälp av avancerade alternativ
Om du väljer DirectQuery som dataanslutningsläge inaktiveras SQL-instruktionen i de avancerade alternativen. DirectQuery stöder för närvarande inte frågetryckning ovanpå en intern databasfråga för IBM Db2-anslutningsappen.
Välj OK.
Om det är första gången du ansluter till den här IBM Db2-databasen väljer du den autentiseringstyp som du vill använda, anger dina autentiseringsuppgifter och väljer sedan Anslut. Mer information om autentisering finns i -autentisering med en datakälla.
Som standard försöker Power Query ansluta till IBM Db2-databasen med hjälp av en krypterad anslutning. Om Power Query inte kan ansluta med en krypterad anslutning visas dialogrutan "det går inte att ansluta". Om du vill ansluta med en okrypterad anslutning väljer du OK.
I Navigatorväljer du de data du behöver och väljer sedan Läs in för att läsa in data eller Transformera data för att transformera data.
Ansluta till en IBM Db2-databas från Power Query Online
Utför följande steg för att upprätta anslutningen:
Välj alternativet IBM Db2-databas på sidan Power Query – Anslut till datakällan.
Ange den IBM Db2-server som ska anslutas till i Server. Om en port krävs anger du den med formatet ServerName:Port, där Port är portnumret. Ange också den IBM Db2-databas som du vill komma åt i Database. I det här exemplet är servernamnet och porten
TestIBMDb2server.contoso.com:4000
och IBM Db2-databasen som används ärNORTHWD2
Välj namnet på din lokala datagateway.
Anteckning
Du måste välja en lokal datagateway för den här anslutningsappen, oavsett om IBM Db2-databasen finns i ditt lokala nätverk eller online.
Om det är första gången du ansluter till den här IBM Db2-databasen väljer du typen av autentiseringsuppgifter för anslutningen i autentiseringstypen. Välj Grundläggande om du planerar att använda ett konto som skapas i IBM Db2-databasen i stället för Windows-autentisering.
Ange dina autentiseringsuppgifter.
Välj Använd krypterad anslutning om du vill använda en krypterad anslutning eller avmarkera alternativet om du vill använda en okrypterad anslutning.
Välj Nästa för att fortsätta.
I Navigatorväljer du de data du behöver och väljer sedan Transformera data för att transformera data i Power Query-redigeraren.
Ansluta med avancerade alternativ
Power Query innehåller en uppsättning avancerade alternativ som du kan lägga till i din fråga om det behövs.
I följande tabell visas alla avancerade alternativ som du kan ange i Power Query.
Avancerat alternativ | Beskrivning |
---|---|
Chaufför | Avgör vilken drivrutin som används för att ansluta till IBM Db2-databasen. Alternativen är IBM och Windows (standard). Om du väljer IBM-drivrutinen måste du först se till att IBM Db2-drivrutinen för .NET är installerad på datorn. Det här alternativet är bara tillgängligt i Power Query Desktop. Mer information: Kontrollera att IBM Db2-drivrutinen är installerad |
Tidsgräns för kommando i minuter | Om anslutningen varar längre än 10 minuter (standardtidsgränsen) kan du ange ett annat värde på några minuter för att hålla anslutningen öppen längre. |
Paketsamling | Anger var du ska söka efter paket. Paket är kontrollstrukturer som används av Db2 vid bearbetning av en SQL-instruktion och skapas automatiskt om det behövs. Som standard använder det här alternativet värdet NULLID . Endast tillgängligt när du använder Microsoft-drivrutinen. Mer information: DB2-paket: Begrepp, exempel och vanliga problem |
SQL-instruktion | Mer information finns i Importera data från en databas med hjälp av intern databasfråga. |
Inkludera relationskolumner | Om markerat innehåller kolumner som kan ha relationer till andra tabeller. Om den här rutan är avmarkerad visas inte dessa kolumner. |
Navigera med fullständig hierarki | Om det är markerat visar navigatören den fullständiga hierarkin med tabeller i databasen som du ansluter till. Om det avmarkeras visar navigatören endast de tabeller vars kolumner och rader innehåller data. |
När du har valt de avancerade alternativ du behöver väljer du OK i Power Query Desktop eller Nästa i Power Query Online för att ansluta till IBM Db2-databasen.
Problem och begränsningar
Begränsningar för drivrutin
Microsoft-drivrutinen är samma som används i Microsoft Host Integration Server, som kallas "ADO.NET Provider för DB2". IBM-drivrutinen är IBM Db/2-drivrutinen som fungerar med .NET. Namnet på den här drivrutinen ändras då och då, så se till att det är den som fungerar med .NET, som skiljer sig från IBM Db2-drivrutinerna som fungerar med OLE/DB, ODBC eller JDBC.
Du kan välja att använda antingen Microsoft-drivrutinen (standard) eller IBM-drivrutinen om du använder Power Query Desktop. För närvarande använder Power Query Online endast Microsoft-drivrutinen. Varje drivrutin har sina begränsningar.
- Microsoft-drivrutin
- Stöder endast TLS (Transport Layer Security) med versionen från december 2024 av Power BI Desktop eller senare
- IBM-drivrutin
- IBM Db2-databasanslutningsappen fungerar inte med Mainframe- eller IBM i-system när du använder IBM Db2-drivrutinen för .NET
- Stöder inte DirectQuery
Microsoft tillhandahåller stöd för Microsoft-drivrutinen, men inte för IBM-drivrutinen. Men om IT-avdelningen redan har ställt in och konfigurerat den på dina datorer, bör IT-avdelningen veta hur man felsöker IBM-drivrutinen.
Interna frågor stöds inte i DirectQuery
När du väljer DirectQuery som dataanslutningsläge i Power Query Desktop inaktiveras textrutan SQL-instruktion i de avancerade alternativen. Den är inaktiverad eftersom Power Query IBM Db2-anslutningsappen för närvarande inte stöder frågetryckning ovanpå en intern databasfråga.
Felsökning
Kontrollera att IBM Db2-drivrutinen är installerad
Om du väljer att använda IBM Db2-drivrutinen för Power Query Desktop måste du först ladda ned, installera och konfigurera drivrutinen på datorn. Så här kontrollerar du att IBM Db2-drivrutinen har installerats:
Öppna Windows PowerShell på datorn.
Ange följande kommando:
[System.Data.Common.DbProviderFactories]::GetFactoryClasses() | ogv
I dialogrutan som öppnas bör du se följande namn i kolumnen InvariantName:
IBM.Data.DB2
Om det här namnet finns i kolumnen InvariantName har IBM Db2-drivrutinen installerats och konfigurerats korrekt.
Felkoder för SQLCODE -805 och SQLCODE -551
När du försöker ansluta till en IBM Db2-databas kan du ibland stöta på det vanliga felet SQLCODE -805, vilket indikerar att paketet inte finns i NULLID
eller annan samling (anges i Power Query Package-anslutning konfiguration). Du kan också stöta på det vanliga felet SQLCODE -551, vilket indikerar att du inte kan skapa paket eftersom du saknar paketbindningsutfärdare.
Vanligtvis följs SQLCODE--805 av SQLCODE -551, men du ser bara det andra undantaget. I verkligheten är problemet detsamma. Du saknar behörighet att binda paketet till antingen NULLID
eller den angivna samlingen.
Vanligtvis ger de flesta IBM Db2-administratörer inte bind package-behörigheter till slutanvändare, särskilt inte i en IBM z/OS-miljö (stordator) eller i en IBM i-miljö (AS/400). Db2 i Linux, Unix eller Windows skiljer sig i och med att användarkonton har bindningsprivilegier som standard, vilket skapar paketet MSCS001 (markörstabilitet) i användarens egen samling (namn = användarnamn).
Om du inte har behörighet att binda paket måste du be Db2-administratören om behörighet att binda paket. Med denna paketbindningsbehörighet kan du ansluta till databasen och hämta data, vilket automatiskt skapar paketet. Därefter kan administratören återkalla paketeringsbindningsbehörighet. Därefter kan administratören också "binda kopiera" paketet till andra samlingar – för att öka samtidigheten, för att bättre matcha dina interna standarder för var paketen är bundna och så vidare.
När du ansluter till IBM Db2 för z/OS kan Db2-administratören utföra följande steg.
Bevilja behörighet att binda ett nytt paket till användaren med något av följande kommandon:
- BEVILJA BINDADD PÅ SYSTEMET FÖR ATT <AUTHORIZATION_NAME>
- BEVILJA PACKADM FÖR <collection_name> TILL <authorization_name>
Med Power Query ansluter du till IBM Db2-databasen och hämtar en lista med scheman, tabeller och vyer. Power Query IBM Db2-databasanslutningen skapar automatiskt paketet NULLID.MSCS001 och ger sedan exekveringsrättigheter för paketet till publiken.
Återkalla behörighet att knyta ett nytt paket till användaren med något av följande kommandon:
- ÅTERKALLA BINDADD FRÅN <authorization_name>
- ÅTERKALLA PACKADM PÅ <collection_name> FRÅN <authorization_name>
När du ansluter till IBM Db2 för Linux, Unix eller Windows kan Db2-administratören utföra följande steg.
BEVILJA BINDADD PÅ DATABASEN TILL ANVÄNDAREN <authorization_name>.
Med Power Query ansluter du till IBM Db2-databasen och hämtar en lista med scheman, tabeller och vyer. Power Query IBM Db2-anslutningsappen skapar paketet NULLID automatiskt. MSCS001 och bevilja sedan körningen av paketet till allmänheten.
ÅTERKALLA BINDADD FRÅN DATABASEN FÖR ANVÄNDARE <auktoriseringsnamn>.
bevilja EXECUTE PÅ PACKAGE <collection.package> TILL USER <authorization_name>.
När du ansluter till IBM Db2 för i kan Db2-administratören utföra följande steg.
WRKOBJ QSYS/CRTSQLPKG. Skriv "2" för att ändra objektbehörighet.
Ändra behörighet från *EXCLUDE till PUBLIC eller <authorization_name>.
Därefter ändrar du tillbaka behörigheten till *EXCLUDE.
SQLCODE--360 felkod
När du försöker ansluta till IBM Db2-databasen kan du stöta på följande fel:
Microsoft Db2 Client: The host resource could not be found. Check that the Initial Catalog value matches the host resource name. SQLSTATE=HY000 SQLCODE=-360
Det här felmeddelandet anger att du inte angav rätt värde för namnet på databasen.
SQLCODE--1336 felkod
The specified host could not be found.
Dubbelkolla namnet och bekräfta att värden är nåbar. Använd till exempel ping i en kommandotolk för att försöka nå servern och se till att IP-adressen är korrekt, eller använd telnet- för att kommunicera med servern.
SQLCODE--1037 felkod
Host is reachable, but is not responding on the specified port.
Porten anges i slutet av servernamnet, avgränsat med ett kolon. Om det utelämnas används standardvärdet 50000.
Kör följande kommando för att hitta den port db2 använder för Linux, Unix och Windows:
db2 get dbm cfg | findstr SVCENAME
Leta i utdata efter en post för SVCENAME (och SSL_SVCENAME för TLS-krypterade anslutningar). Om det här värdet är ett tal är det porten. Annars kontrollera värdet mot systemets tjänstetabell. Du kan vanligtvis hitta detta på /etc/services, eller på c:\windows\system32\drivers\etc\services för Windows.
Följande skärmbild visar utdata från det här kommandot i Linux/Unix.
Följande skärmbild visar utdata från det här kommandot i Windows.
Fastställa databasnamn
Så här bestämmer du vilket databasnamn som ska användas:
På IBM i kör du
DSPRDBDIRE
.En av posterna har en fjärrplats *LOCAL. Den här posten är den som ska användas.
Fastställa portnummer
Microsoft-drivrutinen ansluter till databasen med hjälp av DRDA-protokollet (Distributed Relational Database Architecture). Standardporten för DRDA är port 446. Prova det här värdet först.
För att se vilken port DRDA-tjänsten körs på:
Kör IBM i-kommandot
WRKSRVTBLE
.Rulla nedåt tills du hittar posterna för DRDA.
För att bekräfta att DRDA-tjänsten är igång och lyssnar på den porten kör du
NETSTAT
.Välj antingen alternativ 3 (för IPv4) eller alternativ 6 (för IPv6).
Tryck på F14 för att se portnumren i stället för namn och rulla tills du ser porten i fråga. Den bör ha en post med statusen "Lyssna".