Коли ми востаннє запитували: «Що таке???», ми розглядали платформу потокового передавання даних, сумісну з протоколом __ __® . З потоковими даними вам потрібно щось з ними робити. Висадити його десь на зразок , , або , або запитайте ці дані під час польоту, щоб збагатити та/або відфільтрувати їх перед посадкою. Є кілька варіантів для останнього, але найбільшим, безсумнівно, є проект з відкритим кодом . Погляд на Флінка привів мене до , яка є нашою сьогоднішньою темою. Що таке DeltaStream? Як це працює з Флінком і як це супутник Кафки? Apache Kafka WarpStream Апачі Айсберг Сніжинка Databricks Apache Flink DeltaStream Що таке Флінк? Flink спочатку був прийнятий як проект Apache у грудні 2014 року, тому він існує деякий час. Зростання потокової обробки призвело до прискореного інтересу та використання в останні кілька років. Flink — це дещо складна система для встановлення та внутрішнього використання, що вимагає спеціального інженерного таланту. Навіть обслуговування, хоч і простіше, але досить складне. Для використання Java, наприклад, потрібно написати свій Java-запит, створити файл jar, заархівувати його, завантажити в S3, встановити свої дозволи, а потім виконати його. AWS MSF Я збираюся запозичити з веб-сторінки Apache Flink тут. Apache Flink — це платформа та механізм розподіленої обробки для обчислень із збереженням стану над необмеженими та обмеженими потоками даних. Flink був розроблений для роботи в усіх поширених кластерних середовищах і виконання обчислень зі швидкістю в пам’яті та в будь-якому масштабі. Я не хочу більше копіювати те, що є на їхньому веб-сайті, тому, якщо ви не впевнені щодо Flink, подивіться. Використання DeltaStream У найпростішому вигляді DeltaStream дає вам потужність Flink без необхідності працювати з Flink. Взагалі. Для свого тесту я використав їх для веб-інтерфейсу; зауважте, що вони також мають CLI, який я не тестував. Короткий посібник Реєструючись, ви отримуєте безкоштовну 14-денну пробну версію. Створюється зразок кластера Kafka під назвою «trial_store», який ви можете використовувати замість власних даних для випробування. Демонстрація містить кілька тем для гри. Піктограми в розділі ДІЇ дозволяють видалити тему або переглянути деталі та вміст у темі та в ній. Ось деталі теми для довідки, яку ми використаємо пізніше. переглядів сторінок Гаразд, у нас є кластер Kafka і теми в ньому. А тепер давайте зробимо щось цікаве. Як згадувалося у вступі, найцікавіше, що я можу зробити, це збагачувати та/або фільтрувати дані під час польоту, перш ніж він приземлиться в кінцевому пункті призначення, як-от база даних/склад/озеро. Для цих цілей ми переходимо до Workspace. До цієї частини потрібно було трохи звикнути. База даних і схема в DeltaStream — це лише організаційні папки. Ви можете створити 'n' кількість баз даних, а в базі даних ви можете мати 'n' кількість схем. Схеми міститимуть макет визначень ваших об’єктів DeltaStream, відомих як STREAM, CHANGELOG, MATERIALIZED VIEW і TABLE. Таблиця пов’язана з таблицею бази даних у щось на зразок PostgreSQL, а матеріалізоване подання — це спосіб зберегти дані в наборі результатів, не розміщуючи їх десь конкретно. Я не збираюся нічого робити ні з ким із тих у цьому блозі; Я збираюся зосередитися на потоці та журналі змін. Я створюю тему «Потік у кластері Kafka на наступному знімку екрана. Я думаю про це як про таблицю визначення теми. Ми призначили назви полів і сказали їм, яку тему використовувати та який формат даних. Нам не потрібно повністю виправдовувати кластер trial_store, оскільки він встановлений як стандартний у полі зі списком у верхній частині. Після виконання цієї команди вона з’явиться в TestDB.public. Потім я можу запитати щось на зразок SELECT * FROM PAGEVIEWS, і я почну бачити дані на панелі результатів унизу. переглядів сторінок» Далі я оголошую журнал змін, який підтримується темою та впорядковується за UserID. Журнал змін схожий на потік, але дозволяє інтерпретувати події в темі як події UPSERT. Події потребують первинного ключа; DeltaStream інтерпретує кожну подію як вставку або оновлення для заданого первинного ключа. У цьому випадку журнал змін відображає конкретні деталі користувача, наприклад стать та інтереси. користувача Ось де ми починаємо розважатися. Я створю новий потік, який збагачує потік даними з журналу змін , використовуючи як значення ключа для приєднання. Тепер це дає мені унікальну тему в кластері з даними з двох різних тем. Звідси я можу відфільтрувати його за допомогою щось на кшталт regionid і записати результати цього запиту до кінцевого пункту призначення, такого як база даних, склад чи озеро. Це дозволило мені збагатити та відфільтрувати дані під час польоту перед посадкою, таким чином покращивши затримку та зменшивши витрати на обчислення та зберігання. переглядів сторінок users_log ідентифікатор користувача Резюме Отже, що таке DeltaStream? Це дуже простий спосіб використовувати Apache Flink, нічого про нього не знаючи та не роблячи з ним безпосередньо. З мого прикладу ви бачили, як просто було підключитися до Apache Kafka, а потім прочитати, приєднатися та відфільтрувати дані. Інші наразі підтримувані з’єднання – Kinesis, PostgreSQL, Snowflake і Databricks, і мені сказали, що незабаром будуть доступні ClickHouse і Iceberg. Зрештою, DeltaStream дає вам потужність Apache Flink без необхідності мати справу з Apache Flink, і ви можете зробити це за допомогою SQL замість Java. Якщо ви маєте справу з потоковими даними або плануєте це реалізувати, це, безперечно, дуже розумне та зручне рішення. Ознайомтеся з моїми іншими статтями «Що за біса таке…» за посиланнями нижче: Що таке DuckDB? Що таке Маллой? Що таке PRQL? Що таке GlareDB? Що таке SeaTunnel? Що таке LanceDB? Що таке SDF? Що таке Paimon? Що таке Протон? Що таке PuppyGraph? Що таке GPTScript? Що таке WarpStream? **