Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124

Existem vários desafios que uma startup moderna de indexação de blockchain pode enfrentar, incluindo:
À medida que a tecnologia blockchain se tornou mais difundida, a quantidade de dados armazenados na blockchain aumentou. Isso ocorre porque mais pessoas estão usando a tecnologia e cada transação adiciona novos dados ao blockchain. Além disso, a tecnologia blockchain evoluiu de aplicativos simples de transferência de dinheiro, como os que envolvem o uso de Bitcoin, para aplicativos mais complexos que envolvem a implementação de lógica de negócios em contratos inteligentes. Esses contratos inteligentes podem gerar grandes quantidades de dados, contribuindo para o aumento da complexidade e tamanho do blockchain. Com o tempo, isso levou a uma blockchain maior e mais complexa.
Neste artigo, revisamos a evolução da arquitetura de tecnologia da Footprint Analytics em etapas como um estudo de caso para explorar como a pilha de tecnologia Iceberg-Trino aborda os desafios dos dados on-chain.
A Footprint Analytics indexou cerca de 22 dados públicos de blockchain e 17 mercados NFT, 1900 projetos GameFi e mais de 100.000 coleções NFT em uma camada de dados de abstração semântica. É a solução de armazenamento de dados blockchain mais abrangente do mundo.
Independentemente dos dados do blockchain, que incluem mais de 20 bilhões de linhas de registros de transações financeiras, que os analistas de dados consultam com frequência. é diferente dos logs de entrada em data warehouses tradicionais.
Passamos por três grandes atualizações nos últimos meses para atender aos crescentes requisitos de negócios:
No início do Footprint Analytics, usamos Google BigQuery como nosso mecanismo de armazenamento e consulta; O BigQuery é um ótimo produto. É incrivelmente rápido, fácil de usar e fornece poder aritmético dinâmico e uma sintaxe UDF flexível que nos ajuda a fazer o trabalho rapidamente.
No entanto, o Bigquery também tem vários problemas.
Então decidimos explorar outras arquiteturas alternativas.
Estávamos muito interessados em alguns dos produtos OLAP que se tornaram muito populares. A vantagem mais atraente do OLAP é seu tempo de resposta de consulta, que normalmente leva menos de segundos para retornar resultados de consulta para grandes quantidades de dados, e também pode suportar milhares de consultas simultâneas.
Escolhemos um dos melhores bancos de dados OLAP, Doris, para tentar. Este motor funciona bem. No entanto, em algum momento, logo nos deparamos com outros problemas:
Dito isto, não poderíamos usar Doris para todo o nosso pipeline de dados na produção, então tentamos usar Doris como um banco de dados OLAP para resolver parte do nosso problema no pipeline de produção de dados, atuando como um mecanismo de consulta e fornecendo informações rápidas e altamente recursos de consulta simultânea.
Infelizmente, não pudemos substituir o Bigquery pelo Doris, então tivemos que sincronizar periodicamente os dados do Bigquery para o Doris usando-o como um mecanismo de consulta. Esse processo de sincronização tinha vários problemas, um dos quais era que as gravações de atualização se acumulavam rapidamente quando o mecanismo OLAP estava ocupado atendendo consultas aos clientes front-end. Posteriormente, a velocidade do processo de escrita foi afetada e a sincronização demorou muito mais e às vezes até se tornou impossível de terminar.
Percebemos que o OLAP poderia resolver vários problemas que enfrentamos e não poderia se tornar a solução chave na mão do Footprint Analytics, especialmente para o pipeline de processamento de dados. Nosso problema é maior e mais complexo, e poderíamos dizer que OLAP como mecanismo de consulta sozinho não era suficiente para nós.
Bem-vindo à arquitetura Footprint Analytics 3.0, uma revisão completa da arquitetura subjacente. Redesenhamos toda a arquitetura desde o início para separar o armazenamento, a computação e a consulta de dados em três partes diferentes. Tirando lições das duas arquiteturas anteriores do Footprint Analytics e aprendendo com a experiência de outros projetos de big data bem-sucedidos, como Uber, Netflix e Databricks.
Primeiro, voltamos nossa atenção para o data lake, um novo tipo de armazenamento de dados para dados estruturados e não estruturados. O data lake é perfeito para armazenamento de dados on-chain, pois os formatos de dados on-chain variam amplamente, desde dados brutos não estruturados até dados de abstração estruturados pelos quais a Footprint Analytics é bem conhecida. Esperávamos usar o data lake para resolver o problema de armazenamento de dados e, idealmente, também ofereceria suporte a mecanismos de computação convencionais, como Spark e Flink, para que não fosse difícil integrar-se a diferentes tipos de mecanismos de processamento à medida que o Footprint Analytics evolui .
O Iceberg se integra muito bem com Spark, Flink, Trino e outros motores computacionais, e podemos escolher a computação mais adequada para cada uma de nossas métricas. Por exemplo:
Com o Iceberg resolvendo os problemas de armazenamento e computação, tivemos que pensar em escolher um mecanismo de consulta. Não há muitas opções disponíveis. As alternativas que consideramos foram
A coisa mais importante que consideramos antes de aprofundar foi que o futuro mecanismo de consulta deveria ser compatível com nossa arquitetura atual.
Com base no exposto, escolhemos o Trino, que tem um suporte muito bom para o Iceberg e a equipe foi tão receptiva que levantamos um bug, que foi corrigido no dia seguinte e lançado para a versão mais recente na semana seguinte. Esta foi a melhor escolha para a equipe da Footprint, que também requer alta capacidade de resposta de implementação.
Definido nosso rumo, fizemos um teste de performance da combinação Trino + Iceberg para ver se atendia nossas necessidades e para nossa surpresa, as consultas foram incrivelmente rápidas.
Sabendo que Presto + Hive tem sido o pior comparador por anos em todo o hype OLAP, a combinação de Trino + Iceberg nos surpreendeu completamente.
Aqui estão os resultados dos nossos testes.
caso 1: junte-se a um grande conjunto de dados
Uma tabela1 de 800 GB junta-se a outra tabela2 de 50 GB e faz cálculos de negócios complexos
case2: use uma única tabela grande para fazer uma consulta distinta
SQL de teste: selecione distinto (endereço) do grupo de tabelas por dia

A combinação Trino+Iceberg é cerca de 3 vezes mais rápida que Doris na mesma configuração.
Além disso, há outra surpresa porque o Iceberg pode usar formatos de dados como Parquet, ORC, etc., que compactarão e armazenarão os dados. O armazenamento de tabelas do Iceberg ocupa apenas cerca de 1/5 do espaço de outros data warehouses. O tamanho de armazenamento da mesma tabela nos três bancos de dados é o seguinte:

Nota: Os testes acima são exemplos que encontramos na produção real e são apenas para referência.
Os relatórios de teste de desempenho nos deram desempenho suficiente para que nossa equipe levasse cerca de 2 meses para concluir a migração, e este é um diagrama de nossa arquitetura após a atualização.

Desde o seu lançamento em agosto de 2021, a equipe Footprint Analytics concluiu três atualizações de arquitetura em menos de um ano e meio, graças ao seu forte desejo e determinação de trazer os benefícios da melhor tecnologia de banco de dados para seus usuários de criptografia e execução sólida na implementação e atualizando sua infraestrutura e arquitetura subjacentes.
A atualização da arquitetura Footprint Analytics 3.0 trouxe uma nova experiência para seus usuários, permitindo que usuários de diferentes origens obtenham insights em usos e aplicações mais diversos: