$30 off During Our Annual Pro Sale. View Details »

[JBreak-2018] Это кто там твитить про #jbreak?

[JBreak-2018] Это кто там твитить про #jbreak?

Что может быть интересней, чем построение систем конвейерной обработки данных (data pipelines)? Давайте разберём поток твитов прямо здесь, используя модные технологии — Apache Kafka, Kafka Connect и KSQL! Мы же все знаем и любим SQL, правда? Так вот, KSQL — это почти как SQL, только для Kafka. KSQL позволяет создавать сложные системы обработки потоковых данных, без написания Java или Scala (sick!) кода! Но самое интересное начнется тогда, когда в режиме реального времени, с помощью KSQL, мы будем обрабатывать ленту твитов и разберемся, кто больше всех твитит на конференции!

Viktor Gamov

March 04, 2018
Tweet

More Decks by Viktor Gamov

Other Decks in Programming

Transcript

  1. Это кто там
    твитит про #jbreak
    @gamussa

    View Slide

  2. @
    @gamussa @confluentinc
    Solutions Architect
    Developer Advocate
    @gamussa in internetz
    Ну подпишись, плиз…
    Ты кто такой? Давай…

    View Slide

  3. View Slide

  4. Маркетинг и тщеславие ©

    View Slide

  5. @
    @gamussa @confluentinc
    Дисклеймер
    1.Это не введение в кафки
    2.Это не введение stream
    processing
    3.В это зале люди знакомы С
    кафкой

    View Slide

  6. @
    @gamussa @confluentinc

    View Slide

  7. @
    @gamussa @confluentinc

    View Slide

  8. @
    @gamussa @confluentinc
    Дисклеймер
    1.Да, это маркетинг кафки
    2.Да, это маркетинг
    stream processing

    View Slide

  9. @
    @gamussa @confluentinc
    Продюсеры
    Консьюмеры

    View Slide

  10. @
    @gamussa @confluentinc
    Что такое поточная обработка?

    View Slide

  11. Это когда пьешь прям из шланга

    View Slide

  12. Аналогия с UNIX – системами
    Apache Kafka
    Connect API Kafka Streams / KSQL Connect API
    $ cat < in.txt | grep “ksql” | tr a-z A-Z > out.txt

    View Slide

  13. декларативный
    поточных данных
    язык обработки
    KSQL
    это

    View Slide

  14. поточный
    для Apache Kafka
    SQL движок
    KSQL
    это

    View Slide

  15. 15
    для начала,
    Базовые концепции KSQL

    View Slide

  16. 16
    @gamussa @confluentinc
    Базовые абстракции
    БД - таблица
    Hadoop - файл
    Стримы -?

    View Slide

  17. Бревно
    (eng. Log)

    View Slide

  18. View Slide

  19. 19
    @gamussa @confluentinc
    Стримы превращаются в Таблицы

    View Slide

  20. 20
    @gamussa @confluentinc
    Таблицы превращаются в стримы

    View Slide

  21. 21
    @gamussa @confluentinc
    Одно превращается в друое

    View Slide

  22. 22
    @gamussa @confluentinc
    Одно превращается в друое

    View Slide

  23. View Slide

  24. 24
    СТРИМЫ «-» ТАБЛИЦЫ

    View Slide

  25. View Slide

  26. 26

    View Slide

  27. 27
    @gamussa @confluentinc
    Kafka Connect

    View Slide

  28. 28
    Чувак,
    а код-то где?

    View Slide

  29. 29
    Kafka Cluster
    JVM
    KSQL Server
    KSQL CLI
    #1 STAND-ALONE AKA ‘LOCAL MODE’
    Как запускать?

    View Slide

  30. 30
    JVM
    KSQL Server
    KSQL CLI
    JVM
    KSQL Server
    JVM
    KSQL Server
    Kafka Cluster
    #2 CLIENT-SERVER
    Как запускать?

    View Slide

  31. 31
    Kafka Cluster
    JVM
    KSQL Server
    JVM
    KSQL Server
    JVM
    KSQL Server
    #3 AS A STANDALONE APPLICATION
    Как запускать?

    View Slide

  32. Когда лучше не брать KSQL?
    BI инструменты
    (Tableau и проч)
    •Нет индексов
    •Нет JDBC
    • BI инструменты не очень
    хорошо дружат с
    потоковыми
    результатами
    Традиционный SQL
    с конечным
    результатом
    •Ограничение на хранение
    данных в Kafka
    •Нет индексов

    View Slide

  33. Трейдоф
    • subscribe()
    • poll()
    • send()
    • flush()
    Consumer,
    Producer
    • filter()
    • join()
    • aggregate()
    Kafka Streams
    • Select…from…
    • Join…where…
    • Group by..
    KSQL
    Гибкость Простота

    View Slide

  34. KSQL Kafka Streams
    Все знают SQL
    Кодить код не надо!
    Потоковая обработка для
    разработчиков
    SQL выражения Java или Scala код
    Стримы и таблицы KStream и KTable
    Да - KSQL кластер JVM
    Деплоим SQL запросы Деплоим Java как jar, war,
    контейнеры

    View Slide

  35. А дальше что?
    https://github.com/confluentinc/cp-demo
    http://confluent.io/ksql
    https://slackpass.io/confluentcommunity #ksql

    View Slide

  36. @
    @gamussa @confluentinc
    Приходите к
    нам работать!
    https://www.confluent.io/careers/

    View Slide

  37. @
    @gamussa @confluentinc
    Всем
    спасибо!
    Вопросы?
    @gamussa
    [email protected]
    https://www.confluent.io/careers/

    View Slide