2016-12-03 2 views
0

Я пытаюсь использовать ElasticSearch как базу данных NoSQL в моем проекте Django. Конечная цель - подключить Kibana с другой стороны и визуализировать мои данные там.Использование ElasticSearch в качестве базы данных/хранилища с Django

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

Так я установил:

django-haystack elasticsearch

Я ожидал, что не нужно SQLite (или любой другой базы данных) для хранения и использования ElasticSearch в качестве хранилища NoSQL (в том, что не так?)

Я добавил настройки подключения Haystack к моим настройкам проекта, а затем посмотрел на избавление от «БАЗЫ ДАННЫХ» или заменил его значениями, указывающими на мой ElasticSearch, без успеха :(

Вот что я застрял в умах ч:

settings.py:

DATABASES = { 
    'default': { 
     'ENGINE': 'django.db.backends.sqlite3', 
     'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), 
    } 
} 

HAYSTACK_CONNECTIONS = { 
    'default': { 
     'ENGINE': 'haystack.backends.elasticsearch_backend.ElasticsearchSearchEngine', 
     'URL': 'http://127.0.0.1:9200/', 
     'INDEX_NAME': 'haystack' 
    }, 
} 

На всех ответов, которые я мог бы найти на StackOverflow и фрагменты кода, я бы никогда не увидеть эти БАЗ настройки изменились, поэтому я предполагаю, что люди использовали базу данных для хранения и ElasticSearch только для их поисковой системы/индексации, которая не является тем, что я ищу.

Есть ли способ, которым я могу иметь ElasticSearch в качестве моей базы данных хранения (как и с MongoDB), не нарушая модели и интерфейс Django?

Спасибо за вашу помощь

ответ

2

Это не possbile (официально), чтобы использовать ElasticSearch в качестве базы данных учетных записей Джанго (я предполагаю, что это то, что вы хотите) - в настоящее время поддерживаются бэкэнды:

  • PostgreSQL
  • MySQL
  • sqlite3
  • оракул

выше официальный список, неофициальные (3-й стороны) выглядит следующим образом:

  • SAP SQL
  • IBM DB2
  • Microsoft SQL
  • Firebird
  • ODBC

Во всяком случае, люди вокруг django очень хорошие и трудолюбивые разработчики :) И для этого есть пакет (вы можете дать ему попробовать - никогда не использовал его раньше):

https://github.com/aparo/django-elasticsearch

еще одна вещь - зачем вам Джанго? Кибаны недостаточно? Вы собираетесь внести некоторые изменения в данные об индексе ES в вашем приложении Django? Или это должно быть просто для чтения?

Потому что, если вы хотите использовать ES как хранилище базы данных normal - это не сработает, так как вы будете ждать каждый раз, когда вы обновляете/вставляете данные за 1-2 секунды до тех пор, пока ES не укажет новые данные. Это просто не цель ES.

Надеюсь, что эта помощь, счастливое кодирование.

+0

Итак, мой проект Django содержит два приложения, которые извлекают данные из API GitHub и анализируют, прежде чем помещать их в базу данных. Цель состоит в том, чтобы иметь возможность визуализировать метрики, получить представление об использовании GitHub в большой большой компании :) БД будет использоваться только Ботом, который слушает новые коммиты/проблемы во всех репозиториях – Daniel

+0

Nice :) So в основном, я думаю, что вам не нужен django. Может быть, весь эластичный стек? Возможно, вы сможете настроить logstash для подачи индекса elasticsearch, а затем сделать метрики в кибане? – opalczynski

+1

@ Даниэль, пожалуйста, взгляните: https://www.elastic.co/blog/introducing-logstash-input-http-plugin – opalczynski

Смежные вопросы