Partilhar via


Banco de dados IBM DB2

Resumo

Número Descrição
Estado de Lançamento Disponibilidade Geral
Produtos Excel
Power BI (modelos semânticos)
Power BI (Fluxos de Dados)
Plataforma (Dataflow Gen2)
Power Apps (Fluxos de Dados)
Dynamics 365 Customer Insights
Tipos de autenticação suportados Básico
Base de dados
Windows
Documentação de referência da função DB2. Base de dados

Observação

Alguns recursos podem estar presentes em um produto, mas não em outros devido a agendas de implantação e recursos específicos do host.

Pré-requisitos

Por padrão, o conector de banco de dados IBM Db2 usa o driver da Microsoft para se conectar aos seus dados. Se você optar por usar o driver IBM nas opções avançadas no Power Query Desktop, deverá primeiro instalar o driver IBM Db2 para .NET na máquina usada para se conectar aos dados. O nome desse driver muda de tempos em tempos, portanto, certifique-se de instalar o driver IBM Db2 que funciona com .NET. Para obter instruções sobre como baixar, instalar e configurar o driver IBM Db2 para .NET, vá para Baixe os clientes e drivers iniciais da Versão 11.5. Para obter mais informações: Limitações do driver, Verifique se o driver IBM Db2 está instalado

Capacidades suportadas

  • Importação
  • DirectQuery (modelos semânticos do Power BI)
  • Opções avançadas
    • Driver (IBM ou Microsoft)
    • Tempo limite do comando em minutos
    • Coleção de pacotes
    • Instrução SQL
    • Incluir colunas de relacionamento
    • Navegar usando hierarquia completa

Ligar a uma base de dados IBM Db2 a partir do Power Query Desktop

Para estabelecer a ligação, siga os seguintes passos:

  1. Selecione a opção de base de dados IBM Db2 em Obter Dados.

  2. Especifique o servidor IBM Db2 ao qual se conectar no Server. Se uma porta for necessária, especifique-a usando o formato ServerName:Port, onde Port é o número da porta. Além disso, insira o banco de dados IBM Db2 que você deseja acessar em Database. Neste exemplo, o nome do servidor e a porta são TestIBMDb2server.contoso.com:4000 e o banco de dados IBM Db2 que está sendo acessado é NORTHWD2.

    Insira a conexão do banco de dados IBM Db2.

  3. Se você estiver se conectando a partir do Power BI Desktop, selecione o Importar ou modo de conectividade de dados do DirectQuery. O restante destas etapas de exemplo usa o modo de conexão de dados Import. Para obter mais informações sobre o DirectQuery, consulte Usar DirectQuery no Power BI Desktop.

    Observação

    Por padrão, a caixa de diálogo do banco de dados IBM DB2 usa o driver da Microsoft durante o login. Se desejar usar o driver IBM, abra de opções Avançadas e selecione IBM. Para obter mais informações: Ligue-se usando as opções avançadas

    Se você selecionar DirectQuery como seu modo de conectividade de dados, a instrução SQL nas opções avançadas será desabilitada. Atualmente, o DirectQuery não suporta o envio de consulta em cima de uma consulta nativa de base de dados para o conector IBM Db2.

  4. Selecione OK.

  5. Se esta for a primeira vez que você está se conectando a este banco de dados IBM DB2, selecione o tipo de autenticação que deseja usar, insira suas credenciais e selecione Connect. Para obter mais informações sobre autenticação, vá para Autenticação com uma fonte de dados.

    Insira suas credenciais de banco de dados IBM Db2.

    Por padrão, o Power Query tenta se conectar ao banco de dados IBM Db2 usando uma conexão criptografada. Se o Power Query não conseguir ligar utilizando uma ligação encriptada, será apresentada uma caixa de diálogo "não é possível ligar". Para se conectar usando uma conexão não criptografada, selecione OK.

    Não é possível conectar a caixa de diálogo

  6. No Navigator, selecione os dados necessários e, em seguida, selecione Carregar para carregar os dados ou Transformar dados para transformar os dados.

    Selecione os dados que você precisa do banco de dados

