Dela via


IBM Db2-databas

Sammanfattning

Objekt beskrivning
Versionstillstånd Allmän tillgänglighet
Produkter Excel
Power BI (semantiska modeller)
Power BI (dataflöden)
Infrastrukturresurser (Dataflöde Gen2)
Power Apps (dataflöden)
Dynamics 365 Customer Insights
Autentiseringstyper som stöds Grundläggande
Databas
Windows
Dokumentation om funktionsreferens DB2. Databas

Kommentar

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 Ladda ned inledande version 11.5-klienter och drivrutiner. Mer information: Drivrutinsbegränsningar, Se till 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 statement
    • Inkludera relationskolumner
    • Navigera med fullständig hierarki

Anslut till en IBM Db2-databas från Power Query Desktop

Utför följande steg för att upprätta anslutningen:

  1. Välj databasalternativet IBM Db2 från Hämta data.

  2. Ange IBM Db2-servern 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 Databasen. I det här exemplet är TestIBMDb2server.contoso.com:4000 servernamnet och porten och IBM Db2-databasen som används är NORTHWD2.

    Enter IBM Db2 database connection.

  3. Om du ansluter från Power BI Desktop väljer du antingen dataanslutningsläget Importera eller DirectQuery . Resten av de här exempelstegen använder anslutningsläget Importera data. Mer information om DirectQuery finns i Använda DirectQuery i Power BI Desktop.

    Kommentar

    Som standard använder dialogrutan IBM Db2-databas Microsoft-drivrutinen under inloggningen. 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.

  4. Välj OK.

  5. 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.

    Enter your IBM Db2 database credentials.

    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.

    Unable to connect dialog box

  6. I Navigatör vä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.

    Select the data you require from the database

Anslut till en IBM Db2-databas från Power Query Online

Utför följande steg för att upprätta anslutningen:

  1. Välj databasalternativet IBM Db2sidan Power Query – Anslut till datakälla.

  2. Ange IBM Db2-servern 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 Databasen. I det här exemplet är TestIBMDb2server.contoso.com:4000 servernamnet och porten och IBM Db2-databasen som används är NORTHWD2

  3. Välj namnet på din lokala datagateway.

    Kommentar

    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.

  4. 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 typ av autentisering. 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.

  5. Ange dina autentiseringsuppgifter.

  6. Välj Använd krypterad Anslut ion om du vill använda en krypterad anslutning eller avmarkera alternativet om du vill använda en okrypterad anslutning.

    Enter IBM Db2 database online connection.

  7. Klicka på Nästa när du vill fortsätta.

  8. I Navigatör väljer du de data du behöver och väljer sedan Transformera data för att transformera data i Power Query-redigeraren.

    Select the data you want to transform in the Navigator

Anslut med hjälp av 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.

Advanced options included in the IBM Db2 database connection dialog box.

I följande tabell visas alla avancerade alternativ som du kan ange i Power Query.

Avancerat alternativ beskrivning
Drivrutinen 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 statement 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 inte TLS (Transport Layer Security)
  • 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 konfigurerat 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:

  1. Öppna Windows PowerShell på datorn.

  2. Ange följande kommando:

    [System.Data.Common.DbProviderFactories]::GetFactoryClasses() | ogv

  3. 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.

SQLCODE -805- och SQLCODE -551-felkoder

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 någon annan samling (anges i anslutningskonfigurationen för Power Query-paketet). 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 tillhandahåller de flesta IBM Db2-administratörer inte bindningspaketutfärdare till slutanvändare, särskilt inte i en IBM z/OS-miljö (stordator) eller 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 bindningspaketbehörigheter måste du be db2-administratören om paketbindningsutfärdare. Med den här paketbindningsutfärdarna ansluter du till databasen och hämtar data, vilket skapar paketet automatiskt. Därefter kan administratören återkalla paketeringsbindningsutfärdare. 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.

  1. Bevilja behörighet att binda ett nytt paket till användaren med något av följande kommandon:

    • BEVILJA BINDADD PÅ SYSTEMET TILL <AUTHORIZATION_NAME>
    • BEVILJA PACKADM DEN <COLLECTION_NAME> TILL <authorization_name>
  2. 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 paketet NULLID automatiskt. MSCS001 och bevilja sedan körningen av paketet till allmänheten.

  3. Återkalla utfärdare för att binda 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.

  1. BEVILJA BINDADD PÅ DATABASEN TILL ANVÄNDAR <AUTHORIZATION_NAME>.

  2. 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.

  3. ÅTERKALLA BINDADD PÅ DATABASEN FRÅN AUTHORIZATION_NAME<>.

  4. BEVILJA EXECUTE ON 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.

  1. WRKOBJ QSYS/CRTSQLPKG. Skriv "2" för att ändra objektutfärdare.

  2. Ändra utfärdare från *EXCLUDE till PUBLIC eller <authorization_name>.

  3. Därefter ändrar du tillbaka utfärdaren 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 kan nås. Du kan till exempel använda ping i en kommandotolk för att försöka nå servern och se till att IP-adressen är korrekt, eller använda 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 korsreferens värdet med systemets "tjänster" tabell. 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.

Image with output of the db2 command in Linux and Unix

Följande skärmbild visar utdata från det här kommandot i Windows.

Image with output of the db2 command in Windows

Fastställa databasnamn

Så här bestämmer du vilket databasnamn som ska användas:

  1. På IBM i kör du DSPRDBDIRE.

    Image showing the output of the Display Relational Database Directory Entries

  2. En av posterna har en fjärrplats för *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å:

  1. Kör IBM i-kommandot WRKSRVTBLE.

  2. Rulla nedåt tills du hittar posterna för DRDA.

    Service Table Entries

  3. Kontrollera att DRDA-tjänsten är igång och lyssnar på porten genom att köra NETSTAT.

    DRDA listening

  4. Välj antingen alternativ 3 (för IPv4) eller alternativ 6 (för IPv6).

  5. 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 tillståndet "Lyssna".

    IP connection status

Mer information