Udostępnij za pośrednictwem


Baza danych IBM Db2

Streszczenie

Przedmiot Opis
Stan wydania Ogólna dostępność
Produkty Excel
Power BI (modele semantyczne)
Power BI (przepływy danych)
Sieć szkieletowa (Dataflow Gen2)
Power Apps (przepływy danych)
Dynamics 365 Customer Insights
Obsługiwane typy uwierzytelniania Podstawowy
Baza danych
Windows
Dokumentacja referencyjna funkcji Baza danych DB2

Notatka

Niektóre funkcje mogą być obecne w jednym produkcie, ale nie w innych ze względu na harmonogramy wdrażania i możliwości specyficzne dla hosta.

Warunki wstępne

Domyślnie łącznik bazy danych IBM Db2 używa sterownika firmy Microsoft do łączenia się z danymi. Jeśli zdecydujesz się użyć sterownika IBM w opcjach zaawansowanych w programie Power Query Desktop, musisz najpierw zainstalować sterownik IBM Db2 dla platformy .NET na maszynie używanej do łączenia się z danymi. Nazwa tego sterownika zmienia się od czasu do czasu, dlatego należy zainstalować sterownik IBM Db2, który współpracuje z platformą .NET. Aby uzyskać instrukcje dotyczące pobierania, instalowania i konfigurowania sterownika IBM Db2 dla platformy .NET, zobacz Pobierz klientów i sterowniki w wersji początkowej 11.5. Więcej informacji: Ograniczenia sterowników, Upewnij się, że sterownik IBM Db2 jest zainstalowany

Obsługiwane możliwości

  • Import
  • Tryb DirectQuery (modele semantyczne usługi Power BI)
  • Opcje zaawansowane
    • Sterownik (IBM lub Microsoft)
    • Czas oczekiwania na polecenie w minutach
    • Kolekcja pakietów
    • Instrukcja SQL
    • Uwzględnij kolumny relacji
    • Nawigowanie przy użyciu pełnej hierarchii

Nawiązywanie połączenia z bazą danych IBM Db2 z poziomu programu Power Query Desktop

Aby nawiązać połączenie, wykonaj następujące czynności:

  1. Wybierz opcję bazy danych IBM Db2 z Pobierz dane.

  2. Określ serwer IBM Db2, z którym chcesz się połączyć w Server. Jeśli port jest wymagany, określ go przy użyciu formatu ServerName:Port, gdzie Port jest numerem portu. Wprowadź również bazę danych IBM Db2, do której chcesz uzyskać dostęp w usłudze Database. W tym przykładzie nazwa serwera i port są TestIBMDb2server.contoso.com:4000, a uzyskiwana baza danych IBM Db2 jest NORTHWD2.

    wprowadź połączenie bazy danych IBM Db2.

  3. Jeśli łączysz się z programem Power BI Desktop, wybierz tryb połączenia danych: Import lub DirectQuery. W pozostałych krokach tego przykładu używany jest tryb łączności danych Import. Aby dowiedzieć się więcej na temat trybu DirectQuery, przejdź do Używanie trybu DirectQuery w programie Power BI Desktop.

    Notka

    Domyślnie okno dialogowe bazy danych IBM Db2 używa sterownika firmy Microsoft podczas logowania. Jeśli chcesz użyć sterownika IBM, otwórz Opcje zaawansowane i wybierz pozycję IBM. Więcej informacji: Connect using advanced options (Łączenie przy użyciu opcji zaawansowanych)

    Jeśli wybierzesz tryb DirectQuery jako tryb łączności danych, instrukcja SQL w opcjach zaawansowanych zostanie wyłączona. Zapytanie bezpośrednie obecnie nie obsługuje mechanizmu przenoszenia zapytań na poziomie natywnego zapytania bazy danych dla łącznika IBM Db2.

  4. Wybierz pozycję OK.

  5. Jeśli po raz pierwszy łączysz się z tą bazą danych IBM Db2, wybierz typ uwierzytelniania, którego chcesz użyć, wprowadź swoje poświadczenia, a następnie wybierz pozycję Connect. Aby uzyskać więcej informacji na temat uwierzytelniania, zobacz Authentication with a data source (Uwierzytelnianie za pomocą źródła danych).

    Wprowadź poświadczenia bazy danych IBM Db2.

    Domyślnie program Power Query próbuje nawiązać połączenie z bazą danych IBM Db2 przy użyciu szyfrowanego połączenia. Jeśli program Power Query nie może nawiązać połączenia przy użyciu szyfrowanego połączenia, zostanie wyświetlone okno dialogowe "nie można nawiązać połączenia". Aby nawiązać połączenie przy użyciu nieszyfrowanego połączenia, wybierz pozycję OK.

    Nie można nawiązać połączenia w oknie dialogowym

  6. W Navigatorwybierz wymagane dane, a następnie wybierz pozycję Załaduj, aby załadować dane lub Przekształć dane, aby przekształcić dane.

    Wybierz wymagane dane z bazy danych