Ligar a uma base de dados IBM Db2 a partir do Power Query Online

Para estabelecer a ligação, siga os seguintes passos:

  1. Selecione a opção de banco de dados IBM Db2 na página Power Query - Conectar à fonte de dados página.

  2. Especifique o servidor IBM Db2 ao qual se conectar no Server. Se uma porta for necessária, especifique-a usando o formato ServerName:Port, onde Port é o número da porta. Além disso, insira o banco de dados IBM Db2 que você deseja acessar em Database. Neste exemplo, o nome do servidor e a porta são TestIBMDb2server.contoso.com:4000 e o banco de dados IBM Db2 que está sendo acessado é NORTHWD2

  3. Selecione o nome do seu gateway de dados local.

    Observação

    Você deve selecionar um gateway de dados local para esse conector, quer o banco de dados IBM Db2 esteja em sua rede local ou online.

  4. Se esta for a primeira vez que você estiver se conectando a este banco de dados IBM DB2, selecione o tipo de credenciais para a conexão em tipo de autenticação. Escolha Basic se planeja usar uma conta criada no banco de dados IBM DB2 em vez da autenticação do Windows.

  5. Introduza as suas credenciais.

  6. Selecione Usar conexão criptografada se quiser usar uma conexão criptografada ou desmarque a opção se quiser usar uma conexão não criptografada.

    Insira a conexão online do banco de dados IBM Db2.

  7. Selecione Avançar para continuar.

  8. No Navigator, selecione os dados de que necessita e, em seguida, selecione Transformar dados para transformar os dados no Power Query Editor.

    Selecione os dados que pretende transformar na Navigator

Conecte-se usando opções avançadas

O Power Query fornece um conjunto de opções avançadas que pode adicionar à sua consulta, se necessário.

Opções avançadas incluídas na caixa de diálogo Conexão do banco de dados IBM DB2.

A tabela seguinte lista todas as opções avançadas que pode definir no Power Query.

Opção avançada Descrição
Motorista Determina qual driver é usado para se conectar ao seu banco de dados IBM Db2. As opções são IBM e Windows (padrão). Se você selecionar o driver IBM, deverá primeiro garantir que o driver IBM Db2 para .NET esteja instalado em sua máquina. Esta opção só está disponível no Power Query Desktop. Para obter mais informações: Verifique se o driver IBM Db2 está instalado
Tempo limite para comando em minutos Se a sua ligação durar mais de 10 minutos (o tempo limite predefinido), pode introduzir outro valor em minutos para manter a ligação aberta por mais tempo.
Coleção de pacotes Especifica onde procurar pacotes. Os pacotes são estruturas de controle usadas pelo DB2 ao processar uma instrução SQL e serão criados automaticamente, se necessário. Por padrão, essa opção usa o valor NULLID. Disponível apenas ao usar o driver da Microsoft. Para obter mais informações: pacotes DB2: Conceitos, exemplos e problemas comuns
Instrução SQL Para obter informações, vá para Importar dados de um banco de dados usando a consulta de banco de dados nativa.
Incluir colunas de relacionamento Se estiver marcada, inclui colunas que podem ter relações com outras tabelas. Se esta caixa estiver deselecionada, não verás essas colunas.
Navegar usando hierarquia completa Se estiver marcada, o navegador exibirá a hierarquia completa de tabelas no banco de dados ao qual você está se conectando. Se estiver desmarcado, o navegador exibe apenas as tabelas cujas colunas e linhas contêm dados.

Depois de selecionar as opções avançadas necessárias, selecione OK no Power Query Desktop ou Next no Power Query Online para se conectar ao seu banco de dados IBM DB2.

Problemas e limitações

Limitações do condutor

O driver da Microsoft é o mesmo usado no Microsoft Host Integration Server, chamado de "ADO.NET Provider for DB2". O driver IBM é o driver IBM Db/2 que funciona com .NET. O nome desse driver muda de tempos em tempos, portanto, certifique-se de que é aquele que funciona com .NET, que é diferente dos drivers IBM Db2 que funcionam com OLE/DB, ODBC ou JDBC.

Pode optar por utilizar o controlador Microsoft (predefinido) ou o controlador IBM se estiver a utilizar o Power Query Desktop. Atualmente, o Power Query Online utiliza apenas o controlador da Microsoft. Cada condutor tem as suas limitações.

  • Driver da Microsoft
    • Suporta Transport Layer Security (TLS) apenas com a versão de dezembro de 2024 do Power BI Desktop ou posterior
  • Driver IBM
    • O conector de banco de dados IBM Db2, ao usar o driver IBM Db2 para .NET, não funciona com sistemas Mainframe ou IBM i
    • Não suporta DirectQuery

A Microsoft fornece suporte para o driver da Microsoft, mas não para o driver IBM. No entanto, se o departamento de TI já o tiver configurado e configurado nas suas máquinas, o departamento de TI deverá saber como resolver problemas com o driver IBM.

Consultas nativas não suportadas no DirectQuery

Quando seleciona DirectQuery como o modo de conectividade de dados no Power Query Desktop, a caixa de texto da instrução SQL nas opções avançadas é desativada. Está desativado porque o conector IBM DB2 do Power Query não suporta atualmente o push down de consulta sobre uma consulta de base de dados nativa.

Solução de problemas

Verifique se o driver IBM Db2 está instalado

Se optar por utilizar o controlador IBM Db2 para o Power Query Desktop, primeiro terá de transferir, instalar e configurar o controlador no seu computador. Para garantir que o driver IBM Db2 tenha sido instalado:

  1. Abra o Windows PowerShell em sua máquina.

  2. Digite o seguinte comando:

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

  3. Na caixa de diálogo que se abre, deverá ver o seguinte nome na coluna InvariantName:

    IBM.Data.DB2

Se esse nome estiver na coluna InvariantName, o driver IBM Db2 foi instalado e configurado corretamente.

Códigos de erro SQLCODE -805 e -551

Ao tentar conectar-se a uma base de dados IBM Db2, poderá por vezes encontrar o erro comum SQLCODE -805, que indica que o pacote não foi encontrado na coleção NULLID ou noutra coleção especificada na configuração de conexão do Pacote do Power Query . Você também pode encontrar o erro comum SQLCODE -551, que indica que você não pode criar pacotes porque você não tem autoridade de vinculação de pacote.

Normalmente, o SQLCODE -805 é seguido pelo SQLCODE -551, mas irá ver apenas a segunda exceção. Na realidade, o problema é o mesmo. Você não tem autoridade para vincular o pacote a NULLID ou à coleção especificada.

Normalmente, a maioria dos administradores do IBM DB2 não fornece autoridade de pacote de ligação aos usuários finais — especialmente em um ambiente IBM z/OS (mainframe) ou IBM i (AS/400). O DB2 no Linux, Unix ou Windows é diferente porque as contas de usuário têm privilégios de ligação por padrão, que criam o pacote MSCS001 (Estabilidade do Cursor) na própria coleção do usuário (nome = nome de login do usuário).

Se você não tiver privilégios de pacote de ligação, precisará solicitar ao administrador do DB2 a autoridade de vinculação de pacotes. Com essa autoridade de vinculação de pacote, conecte-se ao banco de dados e busque dados, que criarão automaticamente o pacote. Posteriormente, o administrador pode revogar a autoridade de vinculação de embalagem. Além disso, depois, o administrador pode "vincular a cópia" do pacote a outras coleções — para aumentar a simultaneidade, para corresponder melhor aos seus padrões internos para onde os pacotes estão vinculados e assim por diante.

Ao conectar-se ao IBM Db2 for z/OS, o administrador do DB2 pode executar as etapas a seguir.

  1. Conceder autoridade para vincular um novo pacote ao usuário com um dos seguintes comandos:

    • CONCEDER VINCULARADICIONAR NO SISTEMA PARA <authorization_name>
    • CONCEDA PACKADM EM <collection_name> A <authorization_name>
  2. Usando o Power Query, conecte-se ao banco de dados IBM DB2 e recupere uma lista de esquemas, tabelas e exibições. O conector de banco de dados IBM Db2 do Power Query criará automaticamente o pacote NULLID.MSCS001 e, em seguida, concederá execução no pacote ao público.

  3. Revogar a autoridade para vincular um novo pacote ao usuário com um dos seguintes comandos:

    • REVOGAR BINDADD DO <authorization_name>
    • REVOGAR PACKADM EM <collection_name> DE <authorization_name>

