Как создать таблицу Hbase с помощью Regex - PullRequest
0 голосов
/ 14 апреля 2020

Я надеюсь, что вы можете помочь мне с "простым" регулярным выражением оболочки.

Например, у меня есть такой текстовый файл:

Mytable1
cf1
cf2
Mytable2
cf1
Mytable3
cf1
cf2
cf3

Я пытаюсь выполнить все oop скрипт, который будет выглядеть так:

echo -e "create 'Mytable1','cf1','cf2'" | hbase shell -n
echo -e "create 'Mytable2','cf2'" | hbase shell -n
echo -e "create 'Mytable3','cf1','cf2','cf3'" | hbase shell -n

Можете ли вы помочь мне понять, как это сделать?

Большое вам спасибо

RHEL7.4

Alex

1 Ответ

0 голосов
/ 14 апреля 2020

Спасибо за ваш ответ.

Я пытаюсь перечислить все таблицы из Hbase, а затем описать каждую таблицу, чтобы отсортировать столбец семейства.

Моя цель состоит в том, чтобы воссоздать всю таблицу в другом кластере oop.

Может быть, есть более простой способ выполнить то, что я хочу сделать ...:)

мои шаги:

Список всех таблиц: каждая строка представляет собой таблицу.

echo 'list' | hbase shell | tail -1 | sed -e 's/\,/\n/g' -e 's/\ "//g' -e 's/\["//g' -e 's/\"]//g' -e 's/"//g' | grep -vE "PHX|SYSTEM" > list

Затем для каждой таблицы я сортирую столбец семейства: он дает мне файл схемы, о котором я упоминал выше.

while read line; do echo "family columns of $line are :" && echo "describe '$line'" | hbase shell -n | awk '{print $3}' | grep -vE "^$|DESCRIPTION" | sed 1d | sed '$d' | sed -e "s/'//g" -e "s/,//g" ;done < list > family_list

последний шаг - создание таблицы.

С уважением,

Алекс

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