Nawiązywanie połączenia z bazą danych IBM Db2 z poziomu usługi Power Query Online

Aby nawiązać połączenie, wykonaj następujące czynności:

  1. Wybierz opcję bazy danych IBM Db2 na stronie Power Query — Łączenie ze źródłem danych.

  2. Określ serwer IBM Db2 dla połączenia w programie Server. Jeśli port jest wymagany, określ go przy użyciu formatu ServerName:Port, gdzie Port jest numerem portu. Wprowadź również bazę danych IBM Db2, do której chcesz uzyskać dostęp w usłudze Database. W tym przykładzie nazwa serwera i port są TestIBMDb2server.contoso.com:4000, a uzyskiwana baza danych IBM Db2 jest NORTHWD2

  3. Wybierz nazwę lokalnej bramy danych.

    Notatka

    Musisz wybrać lokalną bramę danych dla tego łącznika, niezależnie od tego, czy baza danych IBM Db2 znajduje się w sieci lokalnej, czy w trybie online.

  4. Jeśli po raz pierwszy łączysz się z tą bazą danych IBM Db2, wybierz typ poświadczeń dla połączenia w Rodzaj uwierzytelniania. Wybierz podstawową, jeśli planujesz użyć konta utworzonego w bazie danych IBM Db2 zamiast uwierzytelniania systemu Windows.

  5. Wprowadź swoje poświadczenia.

  6. Wybierz Użyj szyfrowanego połączenia, jeśli chcesz użyć szyfrowanego połączenia lub wyczyść opcję, jeśli chcesz użyć nieszyfrowanego połączenia.

    Nawiąż połączenie online z bazą danych IBM Db2.

  7. Wybierz pozycję Dalej, aby kontynuować.

  8. W Navigatorwybierz wymagane dane, a następnie wybierz Przekształć dane, aby przekształcić dane w Edytorze Power Query.

    Wybierz dane, które chcesz przekształcić w nawigatorze

Nawiązywanie połączenia przy użyciu opcji zaawansowanych

Dodatek Power Query udostępnia zestaw zaawansowanych opcji, które można dodać do zapytania w razie potrzeby.

zaawansowane opcje zawarte w oknie dialogowym połączenia bazy danych IBM Db2.

W poniższej tabeli wymieniono wszystkie opcje zaawansowane, które można ustawić w dodatku Power Query.

Opcja zaawansowana Opis
Kierowca Określa, który sterownik jest używany do nawiązywania połączenia z bazą danych IBM Db2. Opcje to IBM i Windows (ustawienie domyślne). W przypadku wybrania sterownika IBM należy najpierw upewnić się, że sterownik IBM Db2 dla platformy .NET jest zainstalowany na maszynie. Ta opcja jest dostępna tylko w programie Power Query Desktop. Więcej informacji: Upewnij się, że sterownik IBM Db2 jest zainstalowany
Czas wygaśnięcia polecenia w minutach Jeśli połączenie trwa dłużej niż 10 minut (domyślny limit czasu), możesz wprowadzić inną wartość w minutach, aby utrzymać połączenie otwarte przez dłuższy czas.
Kolekcja pakietów Określa, gdzie szukać pakietów. Pakiety to struktury sterujące używane przez bazę danych Db2 podczas przetwarzania instrukcji SQL i zostaną automatycznie utworzone w razie potrzeby. Domyślnie ta opcja używa wartości NULLID. Dostępne tylko w przypadku korzystania z sterownika firmy Microsoft. Więcej informacji: pakiety DB2: Pojęcia, przykłady i typowe problemy
Instrukcja SQL Aby uzyskać informacje, przejdź do Importowanie danych z bazy danych przy użyciu natywnego zapytania bazy danych.
Uwzględnij kolumny relacji Jeśli jest zaznaczone, zawiera kolumny, które mogą mieć relacje z innymi tabelami. Jeśli to pole zostanie wyczyszczone, te kolumny nie będą widoczne.
Nawigowanie przy użyciu pełnej hierarchii Jeśli to pole jest zaznaczone, nawigator wyświetla pełną hierarchię tabel w bazie danych, z którą nawiązujesz połączenie. W przypadku wyczyszczenia nawigator wyświetla tylko tabele, których kolumny i wiersze zawierają dane.

Po wybraniu potrzebnych opcji zaawansowanych wybierz pozycję OK w programie Power Query Desktop lub Dalej w usłudze Power Query Online, aby nawiązać połączenie z bazą danych IBM Db2.

Problemy i ograniczenia

Ograniczenia sterowników

Sterownik firmy Microsoft jest taki sam, który jest używany w programie Microsoft Host Integration Server, nazywanym "ADO.NET Provider for DB2". Sterownik IBM to sterownik IBM Db/2, który współpracuje z platformą .NET. Nazwa tego sterownika zmienia się od czasu do czasu, więc upewnij się, że jest to ten, który działa z platformą .NET, który różni się od sterowników IBM Db2, które współpracują z OLE/DB, ODBC lub JDBC.

Jeśli używasz programu Power Query Desktop, możesz użyć sterownika firmy Microsoft (domyślnego) lub sterownika IBM. Obecnie usługa Power Query Online używa tylko sterownika firmy Microsoft. Każdy sterownik ma swoje ograniczenia.

  • Sterownik firmy Microsoft
    • Obsługuje protokół Transport Layer Security (TLS) tylko w wersji programu Power BI Desktop lub nowszej wersji z grudnia 2024 r.
  • Sterownik IBM
    • Łącznik bazy danych IBM Db2, w przypadku używania sterownika IBM Db2 dla platformy .NET, nie działa z systemami Mainframe ani IBM i
    • Nie obsługuje trybu DirectQuery

Firma Microsoft zapewnia pomoc techniczną dla sterownika firmy Microsoft, ale nie dla sterownika IBM. Jeśli jednak dział IT ma już ustawione i skonfigurowane na maszynach, powinien wiedzieć, jak rozwiązywać problemy ze sterownikiem IBM.

Zapytania natywne nie są obsługiwane w trybie DirectQuery

Po wybraniu trybu DirectQuery jako trybu łączności danych w programie Power Query Desktop pole tekstowe instrukcji SQL w opcjach zaawansowanych jest wyłączone. Jest ona wyłączona, ponieważ łącznik IBM Db2 dodatku Power Query nie obsługuje obecnie wypychania zapytań na podstawie natywnego zapytania bazy danych.

Rozwiązywanie problemów

Upewnij się, że sterownik IBM Db2 jest zainstalowany

