Condividi tramite


Database Db2 di IBM

Sommario

Articolo Descrizione
Stato di rilascio Disponibilità generale
Prodotti Excel
Power BI (modelli semantici)
Power BI (flussi di dati)
Infrastruttura (Dataflow Gen2)
Power Apps (flussi di dati)
Dynamics 365 Customer Insights
Tipi di autenticazione supportati Basico
Banca dati
Windows
Documentazione di riferimento sulle funzioni DB2.Database

Nota

Alcune funzionalità possono essere presenti in un prodotto, ma non altre a causa di pianificazioni di distribuzione e funzionalità specifiche dell'host.

Prerequisiti

Per impostazione predefinita, il connettore di database IBM Db2 usa il driver Microsoft per connettersi ai dati. Se si sceglie di usare il driver IBM nelle opzioni avanzate in Power Query Desktop, è prima necessario installare il driver IBM Db2 per .NET nel computer usato per connettersi ai dati. Il nome di questo driver cambia di volta in volta, quindi assicurarsi di installare il driver IBM Db2 che funziona con .NET. Per istruzioni su come scaricare, installare e configurare il driver IBM Db2 per .NET, vai a Scaricare i client e i driver della versione iniziale 11.5. Altre informazioni: limitazioni del driver , Verificare che il driver IBM Db2 sia installato

Funzionalità supportate

  • Importazione
  • DirectQuery (modelli semantici di Power BI)
  • Opzioni avanzate
    • Driver (IBM o Microsoft)
    • Timeout del comando in minuti
    • Raccolta pacchetti
    • Istruzione SQL
    • Includi colonne di relazione
    • Navigare utilizzando la gerarchia completa

Connetti a un database IBM Db2 con Power Query Desktop

Per stabilire la connessione, seguire questa procedura:

  1. Selezionare l'opzione database IBM Db2 da Recupera dati.

  2. Specificare il server IBM Db2 a cui connettersi in Server. Se è necessaria una porta, specificarla usando il formato NomeServer:Porta, dove porta è il numero di porta. Immettere anche il database IBM Db2 a cui si vuole accedere in Database. In questo esempio il nome del server e la porta sono TestIBMDb2server.contoso.com:4000 e il database IBM Db2 a cui si accede è NORTHWD2.

    Immettere la connessione al database IBM Db2.

  3. Se ti connetti da Power BI Desktop, seleziona la modalità di connettività dati Importa o DirectQuery. Nella parte restante di questi passaggi di esempio viene usata la modalità di connettività dei dati di importazione. Per saperne di più su DirectQuery, vedere Usare DirectQuery in Power BI Desktop.

    Nota

    Per impostazione predefinita, la finestra di dialogo del database IBM Db2 usa il driver Microsoft durante l'accesso. Per usare il driver IBM, aprire Opzioni avanzate e selezionare IBM. Altre informazioni: Connetti con opzioni avanzate

    Se si seleziona DirectQuery come modalità di connettività dati, l'istruzione SQL nelle opzioni avanzate verrà disabilitata. DirectQuery attualmente non supporta il push delle query su una query di database nativa per il connettore IBM Db2.

  4. Selezionare OK.

  5. Se è la prima volta che ci si connette a questo database IBM Db2, selezionare il tipo di autenticazione da usare, immettere le credenziali e quindi selezionare Connect. Per altre informazioni sull'autenticazione, vedere Autenticazione con un'origine dati.

    Immettere le credenziali del database IBM Db2.

    Per impostazione predefinita, Power Query tenta di connettersi al database IBM Db2 usando una connessione crittografata. Se Power Query non riesce a connettersi usando una connessione crittografata, verrà visualizzata una finestra di dialogo "Impossibile connettersi". Per connettersi usando una connessione non crittografata, selezionare OK.

    Finestra di dialogo Impossibile connettersi

  6. In Strumento di navigazioneselezionare i dati necessari, quindi selezionare Carica per caricare i dati o Trasformare i dati per trasformare i dati.

    Selezionare i dati necessari dal database

Connettersi a un database IBM Db2 da Power Query Online

