IBM Db2-database
Samenvatting
Item | Beschrijving |
---|---|
Releasestatus | Algemene beschikbaarheid |
PRODUCTEN | Excel Power BI (Semantische modellen) Power BI (gegevensstromen) Fabric (Dataflow Gen2) Power Apps (gegevensstromen) Dynamics 365 Customer Insights |
Ondersteunde verificatietypen | Basis Database Vensters |
Documentatie voor functiereferenties | DB2. Database |
Notitie
Sommige mogelijkheden zijn mogelijk aanwezig in één product, maar niet in andere vanwege implementatieschema's en hostspecifieke mogelijkheden.
Vereisten
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 De eerste versie 11.5-clients en stuurprogramma's downloaden. Meer informatie: Stuurprogrammabeperkingen, Controleren of het IBM Db2-stuurprogramma is geïnstalleerd
Ondersteunde mogelijkheden
- Import
- DirectQuery (semantische Power BI-modellen)
- Geavanceerde opties
- Stuurprogramma (IBM of Microsoft)
- Time-out van opdracht in minuten
- Pakketverzameling
- SQL statement
- Relatiekolommen opnemen
- Navigeren in de volledige hiërarchie
Verbinding maken naar 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 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
TestIBMDb2server.contoso.com:4000
de servernaam en poort en de IBM Db2-database die wordt geopend isNORTHWD2
.Als u verbinding maakt vanuit Power BI Desktop, selecteert u de modus Importeren of DirectQuery-gegevensconnectiviteit . In de rest van deze voorbeeldstappen wordt de modus Gegevensconnectiviteit importeren gebruikt. Ga naar DirectQuery gebruiken in Power BI Desktop voor 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 modus voor gegevensconnectiviteit, 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 gegevensbron voor 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 Navigator de gegevens die u nodig hebt en selecteer vervolgens Laden om de gegevens te laden of Gegevens transformeren om de gegevens te transformeren.
Verbinding maken naar een IBM Db2-database vanuit Power Query Online
Voer de volgende stappen uit om de verbinding te maken:
Selecteer de databaseoptie IBM Db2 in de Power Query- Verbinding maken naar de gegevensbronpagina.
Geef de IBM Db2-server op waarmee verbinding moet worden gemaakt in Server. Als een poort is vereist, geeft u deze op met 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
TestIBMDb2server.contoso.com:4000
de servernaam en poort en de IBM Db2-database die wordt geopend, isNORTHWD2
Selecteer de naam van uw on-premises 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, selecteert u het type referenties voor de verbinding in verificatietype. Kies Basic als u van plan bent een account te gebruiken dat is gemaakt in de IBM Db2-database in plaats van Windows-verificatie.
Voer uw referenties in.
Selecteer Versleutelde Verbinding maken ion 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 Navigator de gegevens die u nodig hebt en selecteer vervolgens Gegevens transformeren om de gegevens in Power Query-editor te transformeren.
Verbinding maken met 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 |
---|---|
Stuurprogramma | 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 geeft u op waar moet worden gezocht naar pakketten. Pakketten zijn besturingsstructuren die door Db2 worden gebruikt bij het verwerken van een SQL-instructie en worden indien nodig automatisch gemaakt. Deze optie maakt standaard gebruik van de waarde NULLID . Alleen beschikbaar wanneer u het Microsoft-stuurprogramma gebruikt. Meer informatie: DB2-pakketten: Concepten, voorbeelden en veelvoorkomende problemen |
SQL statement | Ga voor informatie naar Gegevens importeren uit een database met behulp van een systeemeigen databasequery. |
Relatiekolommen opnemen | Indien ingeschakeld, bevat u kolommen met mogelijk relaties met andere tabellen. Als dit vak is uitgeschakeld, ziet u deze kolommen niet. |
Navigeren in de 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 is uitgeschakeld, worden alleen de tabellen weergegeven 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
- Biedt geen ondersteuning voor Transport Layer Security (TLS)
- 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.
Problemen oplossen
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 geïnstalleerd en correct geconfigureerd.
SQLCODE -805 en SQLCODE -551-foutcodes
Wanneer u verbinding probeert te maken met een IBM Db2-database, kunt u soms de algemene fout SQLCODE -805 tegenkomen, wat aangeeft dat het pakket niet is gevonden in de NULLID
of andere verzameling (opgegeven in de configuratie van de Power Query-pakketverbinding). U kunt ook de algemene fout SQLCODE -551 tegenkomen, wat aangeeft dat u geen pakketten kunt maken omdat u geen instantie voor pakketbinding hebt.
Normaal gesproken wordt SQLCODE -805 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 een NULLID
of de opgegeven verzameling.
Normaal gesproken bieden de meeste IBM Db2-beheerders geen bindingspakketinstantie aan eindgebruikers, met name in een IBM z/OS-omgeving (mainframe) of IBM i (AS/400). Db2 op Linux, Unix of Windows verschilt in die gebruikersaccounts standaard met bindingsbevoegdheden, waardoor het pakket MSCS001 (Cursor Stability) wordt gemaakt in de eigen verzameling van de gebruiker (naam = aanmeldingsnaam van de gebruiker).
Als u geen bindingspakketbevoegdheden hebt, moet u uw Db2-beheerder vragen om een pakketbindingsinstantie. Maak met deze pakketbindingsinstantie verbinding met de database en haal gegevens op, waardoor het pakket automatisch wordt gemaakt. Daarna kan de beheerder de verpakkingsbindingsinstantie 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:
- BINDADD OP SYSTEEM VERLENEN 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 en geef het pakket vervolgens openbaar.
De instantie intrekken om een nieuw pakket aan de gebruiker te binden met een van de volgende opdrachten:
- BINDADD INTREKKEN VANUIT <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.
BINDADD AAN DATABASE TOEWIJZEN AAN AUTHORIZATION_NAME> GEBRUIKER<.
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 en geef het pakket vervolgens openbaar.
BINDADD INTREKKEN OP DATABASE VAN AUTHORIZATION_NAME> GEBRUIKER<.
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.
Wijzig de instantie van *EXCLUDE in PUBLIC of <authorization_name>.
Daarna wijzigt u de instantie weer in *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 dubbele punt. 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. Anders verwijst u naar 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 de vermelding 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 uit
NETSTAT
om te bevestigen dat de DRDA-service is ingeschakeld 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'.