Jeśli zdecydujesz się użyć sterownika IBM Db2 dla programu Power Query Desktop, musisz najpierw pobrać, zainstalować i skonfigurować sterownik na maszynie. Aby upewnić się, że sterownik IBM Db2 został zainstalowany:

  1. Otwórz program Windows PowerShell na maszynie.

  2. Wprowadź następujące polecenie:

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

  3. W wyświetlonym oknie dialogowym powinna zostać wyświetlona następująca nazwa w kolumnie InvariantName:

    IBM.Data.DB2

Jeśli ta nazwa znajduje się w kolumnie InvariantName, sterownik IBM Db2 został poprawnie zainstalowany i skonfigurowany.

Kody błędów SQLCODE -805 i SQLCODE -551

Podczas próby nawiązania połączenia z bazą danych IBM Db2 czasami może wystąpić typowy błąd SQLCODE -805, który wskazuje, że pakiet nie został znaleziony w NULLID lub innej kolekcji (określony w konfiguracji połączenia pakietu Power Query). Może również wystąpić typowy błąd SQLCODE -551, który wskazuje, że nie można tworzyć pakietów, ponieważ brakuje uprawnień do powiązania pakietu.

Zazwyczaj SQLCODE -805 jest następstwem SQLCODE -551, ale zobaczysz tylko drugi wyjątek. W rzeczywistości problem jest taki sam. Nie masz kompetencji do połączenia pakietu z NULLID lub określoną kolekcją.

Zazwyczaj, większość administratorów IBM Db2 nie zapewnia użytkownikom końcowym uprawnień do wiązania pakietów — zwłaszcza w środowisku IBM z/OS (mainframe) lub IBM i (AS/400). Db2 na systemach Linux, Unix lub Windows różni się tym, że konta użytkowników mają domyślnie uprawnienia do wiązania, które tworzą pakiet MSCS001 (Stabilność Kursora) w kolekcji użytkownika (nazwa = nazwa logowania użytkownika).

Jeśli nie masz uprawnień do bindowania pakietu, musisz poprosić administratora DB2 o uprawnienia do bindowania pakietu. Korzystając z tego uprawnienia wiążącego, połącz się z bazą danych i pobierz dane, co spowoduje automatyczne utworzenie pakietu. Następnie administrator może odwołać uprawnienia do wiązania pakietów. Ponadto administrator może następnie "powiązać kopię" pakietu z innymi kolekcjami , aby zwiększyć współbieżność, aby lepiej dopasować wewnętrzne standardy dotyczące tego, gdzie pakiety są powiązane itd.

Podczas nawiązywania połączenia z usługą IBM Db2 for z/OS administrator db2 może wykonać następujące czynności.

  1. Udziel uprawnień, aby powiązać nowy pakiet z użytkownikiem przy użyciu jednego z następujących poleceń:

    • GRANT BINDADD ON SYSTEM TO <nazwa_autoryzacji>
    • GRANT PACKADM ON <collection_name> TO <authorization_name>
  2. Za pomocą dodatku Power Query połącz się z bazą danych IBM Db2 i pobierz listę schematów, tabel i widoków. Łącznik bazy danych IBM Db2 w Power Query automatycznie utworzy pakiet NULLID.MSCS001, a następnie przyzna uprawnienia do wykonywania na pakiecie publicznie.

  3. Odwołaj urząd, aby powiązać nowy pakiet z użytkownikiem przy użyciu jednego z następujących poleceń:

    • ODWOŁYWANIE PLIKU BINDADD Z <authorization_name>
    • COFNIJ PACKADM NA <collection_name> OD <authorization_name>

Podczas nawiązywania połączenia z bazą danych IBM Db2 dla systemów Linux, Unix lub Windows administrator bazy danych Db2 może wykonać następujące czynności.

  1. GRANT BINDADD ON DATABASE TO USER <authorization_name>.

  2. Za pomocą dodatku Power Query połącz się z bazą danych IBM Db2 i pobierz listę schematów, tabel i widoków. Łącznik IBM Db2 dodatku Power Query automatycznie utworzy pakiet NULLID.MSCS001, a następnie przyzna prawa do wykonywania tego pakietu publicznie.

  3. COFNIJ BINDADD NA BAZIE DANYCH DLA UŻYTKOWNIKA <nazwa_autoryzacji>.

  4. GRANT EXECUTE ON PACKAGE <collection.package> TO USER <authorization_name>.