Per stabilire la connessione, seguire questa procedura:

  1. Selezionare l'opzione database IBM Db2 nella pagina Power Query - Connetti a origine dati.

  2. Specificare il server IBM Db2 a cui connettersi in Server. Se è necessaria una porta, specificarla usando il formato NomeServer:Porta, dove porta è il numero di porta. Immettere anche il database IBM Db2 a cui si vuole accedere in Database. In questo esempio il nome del server e la porta sono TestIBMDb2server.contoso.com:4000 e il database IBM Db2 a cui si accede è NORTHWD2

  3. Seleziona il nome del gateway dati locale.

    Nota

    È necessario selezionare un gateway dati locale per questo connettore, indipendentemente dal fatto che il database IBM Db2 si trovi nella rete locale o online.

  4. Se è la prima volta che ti connetti a questo database IBM Db2, seleziona il tipo di credenziali per la connessione in Tipo di Autenticazione. Scegliere l'opzione Basic se si prevede di usare un account creato nel database IBM Db2 anziché l'autenticazione di Windows.

  5. Immettere le credenziali.

  6. Selezionare Usa connessione crittografata se si vuole usare una connessione crittografata oppure deselezionare l'opzione se si vuole usare una connessione non crittografata.

    Accedere alla connessione online del database IBM Db2.

  7. Selezionare Avanti per continuare.

  8. In Navigator, selezionare i dati necessari, quindi selezionare Trasforma i dati per trasformare i dati nell'editor di Power Query.

    Selezionare i dati che si desidera trasformare nel Navigatore

Connettersi tramite opzioni avanzate

Power Query offre un set di opzioni avanzate che è possibile aggiungere alla query, se necessario.

Opzioni avanzate incluse nella finestra di dialogo Connessione al database IBM Db2.

Nella tabella seguente sono elencate tutte le opzioni avanzate che è possibile impostare in Power Query.

Opzione Avanzate Descrizione
Autista Determina il driver usato per connettersi al database IBM Db2. Le scelte sono IBM e Windows (impostazione predefinita). Se si seleziona il driver IBM, è prima necessario assicurarsi che nel computer sia installato il driver IBM Db2 per .NET. Questa opzione è disponibile solo in Power Query Desktop. Altre informazioni: Verificare che il driver IBM Db2 sia installato
Timeout del comando in minuti Se la connessione dura più di 10 minuti (timeout predefinito), è possibile immettere un altro valore in minuti per mantenere la connessione aperta più a lungo.
Collezione di pacchetti Specifica dove cercare i pacchetti. I pacchetti sono strutture di controllo usate da Db2 durante l'elaborazione di un'istruzione SQL e verranno create automaticamente, se necessario. Per impostazione predefinita, questa opzione usa il valore NULLID. Disponibile solo quando si usa il driver Microsoft. Altre informazioni: pacchetti DB2: concetti, esempi e problemi comuni
Istruzione SQL Per informazioni, vedere Importare dati da un database usando una query di database nativa.
Includi colonne di relazione Se selezionata, include colonne che potrebbero avere relazioni con altre tabelle. Se questa casella è deselezionata, queste colonne non verranno visualizzate.
Navigare usando la gerarchia completa Se selezionata, lo strumento di navigazione visualizza la gerarchia completa delle tabelle nel database a cui ci si connette. Se deselezionato, lo strumento di navigazione visualizza solo le tabelle le cui colonne e righe contengono dati.

Dopo aver selezionato le opzioni avanzate necessarie, selezionare OK in Power Query Desktop o Avanti in Power Query Online per connettersi al database IBM Db2.

Problemi e limitazioni

Limitazioni del driver

Il driver Microsoft è lo stesso usato nel Microsoft Host Integration Server, denominato "ADO.NET Provider per DB2". Il driver IBM è il driver IBM Db/2 che funziona con .NET. Il nome di questo driver cambia di volta in volta, quindi assicurarsi che sia quello che funziona con .NET, che è diverso dai driver IBM Db2 che funzionano con OLE/DB, ODBC o JDBC.

