Существует несколько проблем, с которыми может столкнуться современный стартап по индексированию блокчейна, в том числе:
В этой статье мы поэтапно рассмотрим развитие технологической архитектуры Footprint Analytics в качестве примера, чтобы изучить, как технологический стек Iceberg-Trino решает проблемы, связанные с данными в сети.
Компания Footprint Analytics проиндексировала около 22 публичных блокчейн данных, а также 17 NFT marketplace, 1900 GameFi project, и более 100 000 NFT коллекций в семантический абстрактный слой данных. Это самое комплексное решение по хранению данных блокчейн в мире.
Независимо от данных блокчейна, который включает более 20 миллиардов строк записей о финансовых транзакциях, которые часто запрашиваются аналитиками данных. он отличается от журналов регистрации в традиционных хранилищах данных.
За последние несколько месяцев мы провели 3 крупных обновления, чтобы соответствовать растущим требованиям бизнеса:
В начале работы Footprint Analytics мы использовали Google Bigquery в качестве хранилища и механизма запросов; Bigquery - отличный продукт. Он молниеносно быстр, прост в использовании, предоставляет динамические арифметические возможности и гибкий синтаксис UDF, который помогает нам быстро выполнять работу.
Однако Bigquery также имеет ряд проблем.
Мы были очень заинтересованы в некоторых продуктах OLAP, которые стали очень популярными. Наиболее привлекательным преимуществом OLAP является время ответа на запрос, которое обычно занимает субсекунды для возврата результатов запроса для огромных объемов данных, а также может поддерживать тысячи одновременных запросов.
Мы выбрали одну из лучших OLAP баз данных, Doris, чтобы попробовать. Этот двигатель работает хорошо. Однако в какой-то момент мы столкнулись с другими проблемами:
К сожалению, мы не могли заменить Bigquery на Doris, поэтому нам приходилось периодически синхронизировать данные из Bigquery в Doris, используя его только как механизм запросов. Этот процесс синхронизации имел ряд проблем, одна из которых заключалась в том, что записи обновлений быстро накапливались, когда OLAP-движок был занят обслуживанием запросов внешних клиентов. Впоследствии это сказалось на скорости процесса записи, и синхронизация заняла гораздо больше времени, а иногда даже стала невозможной для завершения.
Мы поняли, что OLAP может решить несколько проблем, с которыми мы столкнулись, но не может стать готовым решением Footprint Analytics, особенно для конвейера обработки данных. Наша проблема больше и сложнее, и мы можем сказать, что одного OLAP как механизма запросов нам недостаточно.
Добро пожаловать в архитектуру Footprint Analytics 3.0 - полный пересмотр базовой архитектуры. Мы переработали всю архитектуру с нуля, чтобы разделить хранение, вычисления и запросы данных на три разные части. Взяв уроки из двух предыдущих архитектур Footprint Analytics, и изучив опыт других успешных проектов по работе с большими данными, таких как Uber, Netflix и Databricks.
Сначала мы обратили внимание на озеро данных - новый тип хранения структурированных и неструктурированных данных. Озеро данных идеально подходит для хранения данных в сети, поскольку форматы данных в сети широко варьируются от неструктурированных сырых данных до структурированных абстрактных данных Footprint Analytics хорошо известны. Мы ожидали использовать озеро данных для решения проблемы хранения данных, и в идеале оно также должно поддерживать основные вычислительные механизмы, такие как Spark и Flink, чтобы интеграция с различными типами вычислительных механизмов по мере развития Footprint Analytics не была мучением.
Iceberg очень хорошо интегрируется со Spark, Flink, Trino и другими вычислительными движками, и мы можем выбирать наиболее подходящие вычисления для каждой из наших метрик. Например:
Когда Iceberg решил проблемы хранения и вычислений, нам пришлось задуматься о том, как выбрать механизм запросов. Существует не так много вариантов, альтернативы, которые мы рассматривали, были следующими
Как только мы определились с направлением, мы провели тест производительности комбинации Trino + Iceberg, чтобы проверить, сможет ли она удовлетворить наши потребности, и к нашему удивлению, запросы были невероятно быстрыми.
Зная, что Presto + Hive был худшим компаратором в течение многих лет во всей этой OLAP-шумихе, комбинация Trino + Iceberg полностью взорвала наши умы.
Вот результаты наших тестов.
случай 1 : объединение большого набора данных
Таблица1 объемом 800 ГБ присоединяется к другой таблице2 объемом 50 ГБ и выполняет сложные бизнес-вычисления
случай2: использование большой отдельной таблицы для выполнения различительного запроса
Test sql : select distinct(address) from table group by day
Комбинация Trino+Iceberg примерно в 3 раза быстрее, чем Doris в той же конфигурации.
В дополнение к этому, есть еще один сюрприз, потому что Iceberg может использовать форматы данных, такие как Parquet, ORC и т.д., которые будут сжимать данные и хранить их. Хранилище таблиц Iceberg занимает лишь около 1/5 пространства других хранилищ данных Размер хранения одной и той же таблицы в трех базах данных выглядит следующим образом:
Примечание: Приведенные выше тесты являются отдельными примерами, с которыми мы столкнулись в реальном производстве, и приведены только для справки.
・・Эффект обновления
Отчеты о тестировании производительности дали нам достаточную производительность, поэтому нашей команде потребовалось около 2 месяцев, чтобы завершить миграцию, а это диаграмма нашей архитектуры после обновления.
С момента своего запуска в августе 2021 года команда Footprint Analytics завершила три модернизации архитектуры менее чем за полтора года, благодаря своему искреннему желанию и решимости принести преимущества лучшей технологии баз данных своим пользователям криптовалют, а также надежному выполнению работ по внедрению и модернизации базовой инфраструктуры и архитектуры.
Обновление архитектуры Footprint Analytics 3.0 подарило новый опыт пользователям, позволяя пользователям из разных слоев общества получать информацию в более разнообразных сферах использования и применения:
Существует несколько проблем, с которыми может столкнуться современный стартап по индексированию блокчейна, в том числе:
В этой статье мы поэтапно рассмотрим развитие технологической архитектуры Footprint Analytics в качестве примера, чтобы изучить, как технологический стек Iceberg-Trino решает проблемы, связанные с данными в сети.
Компания Footprint Analytics проиндексировала около 22 публичных блокчейн данных, а также 17 NFT marketplace, 1900 GameFi project, и более 100 000 NFT коллекций в семантический абстрактный слой данных. Это самое комплексное решение по хранению данных блокчейн в мире.
Независимо от данных блокчейна, который включает более 20 миллиардов строк записей о финансовых транзакциях, которые часто запрашиваются аналитиками данных. он отличается от журналов регистрации в традиционных хранилищах данных.
За последние несколько месяцев мы провели 3 крупных обновления, чтобы соответствовать растущим требованиям бизнеса:
В начале работы Footprint Analytics мы использовали Google Bigquery в качестве хранилища и механизма запросов; Bigquery - отличный продукт. Он молниеносно быстр, прост в использовании, предоставляет динамические арифметические возможности и гибкий синтаксис UDF, который помогает нам быстро выполнять работу.
Однако Bigquery также имеет ряд проблем.
Мы были очень заинтересованы в некоторых продуктах OLAP, которые стали очень популярными. Наиболее привлекательным преимуществом OLAP является время ответа на запрос, которое обычно занимает субсекунды для возврата результатов запроса для огромных объемов данных, а также может поддерживать тысячи одновременных запросов.
Мы выбрали одну из лучших OLAP баз данных, Doris, чтобы попробовать. Этот двигатель работает хорошо. Однако в какой-то момент мы столкнулись с другими проблемами:
К сожалению, мы не могли заменить Bigquery на Doris, поэтому нам приходилось периодически синхронизировать данные из Bigquery в Doris, используя его только как механизм запросов. Этот процесс синхронизации имел ряд проблем, одна из которых заключалась в том, что записи обновлений быстро накапливались, когда OLAP-движок был занят обслуживанием запросов внешних клиентов. Впоследствии это сказалось на скорости процесса записи, и синхронизация заняла гораздо больше времени, а иногда даже стала невозможной для завершения.
Мы поняли, что OLAP может решить несколько проблем, с которыми мы столкнулись, но не может стать готовым решением Footprint Analytics, особенно для конвейера обработки данных. Наша проблема больше и сложнее, и мы можем сказать, что одного OLAP как механизма запросов нам недостаточно.
Добро пожаловать в архитектуру Footprint Analytics 3.0 - полный пересмотр базовой архитектуры. Мы переработали всю архитектуру с нуля, чтобы разделить хранение, вычисления и запросы данных на три разные части. Взяв уроки из двух предыдущих архитектур Footprint Analytics, и изучив опыт других успешных проектов по работе с большими данными, таких как Uber, Netflix и Databricks.
Сначала мы обратили внимание на озеро данных - новый тип хранения структурированных и неструктурированных данных. Озеро данных идеально подходит для хранения данных в сети, поскольку форматы данных в сети широко варьируются от неструктурированных сырых данных до структурированных абстрактных данных Footprint Analytics хорошо известны. Мы ожидали использовать озеро данных для решения проблемы хранения данных, и в идеале оно также должно поддерживать основные вычислительные механизмы, такие как Spark и Flink, чтобы интеграция с различными типами вычислительных механизмов по мере развития Footprint Analytics не была мучением.
Iceberg очень хорошо интегрируется со Spark, Flink, Trino и другими вычислительными движками, и мы можем выбирать наиболее подходящие вычисления для каждой из наших метрик. Например:
Когда Iceberg решил проблемы хранения и вычислений, нам пришлось задуматься о том, как выбрать механизм запросов. Существует не так много вариантов, альтернативы, которые мы рассматривали, были следующими
Как только мы определились с направлением, мы провели тест производительности комбинации Trino + Iceberg, чтобы проверить, сможет ли она удовлетворить наши потребности, и к нашему удивлению, запросы были невероятно быстрыми.
Зная, что Presto + Hive был худшим компаратором в течение многих лет во всей этой OLAP-шумихе, комбинация Trino + Iceberg полностью взорвала наши умы.
Вот результаты наших тестов.
случай 1 : объединение большого набора данных
Таблица1 объемом 800 ГБ присоединяется к другой таблице2 объемом 50 ГБ и выполняет сложные бизнес-вычисления
случай2: использование большой отдельной таблицы для выполнения различительного запроса
Test sql : select distinct(address) from table group by day
Комбинация Trino+Iceberg примерно в 3 раза быстрее, чем Doris в той же конфигурации.
В дополнение к этому, есть еще один сюрприз, потому что Iceberg может использовать форматы данных, такие как Parquet, ORC и т.д., которые будут сжимать данные и хранить их. Хранилище таблиц Iceberg занимает лишь около 1/5 пространства других хранилищ данных Размер хранения одной и той же таблицы в трех базах данных выглядит следующим образом:
Примечание: Приведенные выше тесты являются отдельными примерами, с которыми мы столкнулись в реальном производстве, и приведены только для справки.
・・Эффект обновления
Отчеты о тестировании производительности дали нам достаточную производительность, поэтому нашей команде потребовалось около 2 месяцев, чтобы завершить миграцию, а это диаграмма нашей архитектуры после обновления.
С момента своего запуска в августе 2021 года команда Footprint Analytics завершила три модернизации архитектуры менее чем за полтора года, благодаря своему искреннему желанию и решимости принести преимущества лучшей технологии баз данных своим пользователям криптовалют, а также надежному выполнению работ по внедрению и модернизации базовой инфраструктуры и архитектуры.
Обновление архитектуры Footprint Analytics 3.0 подарило новый опыт пользователям, позволяя пользователям из разных слоев общества получать информацию в более разнообразных сферах использования и применения: