Hbase - Как добавить семейство суперколонок?

Я пытаюсь создать приложение Java, которое конвертирует базу данных MYSQL в базу данных NOSQL Hbase.
Пока что он читает данные из mysql и корректно вставляет их в hbase
Но сейчас я пытаюсь обработать отношения между таблицами MYSQL, и я понимаю, что если есть отношения, вы должны добавить одну из таблиц в качестве семейства суперколонок.
суперстолбцов Я посмотрел в документации сайта Apatch, я не мог ничего найти.
Есть идеи?

1 ответ

Решение

Колонна семьи не имеет ничего общего с отношениями. Напротив, вы должны правильно создавать обратные индексы с помощью конструкции ключа строки, которая может позволить эффективно (1) извлекать данные из одной таблицы, зная ключ из другой. Или, чтобы избежать объединения, попытайтесь сохранить все данные в одной строке. Любой инструмент, который предоставляет интерфейс SQL для HBase, порождает задания, которые запускаются и выполняются. HBase работает быстро, если вы выполняете операцию Get или сканируете последовательные строки. Надеюсь, это было полезно.

Обновить

Более подробную информацию о семействах столбцов можно найти в великолепной книге " Архитектура приложений HBase".

Семейство столбцов - это HBase-специфичная концепция, которую вы не найдете в других приложениях RDBMS. Для одного и того же региона разные семейства столбцов будут хранить данные в разных файлах и могут быть настроены по-разному. Данные с одинаковым шаблоном доступа и одинаковым форматом должны быть сгруппированы в одно семейство столбцов. В качестве примера, касающегося формата, если вам нужно хранить много текстовых метаданных для профилей клиентов в дополнение к файлам изображений для каждой фотографии профиля клиента, вы можете сохранить их в двух разных семействах столбцов: одно сжатое (где все текстовая информация будет сохранена), а другая не сжата (где будут храниться файлы изображений). В качестве примера, касающегося шаблона доступа, если некоторая информация в основном читается и почти никогда не записывается, а некоторая в основном пишется и почти никогда не читается, вы можете разделить ее на два разных семейства столбцов. Если разные столбцы, которые вы хотите сохранить, имеют одинаковый формат и схему доступа, перегруппируйте их в одном семействе столбцов. Область памяти кэша записи для данного RegionServer совместно используется всеми семействами столбцов, настроенными для всех регионов, размещенных на данном хосте. Злоупотребление семействами столбцов окажет давление на хранилище метаданных, которое создаст много небольших файлов, что, в свою очередь, приведет к множеству сжатий, которые могут повлиять на производительность. Не существует технических ограничений на количество семейств столбцов, которые можно настроить для таблицы. Однако за последние три года для большинства случаев использования, над которыми мы имели возможность работать, требовалось только одно семейство столбцов. Некоторым требовалось два семейства столбцов, но каждый раз, когда мы видели более двух семейств столбцов, было возможно и рекомендовалось уменьшить число для повышения эффективности. Если ваш дизайн включает в себя более трех семейств столбцов, вы можете глубже взглянуть на него и посмотреть, действительно ли нужны все эти семейства; скорее всего, их можно перегруппировать. Если у вас нет каких-либо ограничений согласованности между двумя семействами столбцов, и данные будут поступать в них в разное время, вместо создания двух семейств столбцов для одной таблицы, вы также можете создать две таблицы, каждая с одним семейством столбцов. Эта стратегия полезна, когда приходит время определять размер регионов. Действительно, хотя было лучше поддерживать два семейства столбцов практически одинакового размера, разделив их по двум разным таблицам, теперь мне проще позволить мне расти независимо.

Также этот ответ может быть полезен.

Другие вопросы по тегам