Этой статьёй начинаем рассмотрение инструментов Data Science с открытым исходным кодом (Open Source) в разрезе задач, решаемых наукой о данных.
Управление данными
это процесс сохранения и извлечения данных. Для решения задач управления данными используются:
- реляционные базы данных, такие как MySQLи PostgreSQL;
MySQL — свободная реляционная система управления базами данных (СУБД). Разработку и поддержку MySQL осуществляет корпорация Oracle.
PostgreSQL — свободная объектно-реляционная СУБД.
- базы данных класса NoSQL-систем: MongoDB, Apache CouchDB и Apache Cassandra;
MongoDB — документо-ориентированная СУБД, не требующая описания схемы таблиц. Использует JSON-подобные документы и схему базы данных. Написана на языке C++.
CouchDB — документо-ориентированная СУБД, не требующая описания схемы данных. Написана на языке Erlang.
Apache Cassandra — распределённая СУБД, рассчитанная на создание высоко масштабируемых и надёжных хранилищ огромных массивов данных, представленных в виде хеша — уникального набора символов, который присущ только этому массиву входящей информации. Написана на Java.
- файловые инструменты, такие как файловая система Hadoop или облачная файловая система Ceph;
Hadoop —набор утилит, библиотек и фреймворк свободно распространяемый для разработки и выполнения программ, работающих на кластерах из сотен и тысяч распределённых узлов. Используется для реализации поисковых и контекстных механизмов высоко нагруженных веб-сайтов, например, Facebook. Принцип работы в том, что приложение разделяется на большое количество одинаковых элементарных заданий, выполняемых на узлах кластера. Разработан на Java. Проект фонда Apache Software Foundation.
Ceph — свободная объектная сеть хранения файлов, с файловым и блочным интерфейсом доступа. Может использоваться на системах, состоящих из тысяч узлов. Встроенные механизмы копирования данных обеспечивают высокую живучесть системы. Массив данных автоматически балансируется с учётом изменений количества узлов.
- хранение текстовых данных и создание поискового индекса для быстрого поиска документов используется Elasticsearch.
Elasticsearch — тиражируемая свободная программная поисковая система. Написана на Java, распространяется по лицензии Apache.