Ao conectar-se ao IBM Db2 para Linux, Unix ou Windows, o administrador do DB2 pode executar as etapas a seguir.

  1. CONCEDA BINDADD NO BANCO DE DADOS AO USUÁRIO <authorization_name>.

  2. Usando o Power Query, conecte-se ao banco de dados IBM DB2 e recupere uma lista de esquemas, tabelas e exibições. O conector IBM Db2 do Power Query criará automaticamente o pacote NULLID.MSCS001 e, em seguida, concederá permissões de execução do pacote ao público.

  3. REVOGAR BINDADD NO BANCO DE DADOS DO USUÁRIO <authorization_name>.

  4. CONCEDER EXECUÇÃO NO PACKAGE <COLLECTION.PACKAGE> AO UTILIZADOR <authorization_name>.

Ao conectar-se ao IBM Db2 for i, o administrador do DB2 pode executar as etapas a seguir.

  1. WRKOBJ QSYS/CRTSQLPKG. Digite "2" para alterar a autoridade do objeto.

  2. Altere a autoridade de *EXCLUIR para PÚBLICO ou <authorization_name>.

  3. Depois, mude a autoridade de volta para *EXCLUDE.

SQLCODE código de erro -360

Ao tentar se conectar ao banco de dados IBM DB2, você pode se deparar com o seguinte erro:

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

Essa mensagem de erro indica que você não colocou o valor correto para o nome do banco de dados.

Código de erro SQLCODE -1336

The specified host could not be found.

Verifique novamente o nome e confirme se o anfitrião está acessível. Por exemplo, use ping em um prompt de comando para tentar acessar o servidor e garantir que o endereço IP esteja correto, ou use telnet para se comunicar com o servidor.

Código de erro SQLCODE -1037

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

A porta é especificada no final do nome do servidor, separada por dois pontos. Se omitido, o valor padrão de 50000 é usado.

Para encontrar a porta que o DB2 está usando para Linux, Unix e Windows, execute este comando:

db2 get dbm cfg | findstr SVCENAME

Procure na saída uma entrada para SVCENAME (e SSL_SVCENAME para conexões criptografadas TLS). Se esse valor for um número, essa é a porta. Caso contrário, consulte o valor na tabela "serviços" do sistema. Você geralmente pode encontrar isso em /etc/services, ou em c:\windows\system32\drivers\etc\services para Windows.

A captura de tela a seguir mostra a saída deste comando no Linux/Unix.

Imagem com saída do comando db2 em Linux e Unix

A captura de tela a seguir mostra a saída desse comando no Windows.

Imagem com saída do comando db2 no Windows

Determinar o nome do banco de dados

Para determinar o nome do banco de dados a ser usado:

  1. No IBM i, execute o comando DSPRDBDIRE.

    Imagem que mostra a saída do Exibir entradas de diretório do banco de dados relacional

  2. Uma das entradas terá uma de Localização Remota de *LOCAL. Esta entrada é a que deve ser usada.

Determinar o número da porta

O driver da Microsoft se conecta ao banco de dados usando o protocolo DRDA (Distributed Relational Database Architecture). A porta padrão para DRDA é a porta 446. Tente este valor primeiro.

Para descobrir com certeza em qual porta o serviço DRDA está sendo executado:

  1. Execute o comando IBM i WRKSRVTBLE.

  2. Role para baixo até encontrar as entradas para DRDA.

    entradas da tabela de serviço

  3. Para confirmar se o serviço DRDA está ativo e escutando nessa porta, execute NETSTAT.

    DRDA ouvindo

  4. Escolha a opção 3 (para IPv4) ou a opção 6 (para IPv6).

  5. Prima F14 para ver os números das portas em vez dos nomes e desloque-se até ver a porta em questão. Deve ter uma entrada com um estado de "Ouvir".

    status da conexão IP

Mais informações