Baixe o app para aproveitar ainda mais
Prévia do material em texto
Livro Eletrônico Aula 08 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos 1 20 Movimentação de dados ................................................................................................. 2 Utilitários de exportação, importação e carga .................................................................................. 2 Formatação de arquivos de carga ...................................................................................................... 5 Tipos de dados .................................................................................................................................... 7 Replicação de bases ............................................................................................................................ 8 Redistribuição de dados.................................................................................................................... 10 Compressão....................................................................................................................................... 11 Interfaces JDBC e SQU ................................................................................................... 14 DB2 Connect. ................................................................................................................. 15 Integração com o WebSphere Application Server. .......................................................... 19 Considerações finais ...................................................................................................... 20 Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 08 69360 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 2 20 MOVIMENTAÇÃO DE DADOS Essa parte da aula vai tratar das informações relacionadas a movimentação de dados e como usar as ferramentas dos DB2 para movimentar dados em servidores Linux, Unix e Windows. Os utilitários de exportação e importação movimentam dados de uma tabela ou visão para outro banco de dados ou programas de planilhas; entre bancos de dados DB2; e entre bancos de dados DB2 e bancos de dados locais utilizando o DB2 Connect™. O utilitário de exportação move dados de um banco de dados para arquivos do sistema operacional. Você pode, então, usar esses arquivos para importar ou carregar (load) esses dados em outro banco de dados. O utilitário de carga move dados para as tabelas, estende os índices existentes, e gera estatísticas. Ele movimenta os dados muito mais rápido que o utilitário de importação quando grandes quantidades de dados estão envolvidas. Dados exportados usando o utilitário de exportação podem ser carregados usando o utilitário de carga. Quando o utilitário de carga é utilizado num ambiente de banco de dados particionado, grandes quantidades de dados podem ser distribuídas e carregadas em diferentes partições da base de dados. UTILITÁRIOS DE EXPORTAÇÃO, IMPORTAÇÃO E CARGA Existem várias opções de movimentação de dados disponíveis no DB2 para Linux, UNIX e Windows. Este tópico fornece uma visão geral das ferramentas de movimentação de dados, utilitários, procedimentos armazenados e os comandos disponíveis. Veja abaixo a definição e uso de cada uma das opções. Antes, porém é importante fazer algumas observações. A figura abaixo fornece uma visão geral do processo de movimentação de dados para um ambiente DB2 LUW (Lunix, Unix e Windows). Antes de falarmos dos utilitários de movimentação de dados gostaria de deixar abaixo a definição e utilização de cada tipo de arquivo que podemos utilizar neste processo. Faremos uma rápida apresentação sobre esses tipos e retomaremos o assunto mais adiante. ASC = ASCII DEL = ASCII delimitado WSF = formato de planilha (foi descontinuado no DB2 10.) IXF = Integrated Exchange Format Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 08 69360 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 3 20 Os arquivos ASC e DEL são arquivos de texto, e podem ser abertos e lidos em qualquer editor de texto. WSF é um formato que pode ser usado para movimentar dados para planilhas como o Excel ou o Calc (Open Office), ele foi descontinuado e aparece aqui só para manter a consistência com a figura anterior. 😊 IXF é um formato que não apenas inclui os dados, mas também a DDL (Linguagem de definição de dados) da tabela em questão. O formato IXF é conveniente porque, quando é necessário reconstruir a tabela, isso pode ser feito diretamente a partir de um arquivo com exportação formatada em IXF; isto não é possível caso você utilize os outros formatos. Utilitário EXPORT O utilitário EXPORT é usado para exportar dados de um banco de dados para um arquivo externo. Os dados podem, então, ser carregados, posteriormente, por meio do import ou load. Esse utilitário é muito útil quando você quer armazenar dados em um arquivo externo para processá-lo posteriormente ou mover para outra tabela. O High Performance Unload (HPU) é uma alternativa, todavia, deve ser adquirido separadamente. Nos bastidores, o que está realmente sendo executado é uma operação SELECT de SQL. Segue exemplo de um comando EXPORT para extração de dados da tabela concursos do nosso banco de dados. EXPORT TO concursos.ixf OF IXF SELECT * FROM concursos FETCH FIRST 10 ROWS ONLY Utilitário Import O utilitário IMPORT é usado para inserir dados de um arquivo externo em uma tabela, hierarquia, visão ou nickname. O utilitário import é uma boa alternativa ao utilitário load quando temos uma das seguintes situações: quando a tabela de destino é uma visão; quando sua tabela de destino possui restrições de integridade e você não quer deixar sua tabela no estado pendente de set integraty; ou quando a tabela de destino tem gatilhos e você quer que eles sejam executados durante a carga. Nos bastidores, o que está realmente sendo executado é uma operação INSERT de SQL. Como uma operação de INSERT está sendo executada, todos os triggers são acionados, todas as restrições (constraints) são cumpridas imediatamente e o bufferpool do banco de dados é utilizado. O exemplo abaixo carregará todos os dados do arquivo com formatação IXF concursos.ixf para a tabela concursos_copy. Um novo banco de dados (SAMPLE2) foi criado para efetuar a inserção das linhas e criação da tabela EMPLOYEE_COPY. IMPORT FROM concursos.ixf OF IXF REPLACE_CREATE INTO concursos_copy Utilitário LOAD O utilitário LOAD é usado para movimentar de forma eficiente grandes quantidades de dados para uma nova tabela, ou em uma tabela com dados já existente. Esse utilitário é indicado para situações onde a performance de carga é a preocupação primária. Ele pode ser usado como uma alternativa ao utilitário de importação. Ele é mais rápido porque adiciona as páginas já formatadas diretamente Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 08 69360 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 4 20 ao banco de dados ao invés de executar comandos SQL INSERTS. Usamos essa funcionalidade no Banco Central para fazer grandes cargas de dados. O LOAD não passa pelo mecanismo DB2, portanto, os Triggers não são ativados, o bufferpool não é usado e as restrições podem ser impostas, mas em uma etapa separada. Uma operação LOAD é mais rápida que o IMPORT, pois ela executa um carregamento de dados de baixo nível, acessando diretamente as páginas de dados do disco. O LOAD funciona em três fases: LOAD, BUILD e DELETE. O exemplo abaixo carrega todos os dados do arquivo com formatação IXF concursos.ixf paraa tabela concursos_copy. Os dados serão carregados no banco de dados SAMPLE2 criado para fazer o IMPORT de dados. LOAD FROM concursos.ixf OF IXF REPLACE INTO concursos_copy Após executar o comando acima, o tablespace onde a tabela reside pode ter sido colocado em estado de CHECK PENDING. Isto significa que é necessário executar o comando SET INTEGRITY para verificar a consistência dos dados. SET INTEGRITY FOR concursos_copy IMMEDIATE CHECKED Utilitário DB2MOVE Comando db2move: Usar o utilitário db2move com a opção COPY permite que você copie templates de schema, com ou sem dados, de um banco de dados de origem para um banco de destino, ou ainda, mover um schema inteiro. Usar o utilitário db2move com as opções IMPORT e EXPORT facilita a movimentação de um grande número de tabelas entre bancos de dados DB2. Os utilitários EXPORT, IMPORT e LOAD trabalham em uma tabela de cada vez. Embora você possa criar um script para gerar os comandos acima para cada tabela de um banco de dados, o utilitário DB2MOVE pode fazer isso para você. Este utilitário pode trabalhar somente com arquivos IXF, e os nomes de arquivo serão gerados automaticamente pelo DB2MOVE. Os exemplos abaixo mostram como executar o DB2MOVE com as opções EXPORT e LOAD, respectivamente, usando o banco de dados SAMPLE. db2move sample export -sn db2inst2 db2move sample load Utilitário DB2LOOK Enquanto os utilitários EXPORT, IMPORT, LOAD e DB2MOVE permitem mover dados de uma tabela para outra, seja dentro de um banco de dados ou entre diversos bancos de dados, o utilitário DB2LOOK pode ser usado para extrair as expressões DDL, estatísticas de banco de dados, características de tablespace e etc, e armazená-las em um arquivo de script que, mais tarde, poderá ser executado em outro sistema. Alguns outros utilitários para movimentação de dados são listados no quadro abaixo. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 08 69360 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br ==10ef0== 5 20 Utilitário ingest: Move streams de dados a partir de arquivos e pipes em tabelas de destino no DB2, mantendo essas tabelas disponíveis. Esse utilitário possui um bom balanceamento entre performance e disponibilidade. Comando RESTORE: O comando RESTORE com as opções REDIRECT ou GENERATE SCRIPT é usado para copiar o banco de dados completo de um sistema para outro usando um script de uma imagem de backup existente. Sendo assim, essa opção só deve ser considerada se a imagem de backup existir. Comando db2relocatedb: Para renomear um banco de dados, ou realocar um banco de dados ou parte de um banco de dados no mesmo sistema ou em um sistema diferente. Este utilitário pode ser usado para situações em que um backup e restauração pode ser demorado. Também é uma alternativa ao uso de backup e restauração para movimentar ou criar cópias do banco de dados. Ele também proporciona um método rápido de clonagem de um banco de dados para ambientes alternativos, tais como o de teste. Ele pode ser usado para mover contêineres de espaço de tabela para um novo conjunto de dispositivos de armazenamento. Procedimento ADMIN_COPY_SCHEMA: Permite fazer uma cópia de todos os objetos de um único schema e recriar esses objetos em um novo esquema. Essa operação de cópia pode ser executada com ou sem dados presentes no banco de dados. Procedimento ADMIN_MOVE_TABLE: Permite mover dados de uma tabela para um novo objeto tabela com o mesmo nome, mas possivelmente com diferentes características de armazenamento, enquanto os dados se mantêm on-line e disponíveis. Esse procedimento automatiza o processo de transferir dados para uma nova tabela. Split mirror: Usado para criar um banco de dados clone, standby ou de backup. A criação de um banco de dados de standby reduz o tempo do sistema fora do ar no caso de uma falha. Prover um método rápido para clonar um banco de dados para um ambiente alternativo. FORMATAÇÃO DE ARQUIVOS DE CARGA Quatro formatos de arquivo de sistema operacionais são suportados pelos utilitários do DB2 para exportação, importação e carga, são eles: DEL - Delimitado ASCII, utilizado para trocar de dados entre uma grande variedade de gerenciadores de banco de dados e gerenciadores de arquivos. Esta abordagem de Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 08 69360 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 6 20 armazenamento de dados usa delimitadores de caracteres especiais para separar os valores das colunas. ASC - ASCII não delimitado, usado para importar ou carregar dados de outros aplicativos que criam arquivos de texto plano com dados de colunas alinhados. PC/IXF - Uma versão para PC do Formato de Intercâmbio de Integração (Integration Exchange Format - IXF), o método preferido para a troca de dados dentro do gerenciador de banco de dados. PC/IXF é uma descrição estruturada de uma tabela de banco de dados que contém uma representação externa da tabela interna. CURSOR - Um cursor é declarado sobre uma consulta SQL. Este tipo de arquivo é suportado apenas pelo utilitário de carga. Ao usar formatos de arquivo de dados ASC ou DEL, defina a tabela, incluindo os seus nomes de coluna e tipos de dados, antes de importar o arquivo. Os tipos de dados nos campos de arquivo do sistema operacional são convertidos para o tipo de dados correspondente na tabela da base de dados. O utilitário de importação aceita dados com problemas de incompatibilidade pequenos, incluindo dados de caracteres importados com possibilidade de padding ou truncamento, e dados numéricos importados para diferentes tipos de campos numéricos. Ao usar o formato de arquivo de dados de PC/IXF, a tabela não precisa existir antes de iniciar a operação de importação. No entanto, o tipo distinto definido pelo usuário (UDT) precisa ser definido, caso contrário, você receberá um erro de nome indefinido (SQL0204N). Da mesma forma, quando você estiver exportando para o formato arquivos de dados PC/IXF, os UDTs são armazenados no arquivo de saída. Ao usar o tipo de arquivo CURSOR, a tabela, incluindo seus nomes de coluna e tipos de dados, deve ser definida antes de iniciar a operação de carregamento. Os tipos das colunas presentes na consulta SQL devem ser compatíveis com os tipos de colunas correspondentes na tabela de destino. Não é necessário que o cursor especificado seja aberto antes de iniciar a operação de carregamento. O utilitário de carregamento irá processar todo o resultado da consulta associada com o cursor. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 08 69360 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 7 20 TIPOS DE DADOS A menor unidade de dados que podem ser manipulados no SQL é chamada de valor. Os valores são interpretados de acordo com o tipo de dados da sua fonte. O DB2 suporta um conjunto de tipos nativos ou built-in. Abaixo segue uma lista com os tipos de dados nativos suportados pelo DB2. Outros tipos de dados definidos pelo usuário também são suportados, são eles: Array, Cursor, Distinct, Row e Structured. Todos os tipos de dados possuem o valor padrão nulo, ao mesmo que seja definida a restrição de integridade NOT NULL. Nesta aula, consideramos que você já possui conhecimento em SQL, desta forma não vamos nos ater na explicação de cada um dos tipos, vamos apenas mostrar a figura abaixo como uma revisão da lista de tipos presentes no SQL. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 08 69360 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br8 20 REPLICAÇÃO DE BASES A replicação de bases de dados no DB2 aparece em dois estilos diferentes, a replicação tradicional e a replicação baseada em fila. As opções de replicação são de natureza semelhante, mas os métodos de replicação utilizados para produzir cada solução são diferentes e têm suas características próprias. A replicação é um processo assíncrono e não pode garantir que durante um failover todos os dados estão consistentes entre as cópias. A replicação é altamente configurável, mas é baseada em replicar alterações nas tabelas do banco de dados a partir de um local para outro. A natureza configurável da replicação permite muitas opções, incluindo a seleção de apenas um subconjunto das tabelas e/ou intervalos de dados para a replicação. É possível ainda fazer transformação de dados durante a replicação e ter múltiplos destinos de replicação. A distância entre as réplicas não é um problema, desde que haja largura de banda suficiente na rede para atender às necessidades dos clientes. A replicação também permite que os sistemas sejam hospedados em diferentes plataformas de sistemas operacionais e, possivelmente, diferentes sistemas de gerenciamento de banco de dados. A fonte e os destinos da replicação estão ativos ou em funcionamento, por isso o trabalho pode ser realizado simultaneamente em cada sistema. Por exemplo, um sistema pode ser usado para processar as transações ao mesmo tempo um sistema secundário pode ser usado para criar relatórios ou cópias de segurança. A replicação é limitada as tabelas definidas pelo usuário. Alterações nos catálogos do sistema não podem ser replicado. Por exemplo, alterações nas permissões da tabela terá de ser realizada em todos os sistemas de replicação. A replicação tradicional, também conhecido como replicação SQL, é um recurso integrado ao DB2. É constituída de duas etapas: capturar e aplicar. O administrador de replicação designa as tabelas como origens de replicação disponíveis para serem replicadas, e em seguida cria assinaturas de replicação numa base de dados de destino, o sistema secundário. Um processo de captura monitora os logs de transação para todas as alterações nas tabelas de origem de replicação, colocando todas as alterações feitas sobre estas tabelas em tabelas de staging. Um programa realiza a leitura das as tabelas de staging e move as alterações para o destino em intervalos de tempo regulares. Há alguma sobrecarga associada com o funcionamento de replicação tradicional. A quantidade de trabalho extra depende da quantidade de inserção, atualização e exclusão nas tabelas de origem. Nenhum bloqueio extra é necessário nas tabelas de base, pois a replicação analisa somente os arquivos de log e não as tabelas. Mas a carga das tabelas de staging (change tables) e o log dessas operações requerem recursos de banco de dados. A figura abaixo representa o cenário de replicação tradicional. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 08 69360 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 9 20 A replicação baseada em fila do DB2, conhecida como Q replication, é semelhante à replicação tradicional. No entanto, não existem tabelas de staging. Em vez disso, as alterações são colocadas diretamente em filas de mensagens. As filas são fornecidas pelo Websphere® Replication Server e podem ser criadas em um servidor separado ou no servidor de banco de dados primário ou secundário. As filas fornecem uma alta velocidade e um mecanismo de entrega garantida. A replicação baseada em fila não tem a sobrecarga da replicação tradicional, proporciona maior throughput e acrescenta redundância adicional devido à implementação de filas. A figura a seguir apresenta um cenário de replicação baseada em fila. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 08 69360 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 10 20 REDISTRIBUIÇÃO DE DADOS A redistribuição de dados é uma operação de administração de banco de dados que pode ser realizada para mover dados dentro de um ambiente de banco de dados particionado, quando partições são adicionadas ou removidas. O objetivo desta operação é tipicamente equilibrar o uso de espaço de armazenamento, melhorar o desempenho do sistema de banco de dados ou satisfazer outros requisitos do sistema. A redistribuição de dados pode ser realizada utilizando uma das seguintes opções: • Comando REDISTRIBUTE DATABASE PARTITION GROUP • Procedimento ADMIN_CMD • Procedimento STEPWISE_REDISTRIBUTE_DBPG • API sqludrdt A redistribuição de dados dentro de um banco de dados particionado é feito por uma das seguintes razões: • Para reequilibrar dados sempre que uma nova partição de banco de dados é adicionada ao ambiente banco de dados ou uma partição do banco de dados existente é removida. • Para introduzir uma nova distribuição de dados específicos do usuário em partições. • Para proteger dados sensíveis, isolando-os dentro de uma partição específica. A redistribuição de dados é realizada através da conexão a uma base de dados do catálogo de partições, em seguida tem início uma operação de redistribuição de dados para um grupo de partição específico usando uma das interfaces suportadas. A redistribuição de dados se baseia na existência de definições de chave de distribuição para as tabelas dentro do grupo de partição. O valor da chave de distribuição para uma linha de dados dentro da tabela é usado para determinar em que partição cada linha de dados será armazenada. Uma chave de distribuição é gerada automaticamente quando uma tabela é criada em um grupo de partição de banco de dados. Um exemplo de distribuição pode ser visto na figura ao lado: Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 08 69360 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 11 20 Uma chave de distribuição também pode ser explicitamente definida usando o CREATE TABLE ou ALTER TABLE. Por padrão, durante a redistribuição de dados, os dados da tabela são divididos e redistribuídos de forma uniforme entre as partições de banco de dados. Outras distribuições, tais como uma distribuição assimétrica, pode ser conseguida pela especificação de um mapa de distribuição de entradas que define a forma como os dados serão distribuídos. Os mapas de distribuição podem ser gerados durante uma operação de redistribuição de dados para utilização futura ou podem ser criados manualmente. COMPRESSÃO. Compressão em banco de dados ainda é um tabu para grande parte dos DBAs, muito por conta do desempenho sofrível nos primórdios desta tecnologia. Era praticamente impossível encontrar cenários em que a compressão fosse uma opção melhor do que simplesmente adicionar mais discos. Se você é um destes DBAs que não querem saber de compressão, eis algumas vantagens das tecnologias atuais que podem fazer você mudar de ideia: Espaço. Obviamente, economizar espaço em disco é o que vem à cabeça quando falamos de compressão, e espaço em disco não é mais tão barato assim como costumávamos dizer. Em tempos de Big Data, no qual os bancos de dados crescem em taxas colossais, otimizar o uso do espaço em disco passou a ser visto com outros olhos. Desempenho. Isso mesmo, desempenho. Compressão significa que cada leitura traz mais dados. Menos leitura significa menos tempo de espera no sistema de disco. Não importa o quão rápido ele seja, o disco ainda é o componente mais lento, e evitar o seu acesso é sempre uma boa ideia. Memória. Se estamos trazendo dados compactados, consequentemente, fazemos uso mais inteligente da memória. Menos memória para um processo em particular significamais memória disponível para todo o sistema. Você pode usar compressão de dados para reduzir a quantidade de dados que devem ser lidos ou gravados no disco, reduzindo assim o custo de I/O. De um modo geral, quanto mais repetitivos forem os padrões existentes em linhas de dados, melhor será sua taxa de compressão. Se os dados não contêm sequências que se repetem, como no caso de dados, principalmente, numéricos, a compressão pode não render tanto na forma de economia de armazenamento. Além disso, quando os dados não comprimem bem, você ainda incorre no impacto do gerenciador de banco tentar comprimir os dados, apenas para descobrir que os benefícios de armazenamento não valem a pena. Para verificar as possíveis economias de armazenamento que você pode conseguir com a compressão, use a função de tabela ADMIN_GET_TAB_COMPRESS_INFO. Duas formas de compactação de dados estão disponíveis: 1. Compressão de linha - Existem dois tipos de compressão de linha disponíveis: Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 08 69360 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 12 20 Compressão de linha clássica - A compactação de linha clássica envolve a substituição de padrões repetitivos que abrangem vários valores de coluna em uma linha por sequências de símbolos mais curtas. Uma amostragem das linhas é verificada para encontrar instâncias de dados repetitivos. A partir dessa verificação, um dicionário de compactação no nível de tabela é criado. Este dicionário é usado para substituir os dados repetitivos por sequências de símbolos mais curtas. Os dicionários de compactação no nível da tabela são estáticos; depois que eles são criados, eles não são alterados, a menos que você os reconstrua durante uma reorganização de tabela clássica. Compressão de linha adaptável - A compactação de linha adaptável envolve o uso de duas abordagens de compactação: compactação de linha clássica e compactação no nível da página. A compactação no nível da página envolve a substituição de padrões repetitivos que abrangem vários valores de coluna em uma única página de dados por sequências de símbolos mais curtas. Quando uma página é preenchida com dados, a lógica de compactação de página varre a página em busca de dados repetitivos. A partir dessa verificação, um dicionário de compactação no nível da página é criado. Este dicionário é usado para substituir os dados repetitivos por sequências de símbolos mais curtas. Os dicionários de nível de página são dinâmicos; eles são reconstruídos automaticamente, se necessário. 2. Compressão de valor - A compactação de valor envolve a remoção de entradas duplicadas de um valor, o armazenamento de apenas uma cópia e o acompanhamento da localização de qualquer referência ao valor armazenado. Compressão do BLU BLU Acceleration é o nome dado a um conjunto de tecnologias introduzidas na versão 10.5 do DB2, focadas no processamento analítico, e com o objetivo de oferecer compressão de dados baseado em três proposições de valor: reduzir custo, otimizar a utilização do hardware e melhorar o desempenho. E tratando-se especificamente do BLU Acceleration, como ele consegue essas proezas? • Usando uma técnica de compressão que preserva a ordem lógica da query para permitir sua execução com os dados compactados, fazendo a descompactação apenas no final. • Armazenando os dados dinamicamente na memória e organizados por coluna (ao invés do tradicional por linha), evitando assim a necessidade de índices, MQTs ou MDCs. • Melhorando o processamento paralelo. Agora os planos de acesso para tabelas organizadas por coluna fazem o uso de todos os cores do servidor simultaneamente para melhorar o desempenho das queries de processamento analítico. • Explorando recursos do processador através de instruções SIMD (Single Instruction, Multiple Datastreams), que permite processar grandes quantidades de dados através de uma única instrução e operando na velocidade dos registradores – muito mais rápidos que a memória RAM. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 08 69360 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 13 20 • Mantendo o controle de quais páginas de dados contém os valores da coluna, e dessa maneira evitando operações de I/O e processamento simplesmente ignorando os dados que não se qualificam para determinada consulta. Imagine um banco de dados com 10 TB de dados em disco. Ele então é compactado e armazenado na memória RAM usando apenas 1 TB. O armazenamento dos dados por coluna significa que, em uma determinada consulta, apenas 10 GB e dados é acessado, sendo que, destes 10 GB, apenas 1 GB se qualifica para esta consulta. O processamento destes dados é espalhado por vários cores, portanto, cada um fica responsável por apenas 32 MB, e o uso do SIMD significa que eles serão processados muito mais rapidamente. Esse é um resumo muito simplificado do funcionamento do BLU. Do ponto de vista prático, o BLU está integrado ao DB2, que foi estendido para criar e gerenciar tabelas armazenadas por coluna (além do armazenamento por linha e XML). O DB2 possui um novo núcleo que sabe como acessar esses dados organizados por coluna. As tabelas com BLU podem ser criadas sem preocupação com o funcionamento da compressão, indexação ou otimização. Ele automaticamente gerencia seu desempenho ao longo do tempo, de maneira a evitar degradação a medida que o banco de dados é usado. O DB2 BLU mostra que não é preciso desenvolver um novo sistema de banco de dados a partir do zero para se adaptar às tecnologias de hardware atuais, ou para alcançar melhorias revolucionárias em desempenho e compressão para processamento analítico. Esta revolução, através de conceitos de evolução, permitiram a introdução sem disrupção de uma tecnologia radicalmente nova, preservando as demais funcionalidades do banco de dados. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 08 69360 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 14 20 INTERFACES JDBC E SQU O produto IBM® Data Server Driver for JDBC and SQLJ inclui suporte para dois tipos de arquitetura de driver JDBC. No entanto, nem todos os servidores de dados suportam ambos os tipos. De acordo com a especificação JDBC, existem quatro tipos de arquiteturas para drivers JDBC: Tipo 1 - Drivers que implementam a API JDBC como um mapeamento para outro acesso à API de dados, como o Open Database Connectivity (ODBC). Drivers deste tipo geralmente são dependentes de uma biblioteca nativa, o que limita a sua portabilidade. Tipo 2 - Drivers que são escritos em parte na linguagem de programação Java™ e, parcialmente, em código nativo. Os drivers usam uma biblioteca cliente nativa específica para a fonte de dados a qual eles se conectam. Devido ao código nativo, a sua portabilidade é limitada. Tipo 3 - Drivers que usam um cliente Java puro e se comunicam com um servidor de dados utilizando um protocolo de dados independentemente do servidor. O servidor de dados, em seguida, repassa os pedidos do cliente para a fonte de dados. Tipo 4 - Controladores que são puro Java e implementam um protocolo de rede para uma fonte de dados específica. O cliente se conecta diretamente à fonte de dados. Em soluções JDBC e SQL incorporado para Java (SQLJ), o pacote de drivers IBM Data Server suporta apenas o tipo 4 de driver JDBC. O pacote de drivers IBM Data Server Merge Module.msm é um módulo de merge que fornece suporte para aplicativos que usam ODBC, CLI, .NET, OLE DB, PHP, Ruby, JDBC ou SQLJ para acessar os dados. Ele também permite que seu aplicativo use o IBM Data Server Provider para aplicações .NET (oDB2 .NET Data Provider e IDS .NET Data Provider). O software IBM Data Server Provider .NET é uma extensão da interface ADO.NET que permite suas aplicações .NET acessarem de forma rápida e segura os dados do DB2 ou bancos de dados Informix. O ambiente DB2 para Linux, UNIX e Windows suporta o seguinte driver: O IBM Data Server Driver para JDBC e SQLJ é um driver único que inclui os comportamentos JDBC tipo 2 e JDBC tipo 4. Quando um aplicativo carrega o IBM Data Server Driver para JDBC e SQLJ, uma única instância do controlador é carregada para as implementações tipo 2 e tipo 4. A aplicação pode fazer conexões tipo 2 e tipo 4 usando essa instância do controlador único. As conexões do tipo 2 e tipo 4 podem ser feitas simultaneamente. O IBM Data Server Driver para o comportamento driver JDBC e SQLJ tipo 2 é referido como IBM Data Server Driver para JDBC e SQLJ com conectividade tipo 2. O IBM Data Server Driver para JDBC e SQLJ tipo 4 é conhecido como IBM Data Server Driver para JDBC e SQLJ conectividade tipo 4. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 08 69360 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 15 20 Duas versões do IBM Data Server Driver para JDBC e SQLJ estão disponíveis. IBM Data Server Driver para JDBC e SQLJ versão 3.5 x é JDBC 3.0-compliant. IBM Data Server Driver para JDBC e SQLJ versão 4.x é compatível com JDBC 4.0 ou posterior. Lembrando que se você quiser usar as funcionalidades do JDBC 4.0 você deter ter instalado o SDK 6 ou uma versão posterior. O IBM Data Server Driver para JDBC e SQLJ suporta essas funções JDBC e SQLJ: Versão 3.5x suporta todos os métodos que são descritos nas especificações JDBC 3.0. Versão 4.x suporta todos os métodos que são descritos nas especificações JDBC 4.0 ou posterior. As interfaces de programação de aplicativo SQLJ, conforme definido pelos padrões SQLJ, para simplificar o acesso a dados de aplicativos Java. As conexões são habilitadas para o pool de conexão. O WebSphere Application Server ou outro servidor de aplicações estrutura o pool de conexão. As conexões a um servidor de dados por meio de funções Java definidas pelo usuário e procedimentos armazenados usam o driver IBM Data Server para JDBC e SQLJ com conectividade tipo 2. Aplicativos que chamam funções definidas pelo usuário ou procedimentos armazenados podem usar IBM Data Server Driver para JDBC e SQLJ tipo 2 de conectividade ou IBM Data Server Driver para JDBC e SQLJ conectividade tipo 4 para se conectar a um servidor de dados. O IBM Data Server Driver para JDBC e SQLJ é o driver padrão para as rotinas Java. O suporte para gerenciamento de transações distribuídas também pode ser útil. Esse suporte implementa as especificações do Java 2 Platform, Enterprise Edition (J2EE), Java Transaction Service (JTS) e Java Transaction API (JTA) que estejam em conformidade com o padrão X/Open para transações distribuídas: A especificação XA. A compatibilidade entre o driver JDBC e a versão do banco de dados deve ser considerada. Essa compatibilidade de versão que deve ser verificada entre o IBM Data Server Driver para JDBC e SQLJ com uma versão do banco de dados depende do tipo de conectividade driver que você está usando e do tipo de fonte de dados para o qual você está se conectando. Para determinar a versão do IBM Data Server Driver para JDBC e SQLJ, execute o utilitário DB2Jcc com o parâmetro -version. DB2 CONNECT. O DB2 Connect concede conectividade para bancos de dados mainframe e midrange a partir de plataformas Windows e baseadas em UNIX. Você pode se conectar ao banco de dados DB2 no OS/390 e z/OS, iSeries, VSE e VM. É possível também se conectar com bancos de dados não-IBM que estão de acordo com Distributed Relational Database Architecture (DRDA). O DB2 Connect possui diversas soluções de conexão. DB2 Connect Personal Edition fornece conectividade direta para o host e série de banco de dados iSeries, enquanto o DB2 Connect Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 08 69360 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 16 20 Enterprise Edition concede conectividade indireta que permite aos clientes acessarem o host e servidores de banco de dados iSeries através do servidor DB2 Connect. Já o DB2 Connect Unlimited Edition fornece uma solução de empacotamento exclusiva que torna a seleção de produto e licenciamento fácil. O DB2 Connect Enterprise Edition é um servidor de conectividade que concentra e gerencia conexões a partir de múltiplos clientes desktop e aplicativos web para servidores de banco de dados DB2 executando em sistemas host ou iSeries. Os bancos de dados do IBM’s DB2 Universal Database (UDB) for iSeries, DB2 for OS/390 e z/OS e DB2 for VSE & VM continuam a ser os sistemas de escolha para fazer o gerenciamento de muitos dados críticos das maiores organizações do mundo. Enquanto esses hosts e bancos de dados iSeries gerenciam os dados, existe uma grande demanda em integrar esses dados com aplicativos executando em estações de trabalho Windows e UNIX. O DB2 Connect Enterprise Edition é normalmente instalado em um servidor intermediário para conectar clientes DB2 para um host ou banco de dados iSeries. É possível também ser utilizado em máquinas onde múltiplos usuários locais desejam acessar o host ou servidores iSeries diretamente. Por exemplo, DB2 Connect Enterprise Edition pode ser instalado em uma máquina grande com vários usuários locais. Também, pode ser instalado em um servidor web, uma máquina que esteja executando um monitor Transaction Processor (TP) ou outros servidores de aplicativos de 3 níveis com vários processos e threads de aplicativo SQL local. Nesses casos, para simplificar, você pode instalar o DB2 Connect Enterprise Edition em uma mesma máquina para simplificar, ou em uma máquina separada para carregar ciclos da CPU. DB2 Connect Enterprise Edition é mais adequado para ambientes onde: • Os servidores de banco de dados Host e iSeries não suportam conectividade TCP/IP nativa e conectividade direta a partir das estações de trabalho desktop via SNA não é desejável. • Servidores Web executam aplicativos com base na web. • Servidores web executam aplicativos com base na web utilizando aplicativos com conhecimento em dados Java. • Um servidor de aplicativo de camada intermediária é utilizado. • Monitores TP, como CICS, Encina, Microsoft Transaction Server (MTS), Tuxedo, Component Broker e MQSeries são utilizados. O DB2 Connect Personal Edition fornece acesso a partir de uma estação de trabalho única para bancos de dados DB2 residindo em servidores como OS/390, z/OS, OS/400, VM e VSE, bem como servidores DB2 Universal Database em sistemas operacionais UNIX e Windows. DB2 Connect Personal Edition concede as mesmas definições importantes de APIs como DB2 Connect Enterprise Edition. Este produto está atualmente disponível para sistemas operacionais Linux e Windows. DB2 Connect Personal Edition é utilizado para conectar um sistema operacional Windows único ou estação de trabalho Linux, para um banco de dados host ou iSeries. DB2 Connect Personal Edition é melhor adaptado a ambientes em que o suporte TCP/IP nativo é Iniciação Rápida do DB2 Connect Personal Edition fornecido pelos servidores de banco de dados e o aplicativo sendo desenvolvido é um aplicativo tradicional cliente-servidor com 2-camadas. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 08 69360 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 17 20 Por exemplo, DB2 Connect Personal Edition é uma boa opção para ativar os aplicativos tradicionais de 2-camadas VisualBasic e Microsoft Access. Os aplicativosque requerem um servidor de aplicativo com camada intermediária precisam utilizar o DB2 Connect Enterprise Edition. O DB2 Connect Unlimited Edition é uma oferta de pacote única que permite flexibilidade completa de implementação DB2 Connect e simplifica a seleção e licenciamento do produto. Este produto contém DB2 Connect Personal Edition e DB2 Connect Enterprise Edition com termos e condições de licença que permitem a implementação ilimitada de todos os produtos DB2 Connect. Os encargos da licença são baseados no tamanho dos servidores S/390 ou zSeries que os usuários do DB2 Connect irão utilizar para trabalhar. Esta oferta de pacote apenas está disponível para sistemas OS/390 e z/OS e o licenciamento apenas é válido para origens de dados DB2 for OS/390 e z/OS. Vamos agora analisar um exemplo de acesso a dados do DB2 do Host ou do iSeries Utilizando o DB2 Connect Personal Edition. Uma conexão direta sem servidores intermediários é uma configuração muito conveniente e desejável. Isto é interessante principalmente em situações nas quais o servidor do banco de dados do host ou do iSeries™ suportam conectividade TCP/IP. Por exemplo, DB2® para OS/390® Versão 5.1, DB2 para AS/400® V4R2 ou DB2 para VM Versão 6.1. Nessa configuração, cada estação de trabalho do DB2 Connect™ estabelece uma conexão TCP/IP direta com o DB2 para OS/390 ou, para plataformas com Suporte SNA integrado, conecta através de APPC com o DB2 em outros bancos de dados do host e do iSeries. A conectividade TCP/IP requer que o banco de dados do host ou do iSeries suportem TCP/IP. O DB2 para OS/390 Versão 5.1 ou posterior, o DB2 para AS/400 V4R2 ou posterior e o DB2 para VM Versão 6.1 ou posterior suportam conexões TCP/IP nativas. Uma alternativa ao TCP/IP nativo é a conectividade MPTN. Conexões MPTN exigem que os produtos IBM® AnyNet® estejam instalados no sistema do banco de dados de destino, mas não exigem que o banco de dados do host ou do iSeries forneça suporte nativo ao TCP/IP. A figura a seguir exibe uma estação de trabalho com o DB2 Connect Personal Edition instalado, conectada diretamente a um servidor de banco de dados do host ou do iSeries. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 08 69360 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 18 20 Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 08 69360 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 19 20 INTEGRAÇÃO COM O WEBSPHERE APPLICATION SERVER. O IBM WebSphere Application Server é um software líder de mercado quando tratamos de aplicações com arquitetura orientada a serviços (SOA) e provimento de serviços para a sua empresa. Com o IBM WebSphere Application Server, você pode construir aplicações e soluções empresariais críticas, e combiná-los com novas funcionalidades inovadoras. A família do WebSphere Application Server inclui e suporta uma gama de produtos que ajudam a desenvolver e suportar os seus aplicativos de negócios. Você pode usar estes produtos para criar, implantar e gerenciar sites dinâmicos e outras soluções mais complexas de forma produtiva e eficaz. O DB2 fornece recursos e capacidades de integração avançadas com o WebSphere Application Server. Você pode acelerar seus ciclos de desenvolvimento de aplicações e implantação de sistemas web com esta combinação poderosa. Você pode integrar o DB2 com o WebSphere Application Server em vários cenários, vejamos alguns deles: • O DB2 pode ser utilizado para armazenamento de dados híbrido para suas aplicações. Ele pode melhorar o seu processamento de dados com as poderosas funcionalidades XML. Você pode configurar fontes de dados para utilizar o DB2 usando drivers JDBC. • Com o seu ambiente de tempo de execução IBM pureQuery®, o DB2 fornece um conjunto alternativo de APIs que podem ser usados no lugar do JDBC para acessar o banco de dados DB2. Este ambiente é uma plataforma de acesso a dados Java com alto desempenho que ajuda a gerenciar aplicativos que acessam dados. O suporte a pureQuery é baseado no Java Persistence API de ambientes Java EE e Java SE. • Você pode configurar um membro do barramento de mensagens para utilizar o DB2 como armazenamento de dados. • Você pode configurar as facilidades do gerenciamento de sessão na instalação do WebSphere Application Server para persistência da sessão do banco de dados, utilizando o DB2 como o armazenamento de dados. Você pode, então, coletar e armazenar dados da sessão em um banco de dados DB2. • É possível usar o DB2 como o armazenamento de dados para seus dados de registro UDDI. • O banco de dados de agendamento usado para armazenar e executar tarefas de serviço do scheduler do WebSphere Application Server pode ser um banco de dados DB2. O serviço do scheduler é uma extensão de programação do WebSphere que é responsável por iniciar ações em momentos ou intervalos específicos. Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 08 69360 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br 20 20 CONSIDERAÇÕES FINAIS Terminamos aqui mais uma aula sobre DB2. Essa aula ficou um pouco menor do que o esperado, mas está condizente com a nossa proposta de apresentar os principais pontos do assunto. Lembrando que teremos uma lista de questões sobre DB2 ao final deste conjunto de aulas. Forte abraço e bons estudo, Thiago Thiago Rodrigues Cavalcanti, Equipe de TI do Estratégia Concursos Aula 08 69360 Banco de Dados e Colaboração Mensageira p/ BRB (Analista TI) Com Videoaulas - Pós-Edital www.estrategiaconcursos.com.br
Compartilhar