Объедините разрозненные источники данных и файлы в единое федеративное представление ваших данных и запросите их с помощью SQL без копирования в хранилище данных.
Mysql-совместимый механизм федеративных запросов к Elasticsearch, Mongo, Google Datastore, Cassandra, Google BigTable, Kubernetes и файловым источникам. Этот механизм запросов содержит слушатель протокола mysql, который переписывает запросы SQL в нативные (elasticsearch, mongo, cassandra, kubernetes-rest-api, bigtable). Он работает, реализуя полный механизм распределённого выполнения реляционной алгебры для выполнения запросов SQL и заполняя недостающие функции из базовых источников. Таким образом, теперь бэкенд-хранилище типа ключ-значение, такое как cassandra, может иметь полную поддержку предложения WHERE, а также агрегатные функции и т. д.
Больше всего похож на prestodb, но написан на Golang и ориентирован на лёгкое добавление пользовательских источников данных, а также REST API-источников.
Эти примеры:
базу данных
бейсбольных данных с сайта http://seanlahman.com/baseball-archive/statistics/.# загрузите файлы в локальный каталог /tmp
mkdir -p /tmp/baseball
cd /tmp/baseball
curl -Ls http://seanlahman.com/files/database/baseballdatabank-2017.1.zip > bball.zip
unzip bball.zip
mv baseball*/core/*.csv .
rm bball.zip
rm -rf baseballdatabank-*
# запустите контейнер Docker локально
docker run -e "LOGGING=debug" --rm -it -p 4000:4000 \
-v /tmp/baseball:/tmp/baseball \
gcr.io/dataux-io/dataux:latest
В другой консоли откройте Mysql:
```sql
# подключитесь к только что запущенному контейнеру Docker
mysql -h 127.0.0.1 -P4000
-- Теперь создайте новый источник
CREATE source baseball WITH {
"type":"cloudstore",
"schema":"baseball",
"settings" : {
"type": "localfs",
"format": "csv",
"path": "baseball/",
"localpath": "/tmp"
}
};
show databases;
use baseball;
show tables;
describe appearances
select count(*) Кастомные трансформации, иногда включающие сложную обработку,
> управляемую бизнес-логикой. Аналогично данные на уровнях кэширования получаются
> из операций чтения основного хранилища данных, но должны быть
> признаны недействительными или обновлены при изменении основных данных.
> Фундаментальное требование, вытекающее из таких архитектур данных, — это необходимость надёжного захвата,
> потока и обработки изменений первичных данных.
Из [Databus](https://github.com/linkedin/databus)
Сборка
--------------------------
Я планирую в ближайшее время зарегистрировать поставщика (`vendor`), чтобы сборка заработала. Однако сейчас я пытаюсь понять, как организовать пакеты, чтобы их можно было использовать как библиотеку, так и демон. (Посмотрите, насколько минимален main.go, чтобы поощрить ваши собственные встроенные функции и источники данных.)
```sh
# для простого docker
# убедитесь, что /vendor содержит правильные версии
dep ensure -update
# сборка бинарного файла
./.build
# сборка docker
docker build -t gcr.io/dataux-io/dataux:v0.15.1 .
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )