Quando usar o armazenamento colunar
Com o InterSystems IRIS 2022.2, apresentamos o armazenamento colunar como uma nova opção para a persistência das suas tabelas SQL do IRIS que pode otimizar suas consultas analíticas por ordem de magnitude. O recurso está marcado como experimental em 2022.2 e 2022.3, mas se tornará um recurso de produção totalmente compatível no próximo lançamento de 2023.1.
A documentação do produto e este vídeo introdutório já descrevem as diferenças entre o armazenamento em linhas, que ainda é o padrão no IRIS e é usado pela nossa base de clientes, e o armazenamento de tabela colunar, além de fornecer orientações de alta qualidade para a escolha do layout de armazenamento adequado para seu caso de uso. Neste artigo, vamos falar sobre esse tema e compartilhar algumas recomendações com base nos princípios de modelagem do setor, testes internos e feedback dos participantes do Programa de Acesso Antecipado.
Em geral, nossas orientações para escolher um layout de tabela adequado para seu esquema SQL do IRIS são as seguintes:
- Se você estiver implantando um aplicativo que usa o SQL ou Objects do IRIS, como um aplicativo de EHR, ERP ou processamento de transações, não é necessário mudar o armazenamento em linhas atual para o layout colunar. A maioria das consultas SQL emitidas para aplicativos ou transações programáticas de usuários finais só recuperam ou atualizam um número limitado de linhas, e as linhas de resultado geralmente correspondem às linhas da tabela, com uso bastante limitado das funções de agregação. Nesses casos, os benefícios oferecidos pelo armazenamento colunar e o processamento de consultas vetorizado não se aplicam.
- Se esse aplicativo também incorpora a análise operacional, considere adicionar índices colunares se o desempenho atual das consultas analíticas correspondentes não for satisfatório. Isso inclui, por exemplo, painéis que mostram o inventário atual ou relatórios financeiros básicos com dados em tempo real. Procure campos numéricos em agregações (por exemplo, quantidades e moedas) ou campos de cardinalidade alta usados em condições de intervalos (por exemplo, carimbos de data/hora). Um bom indicador dessas oportunidades é o uso atual de índices de bitmap para acelerar a filtragem de grandes números de linhas, geralmente em campos de cardinalidade baixa (por exemplo, campos categóricos ou ordinais). Não é necessário substituir esses índices de bitmap. Os índices colunares adicionais funcionam bem em conjunto com eles e são criados para evitar leituras excessivas do mapa principal ou dos mapas de índice normais (um único gref por linha).
- Se suas tabelas SQL do IRIS tiverem menos de um milhão de linhas, não é preciso considerar o armazenamento colunar. Preferimos não nos ater a números específicos, mas os benefícios do processamento de consultas vetorizado provavelmente não farão diferença nesses níveis mais baixos.
- Se você estiver implantando um esquema SQL do IRIS para armazém de dados, inteligência de negócios ou casos de uso analíticos semelhantes, considere mudar para o armazenamento colunar como padrão. Os esquemas em estrela, floco de neve ou outras estruturas de tabela desnormalizadas, além da ampla utilização de índices de bitmap e ingestão em lote, são bons indícios para esses casos de uso. As consultas analíticas que mais se beneficiam do armazenamento colunar são aquelas que verificam grandes números de linhas e valores agregados. Ao definir uma "tabela colunar”" o IRIS recorrerá com transparência a um layout de linhas para as colunas dessa tabela que não são adequadas para o armazenamento colunar, como fluxos, strings longas ou campos seriais. O SQL do IRIS é totalmente compatível com esses layouts de tabela mistos e usará o processamento de consultas vetorizado para as partes qualificadas do plano de consulta. O valor agregado dos índices de bitmap nas tabelas colunares é limitado, então ele pode ser deixado de fora.
O proveito variará com base nos parâmetros ambientais e relacionados a dados. Portanto, recomendamos enfaticamente que os clientes testem os diferentes layouts em uma configuração representativa. Os índices colunares são fáceis de adicionar a uma tabela regular organizada por linhas e fornecerão rapidamente uma perspectiva realista dos benefícios do desempenho da consulta. Isso, com a flexibilidade de layouts de tabela mistos, é um diferencial importante do InterSystems IRIS que ajuda os clientes a obter uma melhoria de desempenho de ordem de magnitude.
Pretendemos tornar essas recomendações mais concretas conforme tivermos mais experiência real com a versão de produção completa. Obviamente, podemos fornecer conselhos mais concretos com base no esquema real e na carga de trabalho dos clientes pelo Programa de Acesso Antecipado e compromissos com POCs, e aguardamos o feedback de clientes e membros da comunidade. O armazenamento colunar faz parte da licença do InterSystems IRIS Advanced Server e também está habilitado na Community Edition do InterSystems IRIS e IRIS for Health. Para um ambiente de demonstração com script completo, consulte este repositório do GitHub.