Friday 9 February 2018

Sybase iq moving average


Se você é novo no ASE, pode ser útil obter alguma terminologia direta e fornecer algumas informações de base básicas. Abaixo estão alguns tópicos que podem ser interessantes. Eu tentei ser factual e não muito tendencioso -). ASE vs Sybase ASE é abreviação de Adaptive Server Enterprise, o software de gerenciamento de banco de dados relacional fabricado e vendido pela Sybase, Inc. ASE é um RDBMS de classe empresarial versátil que é especialmente bom no gerenciamento de cargas de trabalho OLTP. O ASE é utilizado intensivamente no mundo financeiro (bancos, bolsas de valores, companhias de seguros), no comércio eletrônico, bem como em praticamente todas as outras áreas. A versão ASE mais recente é ASE versão 15.7 (lançado em setembro de 2017), a versão anterior é a versão 15.5. O ASE 15.7 também é conhecido como o lançamento SAP, pois esta é a versão ASE que o SAP está usando para suportar o pacote Business Suite ERP no topo do Sybase ASE. ASE é executado nos principais sabores do Unix, no Linux e no Windows. Vá aqui para descobrir se o ASE está certificado em hardware ou sistema operacional específico. Sybase ASE é um produto de software comercial proprietário. No entanto, as versões gratuitas do ASE também estão disponíveis - mais detalhes estão aqui. Para uma visão geral um pouco mais orientada para o marketing da ASE, siga este link para o site da Sybase. A Sybase vende muitos outros produtos, incluindo dois outros bancos de dados (veja aqui). Mas ainda é mais conhecido por ASE. Por esse motivo, você pode ouvir as pessoas falando sobre a Sybase quando se referem a ASE. Isso geralmente será suficientemente claro, mas quando alguém pergunta se você trabalhou com os bancos de dados Sybase ou com o Sybase Adaptive Server, vale a pena verificar se eles significam ASE, Sybase IQ (às vezes referido com o antigo nome do IQ Adaptive Server) ou SQL Em qualquer lugar (anteriormente chamado Adaptive Server Anywhere). Alguma história ASE começou sua vida em meados dos anos oitenta como o Sybase SQL Server. Durante vários anos, a Microsoft foi um distribuidor da Sybase, revendo o produto Sybase para OS2 e (mais tarde) NT com o nome do Microsoft SQL Server. Por volta de 1994, a Microsoft basicamente comprou uma cópia do código-fonte do Sybase SQL Server e seguiu sua maneira. Como concorrentes, a Sybase e a Microsoft estão desenvolvendo seus produtos independentemente desde então. A Microsoft enfatizou principalmente a facilidade de uso e o Window-ising do produto, enquanto a Sybase se concentrou em maximizar o desempenho e a confiabilidade e atender ao mercado de alto nível do OLTP. Ao lançar a versão 11.5 em 1997, a Sybase renomeou seu produto para a ASE para se distinguir melhor do MS SQL Server. Devido ao fundo comum, ainda existem muitas semelhanças nas versões atuais do ASE e do MS SQL Server: é relativamente simples aprender um se você já conhece o outro (embora algumas pessoas preferem dizer que o MS SQL Server é um ASE rip - fora). Como exemplo, o ASE e o MS SQL Server possuem uma implementação SQL chamada Transact-SQL, que são muito semelhantes (mas não idênticas - vá aqui para obter mais informações sobre este tópico). Nos primeiros dias, o Sybase SQL Server foi o primeiro RDBMS verdadeiro cliente-servidor que também era capaz de lidar com cargas de trabalho do mundo real. Em contrapartida, outros SGBDs têm sido, por exemplo, programas monolíticos, por exemplo, a Oracle apenas atropelou a funcionalidade cliente-servidor em meados dos anos noventa. Além disso, o Sybase SQL Server foi o primeiro RDBMS comercialmente bem-sucedido a suportar procedimentos e gatilhos armazenados e um otimizador de consultas com base em custos. A qualidade técnica da ASE sempre foi, e ainda é, reconhecida em toda a indústria de TI (ou seja, sem contar um lapso temporário de qualidade na notória versão 10 em 1994). Como uma empresa orientada para a tecnologia, a Sybase sempre foi melhor em escrever bons softwares e construir produtos excelentes do que na comercialização desses produtos na minha opinião, essa é a principal razão pela qual o compartilhamento de mercado da ASE é menor que o de Oracle ou Microsoft SQL Server . Aliás, o nome de Sybase é dito ter sido derivado do sistema de palavras e banco de dados. (Por favor, note: o nome Sypron - como em sypron. nl - não está relacionado com a Sybase para o significado mais profundo da Sypron, vá aqui) Participantes do mercado de concorrentes Os principais concorrentes do Sybase ASE são o Microsoft SQL Server, IBM DB2 e Oracle (o Informix foi Engolido pela IBM). A concorrência no mercado de banco de dados é feroz, com a retórica correspondente: especialmente a Oracle gosta de imaginar a Sybase como uma empresa quase inoperante e irrelevante, cujos clientes se tornariam um grande favor se mudassem para a Oracle. Eu acho que o verdadeiro motivo desses ataques é o fato de a Sybase ter uma base de clientes muito lucrativa e leal (especialmente financeiras, mas também governo, telecomunicações, saúde), que a Oracle adoraria arrebentar. Aparentemente, porém, esses clientes têm seus motivos para ficar com a Sybase. (Enquanto estava lá, vá aqui para algumas trocadinhas no Oracle). Em uma nota técnica, uma vantagem importante da Sybase ASE sobre a Oracle é o uso mais eficiente do hardware subjacente: um servidor Oracle consiste em um punhado de processos de sistema operacional, competindo continuamente para a CPU. Em contraste, o ASE possui apenas um processo de sistema operacional para fazer o mesmo trabalho, reduzindo significativamente a sobrecarga (para fazer backups, o ASE usa um segundo processo de SO que usa pouco CPU e somente quando faz backups). Isso é ainda mais verdadeiro com o novo kernel roscado na ASE 15.7. Além disso, o mecanismo de registro de transações ASE é mais eficiente do que Oracles em termos de uso de disco IO. Em outras palavras, a ASE obtém significativamente mais desempenho do usuário final a partir do mesmo hardware que o Oracle, devido a uma arquitetura fundamentalmente diferente e mais eficiente. É um fato que a participação de mercado da ASE é menor que a dos outros três produtos mencionados acima. As pessoas às vezes se perguntam se isso significa que ASE não é bom - duvidas que certamente serão alimentadas pela competição. O simples fato de que Wall Street (entre outros) funciona em grande parte na ASE e em outros produtos da Sybase deve ser uma indicação da qualidade e confiabilidade dos produtos Sybase. É outro fato que a Oracle é maior do que a Sybase, mas isso dificilmente é um argumento contra a Sybase. Afinal, o tamanho de uma empresa não é necessariamente uma indicação da qualidade ou confiabilidade de seus produtos: se isso fosse verdade, o mundo não se queixaria tanto da Microsoft. Tenha em mente que a quota de mercado não é tudo: não há muitos Ferraris que dirigem a cidade. Por fim, com a SAP adquiriu a Sybase, e os SAPs declararam o objetivo de se tornar o fornecedor de 2 bases de dados até 2017, podemos esperar um forte impulso para os vários produtos de banco de dados pela SAPSybase. Os produtos de código aberto, como o MySQL e o PostGreSQL, não podem ser comparados com o ASE, pois eles estão voltados para uma classe inteiramente diferente de aplicativos. Normalmente, estes são usados ​​em ambientes com muitos usuários simultâneos, sem requisitos de alta disponibilidade de recuperação, tamanhos de banco de dados não tão grandes ou com uma carga de trabalho predominantemente somente leitura. Em outras palavras, esses produtos não são adequados para os requisitos de computação de nível empresarial atendidos pelo ASE. (BTW, note que, contrariamente à crença popular, o MySQL não é gratuito para o uso da produção comercial, pelo que você precisará de algum suporte). Se alguma coisa, esses produtos de banco de dados provavelmente estão mais na área do SQL Anywhere (a. k.a. ASA). Outro produto de banco de dados Sybase, muito bem sucedido, destinado a instalações menores. Desenvolvimentos recentes Recentemente, a Sybase enfatizou TCO menor, disponibilidade melhorada, compatibilidade MS-SQL, funcionalidade XML altamente aprimorada e (claro) Linux (obviamente, os pontos fortes clássicos de confiabilidade e desempenho ainda estão sendo melhorados). Quanto ao TCO (custo total de propriedade), os DBAs acreditam amplamente com a experiência da Sybase e da Oracle que um ambiente da Sybase ASE é significativamente mais barato para operar e manter do que um ambiente Oracle comparável. Alguns DBA afirmam que, na sua experiência, você precisa de cerca de cinco vezes mais DBAs para Oracle do que para o Sybase ASE. Esse número pode estar na parte superior da escala, mas parece seguro dizer que você precisa apenas da metade dos DBAs para a Sybase do que você faz para a Oracle. A ênfase da Sybase no Linux apenas sublinha esse ponto: o custo normal de uma licença Oracle para uma caixa Linux é astronômico alto em comparação com o custo do hardware e muito mais caro do que uma licença Sybase comparável. Isso foi ilustrado por um DBA que conheci durante a Techwave 2003, cuja empresa americana costumava ser uma loja exclusiva da Oracle. Pressionados pela economia, eles voltaram a fazer os números e descobriram que a mudança para o Sybase ASE valia a pena. Como o DBA me disse, nós não compramos o suporte da Oracle por um ano, nós compramos todas as licenças da Sybase que precisávamos, e nós tínhamos dinheiro, ele agora estava ocupado migrando seus aplicativos para o ASE. Em 2008, a ASE Cluster Edition chegou ao mercado. Este é o último sabor da ASE, projetado para funcionar em hardware em cluster para oferecer uma alta velocidade superior e um gerenciamento avançado da carga de trabalho. No conceito, a ASE Cluster Edition (CE) é bastante semelhante ao Oracle RAC, embora algumas das diferenças mencionadas em outros lugares nesta página se apliquem ainda mais fortes aqui: Oracle RAC é conhecido por ser um animal bastante complexo por si só, exigindo treinamento especial para até mesmo DBA experientes Oracle (não-RAC). Em contraste, a ASE CE é quase idêntica à ASE-as-weve - sempre conhecida: a curva de aprendizado adicional é mínima, sublinhando assim o menor TCO para ASE vs. Oracle. Desde a ASE 12.5, a Sybase fez melhorias significativas para reduzir a necessidade de reinícios ASE. Anteriormente, muitas mudanças de configuração exigiam um reinício para tornar efetiva a alteração, mas a maioria delas se tornou dinâmica em 12.5. Além disso, a maioria das ações de configuração relacionadas a caches de dados são completamente dinâmicas da ASE 12.5.1. Como resultado, há muito menos necessidade de reiniciar um servidor ASE, que se traduz diretamente em uma melhor disponibilidade. A Sybase teve funcionalidade XMLXQL em seu banco de dados desde 12.5 (lançado em 2001), com base no recurso Java-inside-ASE. Embora isso ofereça algumas funcionalidades interessantes que outros fornecedores não tiveram naquela época, essa implementação também deixou algumas coisas a desejar. Com os desenvolvimentos em andamento em XML, a Sybase implementou XML nativamente dentro do servidor de banco de dados (ou seja, não mais baseado em Java) no ASE 12.5.1. Na minha opinião, esta é uma grande melhoria, que permite usar o ASE como banco de dados XML, com suporte total para SQLX e XPATHXQUERY. Para obter mais informações sobre XML no ASE, vá aqui. Na ASE 15, a funcionalidade XML foi amplamente aprimorada e expandida. A Sybase colocou muito esforço no ASE-on-Linux. Além das versões gratuitas do ASE-on-Linux. O Linux é agora uma plataforma principal para os últimos lançamentos do ASE. Da minha própria experiência, só posso dizer que é realmente uma combinação sólida. Outros produtos da Sybase Além da ASE, a Sybase também vende outros produtos de banco de dados, os mais importantes chamados Sybase IQ e SQL Anywhere: o Sybase IQ é um banco de dados analítico, clique aqui para obter mais informações. O SQL Anywhere (também conhecido como ASA após o nome antigo Adaptive Server Anywhere) é um RDBMS totalmente funcional, mas normalmente usado em sistemas menores (em oposição às instalações ASE em grande escala). O ASA foi originalmente conhecido como Watcom SQL, que foi adquirido pela Sybase nos anos 90. Isso foi renomeado para SQL Anywhere, muitas vezes referido como Anywhere. O ASA é executado em praticamente qualquer peça de hardware de computação, incluindo DOS, PalmOS, Windows e Unix. Uma variedade leve é ​​usada em equipamentos como telefones celulares. A Sybase afirma ser líder de mercado neste segmento de mercado móvel. Vá aqui para obter mais informações sobre o SQL Anywhere no sybase. Além do software de banco de dados mencionado acima, a Sybase vende muitos outros produtos de software. Além da ASE, meu produto favorito é Sybase Replication Server (software para replicação de dados). Há algumas informações sobre o Replication Server no meu site também (aqui e aqui). Obviamente, o site da Sybase possui uma lista completa de todos os produtos ... Para obter um guia completo de QI IQ, abrangendo IQ 15.4, vá para sypron. nliqqr. Introdução Como descrito na pergunta do questionário de abril de 2017. É relativamente simples utilizar a funcionalidade de QI no ASE. Isso pode ser útil para áreas onde o IQ 15.x possui recursos SQL, mas o ASE não, por exemplo, com funções OLAP. A idéia básica aqui é que, se você tiver o Sybase IQ disponível de qualquer maneira (com todos os licenciamentos necessários), você poderia usar a funcionalidade CIS (para acesso remoto a dados através de tabelas proxy e RPCs) em ASE e IQ para permitir que o ASE use IQ - recursos específicos do SQL. Em poucas palavras, é assim que funciona (os detalhes completos estão descritos abaixo): os dados reais residem em uma tabela ASE no IQ, é criada uma tabela de proxy que mapeia a tabela ASE no QI, é escrito um procedimento armazenado que executa o Processamento requerido nos dados ASE (através da tabela de proxy do IQ) ASE executa o procedimento armazenado IQ através de uma chamada de procedimento remoto (RPC) Antes de prosseguir, deve ficar claro que, usando uma tabela de proxy, esta tem muitas despesas gerais e você deve Esperar uma penalidade de desempenho severa em comparação com a execução da mesma funcionalidade de QI nativamente dentro do QI com os dados nas tabelas de QI. Mas a idéia do truque descrito aqui é usar algumas das funções de IQ SQL para executar uma função que a ASE não poderia fazer, ou exigiria implementar a funcionalidade manualmente em SQL no ASE. O preço que você paga pelo uso dessa funcionalidade de QI é potencialmente uma perda de desempenho. Dito isto, a sobrecarga de desempenho no IQ 15.2 deve ser menor do que nas versões IQ anteriores. Etapas de instalação Antes de chegar aos detalhes de configuração, vamos tomar como exemplo o requisito de fazer algum processamento de estilo OLAP em ASE, como calcular o 6 - média mensal ponderada exponencialmente em relação a alguns dados de vendas mensais. IQ 15.1 contém a função OLAP expweightedavg (), o que torna isso muito fácil - se você pode descobrir como permitir que a ASE invoque. Este é o esquema da tabela ASE que contém os dados reais: antes de configurar os servidores IQ do ASE, vamos assumir o seguinte: nosso servidor ASE (chamado MYASE) é executado na porta 5001 no servidor myasehost estava se conectando ao MYASE com login myaselogin, com senha myasepasswd (Sem as citações), este usuário é assumido como sendo dbo no banco de dados mydb nosso servidor IQ 15.1 (chamado MYIQ) é executado na porta 2639 no servidor myiqhost estava se conectando ao MYIQ com login myiqlogin, com senha myiqpasswd (sem as aspas) Primeiro, criamos Uma tabela de proxy no QI que aponta para a nossa tabela ASE mydb .. mytable. Isso leva algumas etapas de configuração: existem diferentes maneiras de configurar a tabela de proxy e você pode encontrar alguns problemas ao configurar as coisas (vá aqui para obter mais detalhes). Agora que possamos acessar dados ASE do IQ, o O próximo passo é escrever um procedimento armazenado de QI que calcula a média móvel, acessando os dados ASE através da tabela de proxy IQ. Este procedimento será iniciado no ASE. Nós configuramos o lado do QI agora. A parte restante é configurar a ASE para que possamos iniciar o procedimento armazenado iqprocforase acima, que reside no QI: a única coisa que falta agora é alguns dados de teste. Use esta consulta irá gerar rapidamente algumas linhas. E agora execute o procedimento armazenado no IQ: Usando o IQ Full Text Search no ASE Outro exemplo de usar os recursos do IQ no ASE é com a pesquisa de texto completo do QI. O IQ 15.2 introduziu o novo recurso de pesquisa de texto completo, que executa funções de pesquisa de texto, incluindo. Pesquisas de proximidade, em dados Varchar CLOBlong. Usando a infraestrutura ASE CIS, a funcionalidade de pesquisa de texto IQ também pode ser usada dentro do ASE. Os detalhes são descritos no white paper técnico: usando o Sybase IQ como um mecanismo de pesquisa de texto para o ASE (observe que a configuração descrita neste whitepaper é diferente da configuração acima, embora ambos usem os recursos do CIS). Notas gerais A abordagem descrita acima também funciona para o QI 12.7. Observe que a função OLAP usada acima, expweightedavg (). Foi introduzido apenas no QI 15.1 (assim como weightedavg () e um monte de outras funções estatísticas). Observe também que o recurso de pesquisa de texto completo foi introduzido no QI 15.2. Notas sobre a conectividade IQ-para-ASE No exemplo acima, estavam usando o driver asejdbc para configurar um mapeamento de servidor remoto para ASE (com o servidor de criação de comando IQ). Em princípio, é melhor usar o driver aseodbc, uma vez que possui menos gastos gerais do que asejbbc. Infelizmente, também é um pouco mais complicado de configurar do que com asejdbc por esse motivo, asejdbc foi usado para o exemplo. Vá aqui para obter detalhes completos sobre como configurar uma conexão ODBC. A eficiência das tabelas de proxy criadas no QI foi significativamente melhorada no QI 15.2. Você deve, portanto, ver menos impacto no desempenho ao usar o truque descrito nesta página no IQ 15.2 do que nas versões anteriores do iQ. Ao usar o asejdbc para configurar o mapeamento do servidor remoto no IQ, encontrei o seguinte erro ao conectar-me ao ASE (é improvável que você chegue ao mesmo erro, mas apenas no caso.): O motivo do erro foi que o meu IQ 15.2 ESD2 O servidor usou a versão 6 do jConnect para o driver asejdbc, mas, infelizmente, isso não funcionou bem com os procedimentos armazenados para o jConnect versão 7 que foram instalados no meu servidor ASE 15.5. Eu acredito que este problema foi corrigido agora, mas você deve bater este erro de qualquer maneira, execute spversion no ASE para encontrar a versão jConnect mencionada para o script installjdbc e compare-o com a versão jConnect no diretório SYBASE para sua instalação de IQ (há um Diretório jConnect-XY). No meu caso, o problema foi resolvido instalando os procs armazenados do jConnect 6.0 no ASE executando manualmente o script. jConnect-60spsqlserver15.0.sql (no diretório de instalação do ASE). Notas sobre o procedimento armazenado IQ iqprocforase O procedimento armazenado IQ iqprocforase descrito acima usa uma tabela de proxy para copiar os dados da ASE para uma tabela temporária no QI. É bem possível que o uso da inserção de comando do IQ ... a localização melhor, para que você prefira usar isso. A razão pela qual uma tabela de proxy foi usada no exemplo acima é que é mais simples, pois copia os nomes das colunas e os tipos de dados da tabela ASE automaticamente. Kevin Sherlock indicou gentilmente que, embora algumas das funções IQ OLAP não possam operar em tabelas proxy, elas podem operar em uma tabela derivada. A vantagem disso é que você não precisa da instrução select-into adicional para copiar da tabela de proxy para a tabela temporária do QI local (e você também não deve colocar essa tabela temporária). A única coisa é que você precisa de um truque para fazer a tabela derivada funcionar, uma vez que você cometeu um erro se você simplesmente colocou a tabela de proxy em uma cláusula de tabela derivada da seguinte maneira: de (selecione ano, mês, vendas de aseproxytab) como derivado. Como mais frequentemente no QI, você precisa ser um pouco persuasivo ao fazer uma parte regular da tabela de QI da consulta aqui, estou usando a tabela iqdummy de 1 linha para isso (como a documentação do QI geralmente se usa): o procedimento armazenado IQ iqprocforase Acima envia a saída para o cliente. Não é difícil alterá-lo de modo que ele escreva seus resultados de volta para uma tabela em ASE em vez disso. Abaixo está uma versão aprimorada do procedimento que requer um parâmetro adicional especificando a tabela ASE onde os resultados devem ser colocados. O procedimento de QI criará automaticamente uma tabela de proxy para esta tabela ASE e inserirá os resultados lá. Observe que a tabela de resultados deve existir na ASE antes de chamar o procedimento de QI obviamente, você deve garantir que o número de colunas e os tipos de dados sejam corretos para o conjunto de resultados inserido nela.

No comments:

Post a Comment