1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-dataux

Клонировать/Скачать
README.md 7.9 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 29.11.2024 02:47 4430b0a

Sql Query Proxy to Elasticsearch, Mongo, Kubernetes, BigTable и др.

Объедините разрозненные источники данных и файлы в единое федеративное представление ваших данных и запросите их с помощью 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-источников.

Источники хранения

Функции

  • Распределённое выполнение — выполнение запросов на нескольких серверах.
  • Источники с возможностью взлома — очень легко добавить новый источник для ваших пользовательских данных, файлов, JSON, CSV, хранилищ.
  • Функции с возможностью взлома — добавьте пользовательские функции Go для расширения языка SQL.
  • Соединения — получите функциональность соединения между разнородными источниками.
  • Интерфейсы — в настоящее время поддерживается только протокол MySql, но планируется RethinkDB (для API реального времени), и они подключаемы.
  • Бэкенды — в настоящее время реализованы Elasticsearch, Google-Datastore, Mongo, Cassandra, BigTable, Kubernetes. CSV, JSON-файлы и пользовательские форматы (protobuf) находятся в разработке.

Статус

  • Не готов к производству. В настоящее время поддерживает несколько некритичных вариантов использования (специальные запросы, инструмент поддержки) в производстве.

Попробуйте

Эти примеры:

  1. Мы собираемся создать CSV-базу данных бейсбольных данных с сайта http://seanlahman.com/baseball-archive/statistics/.
  2. Подключитесь к общедоступным наборам данных Google BigQuery (вам понадобится проект, но бесплатная квота, вероятно, сохранит его бесплатным).
# загрузите файлы в локальный каталог /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 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/mirrors-dataux.git
git@api.gitlife.ru:oschina-mirror/mirrors-dataux.git
oschina-mirror
mirrors-dataux
mirrors-dataux
master