Чего не хватает в JuliaDB, чтобы использовать его в качестве рабочей базы данных в серверной части веб-сайта?

#julia #julia-dataframe #juliadb

#джулия #julia-dataframe #juliadb

Вопрос:

У меня есть некоторые трудности с пониманием плюсов и минусов использования JuliaDB в качестве основной серверной базы данных для производственного веб-сайта.

https://juliadb.org/

Мой вариант использования — платформа для совместной работы с данными. Клиент запрашивает 1 миллион уникальных посетителей и 100 000 записей в день. Хорошо… Я бы так хотел.

Реализация базы данных SQL означает, что мне нужно «перевести» фреймы данных data science, используемые для исчисления, в SQL и обратно.

С другой стороны, JuliaDB — это комплексное решение.

Что касается различных критериев для производственной базы данных веб-сайта:

Julia изначально поддерживает параллелизм:

Julia поддерживает три основные категории функций для параллельного и параллельного программирования:

Асинхронные «задачи», или сопрограммы многопоточных распределенных вычислений Задачи Julia позволяют приостанавливать и возобновлять вычисления для ввода-вывода, обработки событий, процессов производитель-потребитель и подобных шаблонов. Задачи могут синхронизироваться с помощью таких операций, как ожидание и выборка, и обмениваться данными по каналам.

Функциональность многопоточности основывается на задачах, позволяя им выполняться одновременно более чем в одном потоке или ядре процессора, совместно используя память.

Наконец, распределенные вычисления запускают несколько процессов с отдельными пространствами памяти, потенциально на разных машинах. Эта функциональность обеспечивается распределенной стандартной библиотекой, а также внешними пакетами, такими как MPI.jl и DistributedArrays.jl.

С другой стороны, документ JuliaDB сообщает, что они поддерживают параллельные вычисления, но не дает подробностей.

Может ли JuliaDB обрабатывать параллельные соединения и асинхронную работу, что делает его эффективным для большого количества пользователей, использующих его параллельно?

Ответ №1:

Из вашего вопроса видно, что вам нужен механизм массового параллельного приема данных. У вас программная архитектура, которая позволяет одновременно собирать данные для огромного количества пользователей. Возможно, вам следует взглянуть на одну из баз данных NoSQL, которые обеспечивают возможность горизонтального масштабирования, хорошим примером может быть MongoDB (или, возможно, облачный эквивалент, такой как DynamoDB).

Если объем ваших данных и параллелизм еще выше, вам следует рассмотреть потоковое решение, такое как Apache Kafka.

С другой стороны, JuliaDB полностью находится на другом месте рабочего процесса обработки. Как только ваши массивные данные собираются, они попадают в аналитический процесс. В последние годы самым популярным инструментом был стек Hadoop с Apache Spark, используемый для обработки.

JuliaDB привносит новую парадигму на этапе анализа рабочего процесса с данными. С помощью этого инструмента вы можете массово распараллеливать обработку огромных данных, и, следовательно, вам следует рассматривать JuliaDB как хорошую альтернативу Spark.