Podczas nawiązywania połączenia z bazą danych IBM Db2 for i administrator bazy danych Db2 może wykonać następujące kroki.

  1. WRKOBJ QSYS/CRTSQLPKG. Wpisz "2", aby zmienić uprawnienia obiektu.

  2. Zmień uprawnienia z *EXCLUDE na PUBLIC lub <authorization_name>.

  3. Następnie zmień uprawnienia z powrotem na *WYKLUCZ.

Kod błędu SQLCODE -360

Podczas próby nawiązania połączenia z bazą danych IBM Db2 może wystąpić następujący błąd:

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

Ten komunikat o błędzie wskazuje, że nie umieściliśmy odpowiedniej wartości dla nazwy bazy danych.

Kod błędu SQLCODE -1336

The specified host could not be found.

Dokładnie sprawdź nazwę i upewnij się, że host jest osiągalny. Na przykład użyj ping w wierszu polecenia, aby spróbować nawiązać połączenie z serwerem i upewnić się, że adres IP jest poprawny lub użyj telnet do komunikacji z serwerem.

Kod błędu SQLCODE -1037

Host is reachable, but is not responding on the specified port.

Port jest określony na końcu nazwy serwera, oddzielony dwukropkiem. W przypadku pominięcia zostanie użyta wartość domyślna 50000.

Aby znaleźć port Db2 używany dla systemów Linux, Unix i Windows, uruchom następujące polecenie:

db2 get dbm cfg | findstr SVCENAME

Poszukaj w danych wyjściowych wpisu SVCENAME (i SSL_SVCENAME dla połączeń szyfrowanych TLS). Jeśli ta wartość jest liczbą, jest to port. W przeciwnym razie należy porównać wartość z tabelą "services" systemu. Zazwyczaj można to znaleźć na stronie /etc/services lub w c:\windows\system32\drivers\etc\services dla systemu Windows.

Poniższy zrzut ekranu przedstawia dane wyjściowe tego polecenia w systemie Linux/Unix.

Obraz z danymi wyjściowymi polecenia db2 w systemach Linux i Unix

Poniższy zrzut ekranu przedstawia dane wyjściowe tego polecenia w systemie Windows.

Obraz z danymi wyjściowymi polecenia db2 w systemie Windows

Określanie nazwy bazy danych

Aby określić nazwę bazy danych do użycia:

  1. W programie IBM i uruchom DSPRDBDIRE.

    Obraz przedstawiający dane wyjściowe wpisów katalogu relacyjnej bazy danych

  2. Jeden z wpisów będzie miał zdalną lokalizację *LOCAL. Ten wpis jest tym, którego należy użyć.

Określanie numeru portu

Sterownik firmy Microsoft łączy się z bazą danych przy użyciu protokołu Rozproszonej Relacyjnej Bazy Danych (DRDA). Domyślny port drDA to port 446. Najpierw wypróbuj tę wartość.

Aby sprawdzić, na jakim porcie działa usługa DRDA:

  1. Uruchom polecenie IBM i WRKSRVTBLE.

  2. Przewiń w dół, aż znajdziesz wpisy DRDA.

    wpisy tabeli usługi

  3. Aby potwierdzić, że usługa DRDA jest uruchomiona i nasłuchuje na tym porcie, uruchom polecenie NETSTAT.

    nasłuchiwanie DRDA

  4. Wybierz opcję 3 (dla protokołu IPv4) lub opcję 6 (dla protokołu IPv6).

  5. Naciśnij F14, aby wyświetlić numery portów zamiast nazw, i przewiń do momentu wyświetlenia danego portu. Powinien on mieć wpis ze stanem "Nasłuchiwanie".

    stan połączenia IP

Więcej informacji