05 Materialize. A Streaming SQL Database Powered by Timely Dataflow (Arjun Narayan, Materialize
Materialize. A Streaming SQL Database Powered by Timely Dataflow (Arjun Narayan, Materialize Materialize (Materialize.io, GitHub github.com/MaterializeInc/materialize ) — это потоковая база данных. В отличие от систем, оптимизированных для обработки транзакционных или аналитических запросов по требованию, она оптимизирована для постоянного поддержания представлений (view maintenance) на потоках уже обработанных транзакций. Хотя в OLTP- и OLAP-системах часто есть поддержка представлений, их архитектура не рассчитана на эффективное обновление этих представлений при изменении данных. Системы, спроектированные для поддержания представлений, часто могут справляться со значительно более высокой нагрузкой для рабочих процессов, которые повторно выполняют одни и те же запросы к изменяющимся данным: они выполняют работу пропорционально объёму изменений в исходных данных, а не количеству проверок результатов. Для поддержания представлений Materialize внутренне выражает их как дифференциальные потоки данных (differential dataflow computations). Вычисления потоков данных существенно отличаются от стандартной обработки запросов. Новые вызовы включают неспособность потоков данных динамически или рекурсивно перепланировать выполнение. Оптимизация запросов также имеет иные ограничения: планы выполнения должны быть эффективными как для начального вычисления, так и для последующего инкрементного поддержания. В этом докладе я рассмотрю некоторые проблемы, с которыми мы сталкиваемся при разработке Materialize, и сравню их с подходами, используемыми в традиционных архитектурах баз данных. 01:26 Public Service Announcement 02:02 Agenda 02:30 What is streamin database 03:13 Old Arch Diagram 04:42 Arch Diagram Today 07:55 Arch Diagram Today 09:17 Who is this dude? 09:48 Arch diagram Tomorrow 12:06 The Streaming Ecosystem 12:25 What is different about online view maintenance 17:48 What do we want from streaming? 24:05 Materialize: Architecture 27:45 Traditional Streaming systems 28:40 Timely dataflow 29:25 Timestamp drive the movement of data 31:50 Differencial Dataflow: declarative dataflow operators 32:21 Materialize: Properties 37:18 Demo 40:10 Demo - create view 42:50 Demo - internal datastamp when query executed 43:25 Demo - tail 45:05 Demo - внутренняя информация о view - кол-во строк и т.п. 47:40 Questions and Answers 54:00 Q3 56:30 Question 4 01:00:40 End
Materialize. A Streaming SQL Database Powered by Timely Dataflow (Arjun Narayan, Materialize Materialize (Materialize.io, GitHub github.com/MaterializeInc/materialize ) — это потоковая база данных. В отличие от систем, оптимизированных для обработки транзакционных или аналитических запросов по требованию, она оптимизирована для постоянного поддержания представлений (view maintenance) на потоках уже обработанных транзакций. Хотя в OLTP- и OLAP-системах часто есть поддержка представлений, их архитектура не рассчитана на эффективное обновление этих представлений при изменении данных. Системы, спроектированные для поддержания представлений, часто могут справляться со значительно более высокой нагрузкой для рабочих процессов, которые повторно выполняют одни и те же запросы к изменяющимся данным: они выполняют работу пропорционально объёму изменений в исходных данных, а не количеству проверок результатов. Для поддержания представлений Materialize внутренне выражает их как дифференциальные потоки данных (differential dataflow computations). Вычисления потоков данных существенно отличаются от стандартной обработки запросов. Новые вызовы включают неспособность потоков данных динамически или рекурсивно перепланировать выполнение. Оптимизация запросов также имеет иные ограничения: планы выполнения должны быть эффективными как для начального вычисления, так и для последующего инкрементного поддержания. В этом докладе я рассмотрю некоторые проблемы, с которыми мы сталкиваемся при разработке Materialize, и сравню их с подходами, используемыми в традиционных архитектурах баз данных. 01:26 Public Service Announcement 02:02 Agenda 02:30 What is streamin database 03:13 Old Arch Diagram 04:42 Arch Diagram Today 07:55 Arch Diagram Today 09:17 Who is this dude? 09:48 Arch diagram Tomorrow 12:06 The Streaming Ecosystem 12:25 What is different about online view maintenance 17:48 What do we want from streaming? 24:05 Materialize: Architecture 27:45 Traditional Streaming systems 28:40 Timely dataflow 29:25 Timestamp drive the movement of data 31:50 Differencial Dataflow: declarative dataflow operators 32:21 Materialize: Properties 37:18 Demo 40:10 Demo - create view 42:50 Demo - internal datastamp when query executed 43:25 Demo - tail 45:05 Demo - внутренняя информация о view - кол-во строк и т.п. 47:40 Questions and Answers 54:00 Q3 56:30 Question 4 01:00:40 End
