IBM Db2-database
Samenvatting
Onderdeel | Beschrijving |
---|---|
Release-staat | Algemene beschikbaarheid |
Producten | Excel Power BI (Semantische modellen) Power BI (gegevensstromen) Fabric (Dataflow Gen2) Power Apps (gegevensstromen) Dynamics 365 Customer Insights |
Ondersteunde verificatietypen | Basisch Databank Ramen |
Documentatie voor functiereferenties | DB2.Database |
Notitie
Sommige mogelijkheden zijn mogelijk aanwezig in één product, maar niet in andere vanwege implementatieschema's en hostspecifieke mogelijkheden.
Voorwaarden
De IBM Db2-databaseconnector maakt standaard gebruik van het Microsoft-stuurprogramma om verbinding te maken met uw gegevens. Als u ervoor kiest om het IBM-stuurprogramma te gebruiken in de geavanceerde opties in Power Query Desktop, moet u eerst het IBM Db2-stuurprogramma voor .NET installeren op de computer die wordt gebruikt om verbinding te maken met de gegevens. De naam van dit stuurprogramma verandert van tijd tot tijd, dus zorg ervoor dat u het IBM Db2-stuurprogramma installeert dat met .NET werkt. Voor instructies over het downloaden, installeren en configureren van het IBM Db2-stuurprogramma voor .NET, gaat u naar Eerste versie 11.5-clients en stuurprogramma's downloaden. Meer informatie: driverbeperkingen, Controleren of het IBM Db2-stuurprogramma is geïnstalleerd
Ondersteunde mogelijkheden
- Importeren
- DirectQuery (semantische Power BI-modellen)
- Geavanceerde opties
- Stuurprogramma (IBM of Microsoft)
- Time-out van opdracht in minuten
- Pakketverzameling
- SQL-instructie
- Relatiekolommen opnemen
- Navigeren met volledige hiërarchie
Verbinding maken met een IBM Db2-database vanuit Power Query Desktop
Voer de volgende stappen uit om de verbinding te maken:
Selecteer de optie IBM Db2-database in Gegevens ophalen.
Geef de IBM Db2-server op waarmee verbinding moet worden gemaakt in Server. Als een poort is vereist, geeft u deze op met behulp van de indeling ServerName:Port, waarbij poort- het poortnummer is. Voer ook de IBM Db2-database in die u wilt openen in Database. In dit voorbeeld worden de servernaam en -poort
TestIBMDb2server.contoso.com:4000
en wordt de IBM Db2-database die wordt geopend,NORTHWD2
.Als u verbinding maakt vanuit Power BI Desktop, selecteert u de modus Importeren of DirectQuery de gegevensverbindingsmodus. In de rest van deze voorbeeldstappen wordt de modus Gegevensconnectiviteit importeren gebruikt. Ga naar DirectQuery gebruiken in Power BI Desktopvoor meer informatie over DirectQuery.
Notitie
Het dialoogvenster IBM Db2-database maakt standaard gebruik van het Microsoft-stuurprogramma tijdens het aanmelden. Als u het IBM-stuurprogramma wilt gebruiken, opent u Geavanceerde opties en selecteert u IBM-. Meer informatie: Verbinding maken met geavanceerde opties
Als u DirectQuery- selecteert als de gegevensverbindingsmodus, wordt de SQL-instructie in de geavanceerde opties uitgeschakeld. DirectQuery biedt momenteel geen ondersteuning voor het omlaag pushen van query's boven op een systeemeigen databasequery voor de IBM Db2-connector.
Selecteer OK -.
Als dit de eerste keer is dat u verbinding maakt met deze IBM Db2-database, selecteert u het verificatietype dat u wilt gebruiken, voert u uw referenties in en selecteert u vervolgens Verbinding maken. Ga naar Verificatie met een gegevensbronvoor meer informatie over verificatie.
Power Query probeert standaard verbinding te maken met de IBM Db2-database met behulp van een versleutelde verbinding. Als Power Query geen verbinding kan maken via een versleutelde verbinding, wordt het dialoogvenster 'Kan geen verbinding maken' weergegeven. Als u verbinding wilt maken met een niet-versleutelde verbinding, selecteert u OK.
Selecteer in Navigatorde gegevens die u nodig hebt en selecteer vervolgens Laden om de gegevens te laden of Gegevens transformeren om de gegevens te transformeren.
Verbinding maken met een IBM Db2-database vanuit Power Query Online
Voer de volgende stappen uit om de verbinding te maken:
Selecteer de optie IBM Db2-database op de pagina Power Query - Verbinding maken met de gegevensbron.
Geef de IBM Db2-server op waarmee verbinding moet worden gemaakt in Server. Als een poort is vereist, geeft u deze op met behulp van de indeling ServerName:Port, waarbij poort- het poortnummer is. Voer ook de IBM Db2-database in die u wilt openen in Database. In dit voorbeeld zijn de servernaam en poort
TestIBMDb2server.contoso.com:4000
en de IBM Db2-database die wordt geopend isNORTHWD2
Kies de naam van uw lokale gegevensgateway.
Notitie
U moet een on-premises gegevensgateway voor deze connector selecteren, ongeacht of de IBM Db2-database zich in uw lokale netwerk of online bevindt.
Als dit de eerste keer is dat u verbinding maakt met deze IBM Db2-database, kies dan het verificatietype voor de verbinding in soort verificatie. Kies Basic als u een account wilt gebruiken dat is gemaakt in de IBM Db2-database in plaats van Windows-verificatie.
Voer uw referenties in.
Selecteer Versleutelde verbinding gebruiken als u een versleutelde verbinding wilt gebruiken of schakel de optie uit als u een niet-versleutelde verbinding wilt gebruiken.
Selecteer Volgende om door te gaan.
Selecteer in Navigatorde gegevens die u nodig hebt en selecteer vervolgens Gegevens transformeren om de gegevens in de Power Query-editor te transformeren.
Verbinding maken met behulp van geavanceerde opties
Power Query biedt een set geavanceerde opties die u indien nodig aan uw query kunt toevoegen.
De volgende tabel bevat alle geavanceerde opties die u in Power Query kunt instellen.
Geavanceerde optie | Beschrijving |
---|---|
Chauffeur | Bepaalt welk stuurprogramma wordt gebruikt om verbinding te maken met uw IBM Db2-database. De keuzes zijn IBM en Windows (standaard). Als u het IBM-stuurprogramma selecteert, moet u eerst controleren of het IBM Db2-stuurprogramma voor .NET op uw computer is geïnstalleerd. Deze optie is alleen beschikbaar in Power Query Desktop. Meer informatie: Controleren of het IBM Db2-stuurprogramma is geïnstalleerd |
Time-out van opdracht in minuten | Als uw verbinding langer duurt dan tien minuten (de standaardtime-out), kunt u in minuten een andere waarde invoeren om de verbinding langer open te houden. |
Pakketverzameling | Hiermee wordt aangegeven waar naar pakketten moet worden gezocht. Pakketten zijn besturingsstructuren die door Db2 worden gebruikt bij het verwerken van een SQL-instructie en worden indien nodig automatisch gemaakt. Deze optie gebruikt standaard de waarde NULLID . Alleen beschikbaar wanneer u het Microsoft-stuurprogramma gebruikt. Meer informatie: DB2-pakketten: Concepten, voorbeelden en veelvoorkomende problemen |
SQL-instructie | Ga naar Gegevens importeren uit een database met behulp van een systeemeigen databasequeryvoor meer informatie. |
Relatiekolommen opnemen | Als deze optie is ingeschakeld, omvat het kolommen die mogelijk relaties met andere tabellen hebben. Als dit vak is uitgeschakeld, ziet u deze kolommen niet. |
Navigeren met volledige hiërarchie | Als dit is ingeschakeld, geeft de navigator de volledige hiërarchie weer van tabellen in de database waarmee u verbinding maakt. Als dit leeggemaakt is, geeft de navigator alleen de tabellen weer waarvan de kolommen en rijen gegevens bevatten. |
Nadat u de geavanceerde opties hebt geselecteerd die u nodig hebt, selecteert u OK- in Power Query Desktop of Volgende in Power Query Online om verbinding te maken met uw IBM Db2-database.
Problemen en beperkingen
Beperkingen van stuurprogramma's
Het Microsoft-stuurprogramma is hetzelfde dat wordt gebruikt in Microsoft Host Integration Server, de zogenaamde 'ADO.NET Provider voor DB2'. Het IBM-stuurprogramma is het IBM Db/2-stuurprogramma dat werkt met .NET. De naam van dit stuurprogramma verandert van tijd tot tijd, dus zorg ervoor dat het het stuurprogramma is dat werkt met .NET, wat verschilt van de IBM Db2-stuurprogramma's die werken met OLE/DB, ODBC of JDBC.
U kunt ervoor kiezen om het Microsoft-stuurprogramma (standaard) of het IBM-stuurprogramma te gebruiken als u Power Query Desktop gebruikt. Power Query Online gebruikt momenteel alleen het Microsoft-stuurprogramma. Elk stuurprogramma heeft zijn beperkingen.
- Microsoft-stuurprogramma
- Ondersteunt alleen Tls (Transport Layer Security) met de release van december 2024 van Power BI Desktop of hoger
- IBM-stuurprogramma
- De IBM Db2-databaseconnector werkt niet met Mainframe- of IBM i-systemen wanneer u het IBM Db2-stuurprogramma voor .NET gebruikt
- Biedt geen ondersteuning voor DirectQuery
Microsoft biedt ondersteuning voor het Microsoft-stuurprogramma, maar niet voor het IBM-stuurprogramma. Als uw IT-afdeling deze echter al heeft ingesteld en geconfigureerd op uw computers, moet uw IT-afdeling weten hoe het IBM-stuurprogramma moet worden opgelost.
Systeemeigen query's worden niet ondersteund in DirectQuery
Wanneer u DirectQuery selecteert als de modus voor gegevensverbinding in Power Query Desktop, wordt het tekstvak van de SQL-instructie in de geavanceerde opties uitgeschakeld. Deze is uitgeschakeld omdat de Power Query IBM Db2-connector momenteel geen ondersteuning biedt voor het omlaag pushen van query's boven op een systeemeigen databasequery.
Probleemoplossing
Zorg ervoor dat het IBM Db2-stuurprogramma is geïnstalleerd
Als u ervoor kiest om het IBM Db2-stuurprogramma voor Power Query Desktop te gebruiken, moet u eerst het stuurprogramma op uw computer downloaden, installeren en configureren. Om ervoor te zorgen dat het IBM Db2-stuurprogramma is geïnstalleerd:
Open Windows PowerShell op uw computer.
Voer de volgende opdracht in:
[System.Data.Common.DbProviderFactories]::GetFactoryClasses() | ogv
In het dialoogvenster dat wordt geopend, ziet u de volgende naam in de kolom InvariantName:
IBM.Data.DB2
Als deze naam zich in de kolom InvariantName bevindt, is het IBM Db2-stuurprogramma correct geïnstalleerd en geconfigureerd.
SQLCODE-foutcodes -805 en -551
Wanneer u verbinding probeert te maken met een IBM Db2-database, kan het voorkomen dat u de algemene fout SQLCODE -805 tegenkomt. Dit geeft aan dat het pakket niet is gevonden in de NULLID
of andere verzameling (opgegeven in de configuratie van de Power Query Pakket verbinding). U kunt ook de algemene fout SQLCODE -551 tegenkomen, wat aangeeft dat u geen pakketten kunt maken omdat u geen instantie voor pakketbinding hebt.
SqlCODE -805 doorgaans wordt gevolgd door SQLCODE -551, maar u ziet alleen de tweede uitzondering. In werkelijkheid is het probleem hetzelfde. U hebt geen bevoegdheid om het pakket te binden aan NULLID
of de opgegeven verzameling.
Normaal gesproken verlenen de meeste IBM Db2-beheerders geen bindpakketautoriteit aan eindgebruikers, vooral niet in een IBM z/OS-omgeving (mainframe) of IBM i (AS/400). Db2 op Linux, Unix of Windows verschilt doordat gebruikersaccounts standaard bindingsrechten hebben, waardoor het MSCS001 (Cursor Stability) pakket in de eigen collectie (naam = aanmeldingsnaam van de gebruiker) wordt aangemaakt.
Als u geen pakketbevoegdheden hebt, moet u uw Db2-beheerder vragen om pakketbindrechten. Maak met deze pakketbindingsinstantie verbinding met de database en haal gegevens op, waardoor het pakket automatisch wordt gemaakt. Daarna kan de beheerder de bevoegdheid voor verpakkingsbinding intrekken. Daarna kan de beheerder het pakket ook 'binden' aan andere verzamelingen, om de gelijktijdigheid te vergroten, om uw interne standaarden beter te kunnen afstemmen op waar pakketten zijn gebonden, enzovoort.
Wanneer u verbinding maakt met IBM Db2 voor z/OS, kan de Db2-beheerder de volgende stappen uitvoeren.
Verdeel een machtiging om een nieuw pakket aan de gebruiker te binden met een van de volgende opdrachten:
- VERLENEN VAN BINDADD OP HET SYSTEEM AAN <AUTHORIZATION_NAME>
- GRANT PACKADM ON <collection_name> TO <authorization_name>
Maak met Behulp van Power Query verbinding met de IBM Db2-database en haal een lijst met schema's, tabellen en weergaven op. De Power Query IBM Db2-databaseconnector maakt automatisch het pakket NULLID.MSCS001 aan en verleent vervolgens uitvoeringsrechten op het pakket aan het publiek.
De bevoegdheid intrekken om een nieuw pakket aan de gebruiker te koppelen met een van de volgende opdrachten:
- HERROEP BINDADD VAN <authorization_name>
- PACKADM INTREKKEN OP <collection_name> UIT <authorization_name>
Wanneer u verbinding maakt met IBM Db2 voor Linux, Unix of Windows, kan de Db2-beheerder de volgende stappen uitvoeren.
VERLENEN BINDADD OP DATABASE AAN GEBRUIKER <authorization_name>.
Maak met Behulp van Power Query verbinding met de IBM Db2-database en haal een lijst met schema's, tabellen en weergaven op. De Power Query IBM Db2-connector maakt automatisch het pakket NULLID.MSCS001 aan en verleent vervolgens uitvoeringstoegang op het pakket aan iedereen.
INTREKKEN BINDADD OP DATABASE VAN DE GEBRUIKER <authorization_name>.
GRANT EXECUTE ON PACKAGE <collection.package> TO USER <authorization_name>.
Wanneer u verbinding maakt met IBM Db2 for i, kan de Db2-beheerder de volgende stappen uitvoeren.
WRKOBJ QSYS/CRTSQLPKG. Typ '2' om de objectinstantie te wijzigen.
Autoriteit wijzigen van *EXCLUDE naar PUBLIC of <authorization_name>.
Daarna zet u de machtiging weer terug naar *EXCLUDE.
SQLCODE -360 foutcode
Wanneer u verbinding probeert te maken met de IBM Db2-database, kunt u de volgende fout tegenkomen:
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
Dit foutbericht geeft aan dat u de juiste waarde niet hebt geplaatst voor de naam van de database.
SQLCODE -1336 foutcode
The specified host could not be found.
Controleer de naam en controleer of de host bereikbaar is. Gebruik bijvoorbeeld ping- in een opdrachtprompt om de server te bereiken en ervoor te zorgen dat het IP-adres juist is, of gebruik telnet- om met de server te communiceren.
SQLCODE -1037 foutcode
Host is reachable, but is not responding on the specified port.
De poort wordt opgegeven aan het einde van de servernaam, gescheiden door een dubbelpunt. Als u dit weglaat, wordt de standaardwaarde van 50000 gebruikt.
Voer deze opdracht uit om de poort Db2 te vinden die wordt gebruikt voor Linux, Unix en Windows:
db2 get dbm cfg | findstr SVCENAME
Zoek in de uitvoer naar een vermelding voor SVCENAME (en SSL_SVCENAME voor versleutelde TLS-verbindingen). Als deze waarde een getal is, is dat de poort. Vergelijk anders de waarde met de tabel "services" van het systeem. U kunt dit meestal vinden op /etc/services of op c:\windows\system32\drivers\etc\services voor Windows.
In de volgende schermopname ziet u de uitvoer van deze opdracht in Linux/Unix.
In de volgende schermopname ziet u de uitvoer van deze opdracht in Windows.
Databasenaam bepalen
Ga als volgt te werk om te bepalen welke databasenaam moet worden gebruikt:
Voer op IBM i
DSPRDBDIRE
uit.Een van de vermeldingen heeft een externe locatie van *LOCAL. Deze vermelding is degene die moet worden gebruikt.
Poortnummer bepalen
Het Microsoft-stuurprogramma maakt verbinding met de database met behulp van het DRDA-protocol (Distributed Relational Database Architecture). De standaardpoort voor DRDA is poort 446. Probeer deze waarde eerst.
Ga als volgt te werk om te bepalen op welke poort de DRDA-service wordt uitgevoerd:
Voer de IBM i-opdracht
WRKSRVTBLE
uit.Schuif omlaag totdat u de vermeldingen voor DRDA hebt gevonden.
Voer
NETSTAT
uit om te bevestigen dat de DRDA-service actief is en luistert op die poort.Kies optie 3 (voor IPv4) of optie 6 (voor IPv6).
Druk op F14 om de poortnummers te zien in plaats van namen en schuif totdat u de betreffende poort ziet. Het moet een vermelding hebben met de status 'Luisteren'.