SingleStoreDB конектор для Apache Beam

Автор(и)

DOI:

https://doi.org/10.24144/2616-7700.2024.44(1).66-82

Ключові слова:

база даних, конектор, розподілені системи, ETL, Apache Beam, SingleStore, OLAP, OLTP

Анотація

В статті досліджено процес розробки SingleStoreDB конектора для Apache Beam та складнощі, які виникли під час цього процесу. Для реалізації конектора використано мову програмування Java. Для компіляції та менеджменту залежностей проекту використано систему автоматичного збирання Gradle. Для забезпечення неперервного тестування конектора використано інструмент для неперервної інтеграції Jenkins. Задля комунікації із базою даних використано бібліотеку SingleStore JDBC Driver. Об'єктом дослідження обрано процес обміну даних між Apache Beam та SingleStoreDB. Предметом дослідження є конектор, що дозволяє ефективно обмінюватись даними між Apache Beam та SingleStoreDB. Для розробки конектора проаналізовані вимоги до нього. Продемонстровано, що основними вимогами є можливість паралельного запису даних, можливість паралельного читання даних за допомогою розподілених властивостей SingleStoreDB, можливість виконати запити читання даних непаралельно для специфічних запитів. Досліджено можливість використання різних способів паралельного читання та запису даних. Згідно досліджень найоптимальнішим способом паралельного читання є розбиття запиту на декілька незалежних використовуючи певну колонку. Найоптимальнішим способом запису даних є використання запиту LOAD DATA. На відміну від INSERT запиту надсилає дані як окремий потік байтів, а не як частину запиту. За рахунок цього, дані можна відправляти набагато більшими групами. Протестовано конектор та налаштовано систему неперервної інтеграції. Розроблено документацію та інтегровано конектор в GitHub репозиторій Apache Beam. Розроблений конектор може бути використаний для ETL процесів під час яких Apache Beam відповідає за обробку та збереження даних в SingleStoreDB, що надає зручніший спосіб конфігурації та кращу продуктивність в порівнянні із JdbcIO конектором. Результати досліджень можуть бути використані для створення конекторів між іншими технологіями та СКБД SingleStoreDB.

Біографії авторів

М. І. Глебена, ДВНЗ «Ужгородський нацiональний унiверситет»

Завiдувач кафедри cистемного аналiзу та теорiї оптимiзацiї. Кандидат фiзико-математичних наук

А. В. Макарович, ДВНЗ «Ужгородський національний університет»

Здобувач другого (магiстерського) рiвня вищої освiти, ОНП "Системи i методи прийняття рiшень"

Посилання

  1. Adalbert, M. SingleStore Apache Beam IO Connector Design Doc. Retrieved from: https://docs.google.com/document/d/1WUhkoZ93SaGXyOz_UtX0jXzIRl194hCId_IdmEV9jw/edit#heading=h.wskna8eurvjv
  2. Akmal, Ch. Quicktip: Using Apache Beam with SingleStoreDB. Retrieved from: https://medium.com/@VeryFatBoy/quick-tip-using-apache-beam-with-singlestoredb-452d4256a7ca
  3. Apache Beam Overview. Retrieved from: https://beam.apache.org/get-started/beamoverview/
  4. Automate your workflow from idea to production. Retrieved from: https://github.com/features/actions
  5. Basics of the Beam model. Retrieved from: https://beam.apache.org/documentation/basics/
  6. Cluster Components. Retrieved from: https://docs.singlestore.com/db/v8.0/en/introduction/distributed-architecture/cluster-components.html#cluster-components
  7. Contribution Testing Guide. Retrieved from: https://cwiki.apache.org/confluence/display/BEAM/Contribution+Testing+Guide
  8. Developing I/O connectors for Java. Retrieved from: https://beam.apache.org/documentation/io/developing-io-java/
  9. [Template] Apache Beam Design Doc. Retrieved from: https://docs.google.com/document/d/1kVePqjt2daZd0bQHGUwghlcLbhvrny7VpflAzk9sjUg/
  10. edit?usp=sharing
  11. I/O Standards. Retrieved from: https://beam.apache.org/documentation/io/io-standards/
  12. Interaction of Cluster Components. Retrieved from: https://docs.singlestore.com/db/v8.0/en/introduction/distributed-architecture/interaction-of-cluster-components.html#interaction-ofcluster-components
  13. Jeffrey Deanand Sanjay Ghemawat. MapReduce: Simplified Data Processingon Large Clusters. To appear in OSDI 2004. Retrieved from: https://static.googleusercontent.com/media/research.google.com/uk//archive/mapreduceosdi04.pdf
  14. Jenkins. Retrieved from: https://www.jenkins.io/
  15. JosephVictor. Engineering. The future is bottomless. Retrieved from: https://www.singlestore.com/blog/the-future-is-bottomless/
  16. Overview: Developing a new I/O connector. Retrieved from: https://beam.apache.org/documentation/io/developing-io-overview/
  17. I/O Connectors. Retrieved from: https://beam.apache.org/documentation/io/connectors/
  18. SingleStore Documentation. Retrieved from: https://docs.singlestore.com/managedservice/en/reference/sql-reference/data-manipulation-language-dml/insert.html
  19. SingleStore LOAD DATA. Retrieved from: https://docs.singlestore.com/managedservice/en/reference/sql-reference/data-manipulation-language-dml/load-data.html
  20. SingleStore Read Query Results in Parallel. Retrieved from: https://docs.singlestore.com/managed-service/en/query-data/read-query-results-inparallel.html
  21. SingleStore. Retrieved from: https://download.oracle.com/otn-pub/jcp/jdbc-4_2-mrel2-spec/jdbc4.2-fr-spec.pdf?AuthParam=1683632646_268549c0a0b191629570c83d4e48b211
  22. SingleStore. Load Data from Apache Beam. Retrieved from: https://docs.singlestore.com/managed-service/en/load-data/load-data-from-a-datasource/load-data-from-apache-beam.html
  23. THE APACHE SOFTWARE FOUNDATION ANNOUNCES APACHE® BEAM TM AS A TOP-LEVEL PROJECT. Retrieved from: https://news.apache.org/foundation/entry/theapache-software-foundation-announces
  24. The SingleStore JDBC Driver. Retrieved from: https://docs.singlestore.com/managedservice/en/developer-resources/connect-with-application-development-tools/connect-withjava-jdbc/the-singlestore-jdbc-driver.html#connection-string-parameters
  25. Universal Storage. Retrieved from: https://docs.singlestore.com/db/v8.0/en/create-adatabase/columnstore/universal-storage.html
  26. Why Apache Beam is the next big thing in big data processing. Retrieved from: https://medium.com/@shafiqa_iqbal/why-apache-beam-is-the-next-big-thing-in-bigdata-processing-808abacf52f1
  27. SingleStoreDB I/O. Retrieved from: https://beam.apache.org/documentation/io/builtin/singlestore/

##submission.downloads##

Опубліковано

2024-05-28

Як цитувати

Глебена, М. І., & Макарович, А. В. (2024). SingleStoreDB конектор для Apache Beam. Науковий вісник Ужгородського університету. Серія «Математика і інформатика», 44(1), 66–82. https://doi.org/10.24144/2616-7700.2024.44(1).66-82

Номер

Розділ

Iнформатика, комп’ютернi науки та прикладна математика