Визуализация данных и HBase - PullRequest
0 голосов
/ 17 ноября 2010

Привет,

Я просматривал вопросы на этом сайте и не нашел связанных вопросов.

В настоящее время я создал приложение Flex / PHP / MySQL, в котором я извлекаю выдержку из кластера Hadoop и выгружаю ее в таблицу MySQL. С этим связано несколько проблем, так как мой набор данных продолжает расти.

Я ищу гораздо более надежное решение с открытым исходным кодом, и поэтому начал изучать HBase и способы использования PHP или Java для извлечения моих данных в приложение визуализации.

Кто-нибудь из вас создавал какие-либо платформы визуализации поверх Hadoop или HBase?

Спасибо!

Ответы [ 2 ]

4 голосов
/ 01 декабря 2010

Я не совсем уверен, имеете ли вы в виду получение информации из HBase или нет.Я предполагаю, что вы хотите создать агрегирующее приложение, которое выполняет «суммирование», «подсчет», «avg» и т. Д., Например, анализ данных, например, операции с данными, хранящимися в HBase, для генерации графиков / визуализаций.

В этом случаеконкретный ответ будет зависеть от характера данных, которые вы пытаетесь проанализировать.Одним из таких приложений будет http://opentsdb.net из StumpleUpon.

Его довольно легко записывать сумматоры данных на HBase, как это можно сделать с помощью MapReduce.http://hbase.apache.org/docs/r0.89.20100726/apidocs/org/apache/hadoop/hbase/mapred/package-summary.html

В нашей организации мы используем Solr для выполнения запросов и функций агрегирования финансовых отчетов, а затем храним их в CMS для рендеринга.Таким образом, мы можем настроить рендеринг для того же набора данных.Если вы заинтересованы в сохранении его в CMS на HBase + Solr, вам будет интересно следующее:

И если вы хотите получить доступ к своим данным так же, как и к постоянному хранилищу, и заинтересованы в ORM, вы можете сделать следующее, а в противном случае проигнорируйте его.Следующее скопировано из - Java ORM для Hbase Другой мой ответ.

Сила HBase, как я вижу, заключается в том, чтобы динамические столбцы содержались в семействах статических столбцов.Исходя из моего опыта разработки приложений на HBase, я обнаружил, что определить квалификаторы и значения ячеек не так просто, как в SQL.

Например, в книге столько авторов, сколько зависит от ваших шаблонов доступа, авторских правок, приложений.Реализация кэша слоя, вы можете выбрать сохранение всего автора в таблице книг (то есть автор находится в 2 таблицах, таблице авторов и таблице книг) или только в идентификаторе автора.Более того, коллекция авторов может быть сохранена в одной ячейке в виде XML / JSON или отдельных ячеек для отдельных авторов.

С этим пониманием я пришел к выводу, что написание полноценного ORM, такого как Hibernate, будет не только очень трудным, можетна самом деле не быть убедительным.Поэтому я выбрал другой подход, гораздо более похожий на iBatis и Hibernate.

Позвольте мнеПопробуй объяснить, как это работает.Для этого я буду использовать исходные коды от здесь и здесь .

  1. Первой и главной задачей является реализация интерфейса ObjectRowConverter, в данном случае SessionDataObjectConverter.Абстрактный класс содержит основные передовые практики, которые обсуждались и изучались сообществом HBase.Расширение в основном дает вам 100% контроль над тем, как преобразовать ваш объект в строку HBase и наоборот.Для этого единственного ограничения API является то, что ваши доменные объекты должны реализовывать интерфейс PersistentDTO, который используется внутри для создания Put, Delete, do byte [] для идентификации объекта и наоборот.
  2. Следующая задача - подключитьзависимости как сделано в HBaseImplModule.Пожалуйста, дайте мне знать, если вы заинтересованы, я сделаю инъекции зависимостей.

И это все.Как они используются, доступны здесь .Он в основном использует CommonReadDao, CommonWriteDao для чтения и записи данных в HBase и из него.Общий дао чтения реализует многопоточное преобразование строк в объекты по запросам, многопоточное получение по идентификаторам, получение по идентификатору и имеет свои критерии Hibernate, такие как API для запроса к HBase через сканирование (функции агрегации недоступны).Common dao реализует общий код, связанный с записью, с некоторыми дополнительными возможностями, такими как оптимистическая / пессимистическая блокировка, сущность переопределения / проверки слияния (не) -существование при сохранении, обновлении, удалении и т. Д.

Этот ORM был разработандля нашей внутренней цели, и я был по уши, и, следовательно, пока не могу сделать некоторые документы.Но если вам интересно, дайте мне знать, и я найду время для документации с приоритетом.

0 голосов
/ 31 мая 2019

Проверьте обнаружение метатрона: https://github.com/metatron-app/metatron-discovery. Они используют Druid и Hive для своего OLAP и хранилища данных. Это открытый исходный код, так что вы можете проверить их код. Это может быть полезно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...