È possibile scegliere di usare il driver Microsoft (impostazione predefinita) o il driver IBM se si usa Power Query Desktop. Attualmente, Power Query Online usa solo il driver Microsoft. Ogni driver presenta le sue limitazioni.

  • Driver Microsoft
    • Supporta Transport Layer Security (TLS) solo con la versione di dicembre 2024 di Power BI Desktop o versioni successive
  • Driver IBM
    • Il connettore di database IBM Db2, quando si usa il driver IBM Db2 per .NET, non funziona con i sistemi Mainframe o IBM i
    • Non supporta DirectQuery

Microsoft fornisce supporto per il driver Microsoft, ma non per il driver IBM. Tuttavia, se il reparto IT ha già installato e configurato sui computer, il reparto IT dovrebbe sapere come risolvere i problemi del driver IBM.

Le query native non sono supportate in DirectQuery

Quando si seleziona DirectQuery come modalità di connettività dei dati in Power Query Desktop, la casella di testo istruzione SQL nelle opzioni avanzate è disabilitata. È disabilitato perché il connettore IBM Db2 di Power Query attualmente non supporta il push delle query in basso sopra una query di database nativa.

Risoluzione dei problemi

Verificare che il driver IBM Db2 sia installato

Se si sceglie di usare il driver IBM Db2 per Power Query Desktop, è prima necessario scaricare, installare e configurare il driver nel computer. Per assicurarsi che il driver IBM Db2 sia stato installato:

  1. Aprire Windows PowerShell nel computer.

  2. Immettere il comando seguente:

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

  3. Nella finestra di dialogo visualizzata verrà visualizzato il nome seguente nella colonna InvariantName:

    IBM.Data.DB2

Se questo nome si trova nella colonna InvariantName, il driver IBM Db2 è stato installato e configurato correttamente.

Codici di errore di SQLCODE -805 e SQLCODE -551

Quando si tenta di connettersi a un database IBM Db2, talvolta si verifica l'errore comune SQLCODE -805, che indica che il pacchetto non viene trovato nella o in un'altra raccolta (specificata nella configurazione di connessione al pacchetto di Power Query ). È anche possibile riscontrare l'errore comune SQLCODE -551, che indica che non è possibile creare pacchetti perché manca l'autorità di associazione del pacchetto.

In genere, SQLCODE -805 è seguito da SQLCODE -551, ma verrà visualizzata solo la seconda eccezione. In realtà, il problema è lo stesso. Non hai l'autorità per associare il pacchetto a NULLID o alla raccolta specificata.

In genere, la maggior parte degli amministratori IBM Db2 non fornisce l'autorità di associazione dei pacchetti agli utenti finali, in particolare in un ambiente IBM z/OS (mainframe) o IBM i (AS/400). Db2 su Linux, Unix o Windows è diverso in quanto gli account utente dispongono di privilegi di bind per impostazione predefinita, che creano il pacchetto MSCS001 (Stabilità del cursore) nella propria raccolta (nome = nome account di accesso utente).

Se non si dispone dei privilegi di associazione pacchetti, è necessario chiedere all'amministratore Db2 i permessi di associazione dei pacchetti. Con questa autorizzazione di associazione di pacchetti, connettersi al database ed estrarre i dati, che creerà automaticamente il pacchetto. Successivamente, l'amministratore può revocare il diritto di associare i pacchetti. Inoltre, in seguito, l'amministratore può "associare la copia" al pacchetto ad altre raccolte, per aumentare la concorrenza, per soddisfare meglio gli standard interni per cui sono associati i pacchetti e così via.

Quando ci si connette a IBM Db2 per z/OS, l'amministratore db2 può eseguire la procedura seguente.

  1. Concedere l'autorità per associare un nuovo pacchetto all'utente con uno dei comandi seguenti:

    • CONCEDI BINDADD SU SISTEMA A <authorization_name>
    • GRANT PACKADM ON <collection_name> TO <authorization_name>
  2. Utilizzando Power Query, connettersi al database IBM Db2 e recuperare un elenco di schemi, tabelle e viste. Il connettore IBM Db2 di Power Query creerà automaticamente il pacchetto NULLID.MSCS001 e quindi concederà i diritti di esecuzione sul pacchetto al pubblico.

  3. Revocare l'autorità per associare un nuovo pacchetto all'utente con uno dei comandi seguenti:

    • REVOKE BINDADD FROM <authorization_name>
    • REVOKE PACKADM ON <collection_name> FROM <authorization_name>

Quando ci si connette a IBM Db2 per Linux, Unix o Windows, l'amministratore db2 può eseguire la procedura seguente.

  1. CONCEDI BINDADD SUL DATABASE ALL'UTENTE <nome_autorizzazione>.

  2. Usando Power Query, connetti al database IBM Db2 e recupera un elenco di schemi, tabelle e viste. Il connettore IBM Db2 Power Query creerà automaticamente un pacchetto NULLID.MSCS001 e quindi concederà l'esecuzione sul pacchetto al pubblico.

  3. REVOCA BINDADD SUL DATABASE DALL'UTENTE <authorization_name>.

  4. CONCEDI ESECUZIONE SUL PACCHETTO <collection.package> ALL'UTENTE <authorization_name>.

Quando ci si connette a IBM Db2 per i, l'amministratore db2 può eseguire la procedura seguente.

  1. WRKOBJ QSYS/CRTSQLPKG. Immettere "2" per cambiare l'autorità dell'oggetto.

  2. Modificare l'autorità da *EXCLUDE a PUBLIC o <authorization_name>.

  3. Successivamente, modificare l'autorità a *EXCLUDE.

Codice di errore di SQLCODE -360

Quando si tenta di connettersi al database IBM Db2, è possibile che venga visualizzato l'errore seguente:

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

Questo messaggio di errore indica che non è stato inserito il valore corretto in per il nome del database.

Codice di errore di SQLCODE -1336

The specified host could not be found.

Ricontrolla il nome e verifica che l'host sia raggiungibile. Ad esempio, usare ping in un prompt dei comandi per tentare di raggiungere il server e assicurarsi che l'indirizzo IP sia corretto oppure usare telnet per comunicare con il server.

Codice di errore di SQLCODE -1037

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

La porta viene specificata alla fine del nome del server, separata da due punti. Se omesso, viene utilizzato il valore predefinito 50000.

Per trovare quale porta Db2 utilizza per Linux, Unix e Windows, esegui questo comando:

db2 get dbm cfg | findstr SVCENAME

Cerca nell'output una voce per SVCENAME (e SSL_SVCENAME per le connessioni crittografate TLS). Se questo valore è un numero, questa è la porta. In caso contrario, confrontare il valore con la tabella "servizi" del sistema. In genere è possibile trovare questo valore in /etc/services o in c:\windows\system32\drivers\etc\services per Windows.

Lo screenshot seguente mostra l'output di questo comando in Linux/Unix.

immagine con output del comando db2 in Linux e Unix

Lo screenshot seguente mostra l'output di questo comando in Windows.

Immagine con output del comando db2 in Windows

Determinare il nome del database

Per determinare il nome del database da usare:

  1. In IBM i eseguire DSPRDBDIRE.

    L'immagine che mostra l'output del display delle voci della directory del database relazionale

  2. Una delle voci avrà un percorso remoto di *locale. Questa voce è quella da usare.

Determinare il numero di porta

Il driver Microsoft si connette al database usando il protocollo DRDA (Distributed Relational Database Architecture). La porta predefinita per DRDA è la porta 446. Provare prima questo valore.

Per individuare la porta su cui è in esecuzione il servizio DRDA:

  1. Eseguire il comando IBM i WRKSRVTBLE.

  2. Scorrere verso il basso fino a trovare le voci per DRDA.

    voci della tabella del servizio

  3. Per verificare che il servizio DRDA sia attivo e in ascolto su tale porta, eseguire NETSTAT.

    DRDA in ascolto

  4. Scegliere l'opzione 3 (per IPv4) o l'opzione 6 (per IPv6).

  5. Premere F14 per visualizzare i numeri di porta anziché i nomi e scorrere fino a visualizzare la porta in questione. Dovrebbe avere un elemento con lo stato "Listen".

    stato della connessione IP

Altre informazioni