paint-brush
Що таке DeltaStream?за@progrockrec
231 показання

Що таке DeltaStream?

за Shawn Gordon5m2024/12/12
Read on Terminal Reader

Надто довго; Читати

DeltaStream — це керована служба, яка дозволяє використовувати Flink без необхідності працювати з Flink.
featured image - Що таке DeltaStream?
Shawn Gordon HackerNoon profile picture


Коли ми востаннє запитували: «Що таке???», ми розглядали платформу потокового передавання даних, сумісну з протоколом __ Apache Kafka __® WarpStream . З потоковими даними вам потрібно щось з ними робити. Висадити його десь на зразок Апачі Айсберг , Сніжинка , або Databricks , або запитайте ці дані під час польоту, щоб збагатити та/або відфільтрувати їх перед посадкою. Є кілька варіантів для останнього, але найбільшим, безсумнівно, є проект з відкритим кодом Apache Flink . Погляд на Флінка привів мене до DeltaStream , яка є нашою сьогоднішньою темою. Що таке DeltaStream? Як це працює з Флінком і як це супутник Кафки?

Що таке Флінк?

Flink спочатку був прийнятий як проект Apache у грудні 2014 року, тому він існує деякий час. Зростання потокової обробки призвело до прискореного інтересу та використання в останні кілька років. Flink — це дещо складна система для встановлення та внутрішнього використання, що вимагає спеціального інженерного таланту. Навіть AWS MSF обслуговування, хоч і простіше, але досить складне. Для використання Java, наприклад, потрібно написати свій Java-запит, створити файл jar, заархівувати його, завантажити в S3, встановити свої дозволи, а потім виконати його.


Я збираюся запозичити з веб-сторінки Apache Flink тут. Apache Flink — це платформа та механізм розподіленої обробки для обчислень із збереженням стану над необмеженими та обмеженими потоками даних. Flink був розроблений для роботи в усіх поширених кластерних середовищах і виконання обчислень зі швидкістю в пам’яті та в будь-якому масштабі. Я не хочу більше копіювати те, що є на їхньому веб-сайті, тому, якщо ви не впевнені щодо Flink, подивіться.

Використання DeltaStream

У найпростішому вигляді DeltaStream дає вам потужність Flink без необхідності працювати з Flink. Взагалі. Для свого тесту я використав їх Короткий посібник для веб-інтерфейсу; зауважте, що вони також мають CLI, який я не тестував.


Реєструючись, ви отримуєте безкоштовну 14-денну пробну версію. Створюється зразок кластера Kafka під назвою «trial_store», який ви можете використовувати замість власних даних для випробування. Демонстрація містить кілька тем для гри. Піктограми в розділі ДІЇ дозволяють видалити тему або переглянути деталі та вміст у темі та в ній.


Переглядач тем DeltaStream


Ось деталі теми переглядів сторінок для довідки, яку ми використаємо пізніше.

Інспектор тем DeltaStream


Гаразд, у нас є кластер Kafka і теми в ньому. А тепер давайте зробимо щось цікаве. Як згадувалося у вступі, найцікавіше, що я можу зробити, це збагачувати та/або фільтрувати дані під час польоту, перш ніж він приземлиться в кінцевому пункті призначення, як-от база даних/склад/озеро. Для цих цілей ми переходимо до Workspace.

Опис робочого середовища DeltaStream


До цієї частини потрібно було трохи звикнути. База даних і схема в DeltaStream — це лише організаційні папки. Ви можете створити 'n' кількість баз даних, а в базі даних ви можете мати 'n' кількість схем. Схеми міститимуть макет визначень ваших об’єктів DeltaStream, відомих як STREAM, CHANGELOG, MATERIALIZED VIEW і TABLE. Таблиця пов’язана з таблицею бази даних у щось на зразок PostgreSQL, а матеріалізоване подання — це спосіб зберегти дані в наборі результатів, не розміщуючи їх десь конкретно. Я не збираюся нічого робити ні з ким із тих у цьому блозі; Я збираюся зосередитися на потоці та журналі змін.


Я створюю тему «Потік переглядів сторінок» у кластері Kafka на наступному знімку екрана. Я думаю про це як про таблицю визначення теми. Ми призначили назви полів і сказали їм, яку тему використовувати та який формат даних. Нам не потрібно повністю виправдовувати кластер trial_store, оскільки він встановлений як стандартний у полі зі списком у верхній частині. Після виконання цієї команди вона з’явиться в TestDB.public. Потім я можу запитати щось на зразок SELECT * FROM PAGEVIEWS, і я почну бачити дані на панелі результатів унизу.


DeltaStream Приклад створення потоку


Далі я оголошую журнал змін, який підтримується темою користувача та впорядковується за UserID. Журнал змін схожий на потік, але дозволяє інтерпретувати події в темі як події UPSERT. Події потребують первинного ключа; DeltaStream інтерпретує кожну подію як вставку або оновлення для заданого первинного ключа. У цьому випадку журнал змін відображає конкретні деталі користувача, наприклад стать та інтереси.

Приклад журналу змін DeltaStream


Ось де ми починаємо розважатися. Я створю новий потік, який збагачує потік переглядів сторінок даними з журналу змін users_log , використовуючи ідентифікатор користувача як значення ключа для приєднання. Тепер це дає мені унікальну тему в кластері з даними з двох різних тем. Звідси я можу відфільтрувати його за допомогою щось на кшталт regionid і записати результати цього запиту до кінцевого пункту призначення, такого як база даних, склад чи озеро. Це дозволило мені збагатити та відфільтрувати дані під час польоту перед посадкою, таким чином покращивши затримку та зменшивши витрати на обчислення та зберігання.

Приклад DeltaStream Join

Резюме

Отже, що таке DeltaStream? Це дуже простий спосіб використовувати Apache Flink, нічого про нього не знаючи та не роблячи з ним безпосередньо. З мого прикладу ви бачили, як просто було підключитися до Apache Kafka, а потім прочитати, приєднатися та відфільтрувати дані. Інші наразі підтримувані з’єднання – Kinesis, PostgreSQL, Snowflake і Databricks, і мені сказали, що незабаром будуть доступні ClickHouse і Iceberg.


Зрештою, DeltaStream дає вам потужність Apache Flink без необхідності мати справу з Apache Flink, і ви можете зробити це за допомогою SQL замість Java. Якщо ви маєте справу з потоковими даними або плануєте це реалізувати, це, безперечно, дуже розумне та зручне рішення.


Ознайомтеся з моїми іншими статтями «Що за біса таке…» за посиланнями нижче:




**

L O A D I N G
. . . comments & more!

About Author

Shawn Gordon HackerNoon profile picture
Shawn Gordon@progrockrec
Software designer/developer, developer advocate, writer, and musician.

ПОВІСИТИ БИРКИ

ЦЯ СТАТТЯ БУЛА ПРЕДСТАВЛЕНА В...