читать данные за каждые 100 дней, пока мы не получим полные данные в улье - PullRequest
0 голосов
/ 08 октября 2018

Я копирую данные из prod для тестирования в целях тестирования в улье, используя скрипт bash.когда я делаю это для таблицы, я получил проблему с кучей памяти.Чтобы решить эту проблему, я планирую прочитать данные из rundate (день, когда я выполняю скрипт) до дня, когда данные будут доступны каждые 100 дней, чтобы избежать этой проблемы.не могли бы вы сообщить мне, как добиться этого с помощью bash, и, пожалуйста, дайте мне знать, если есть какой-либо другой подход, кроме настройки памяти

1 Ответ

0 голосов
/ 17 октября 2018

В основном вам нужно запустить скрипт HiveQL (.hql) из оболочки.

Создать скрипт .hql с вашим запросом на получение данных только за последние 100 дней.

example.hql

select * from my_database.my_table 
where insert_date BETWEEN '2018-07-01' AND '2018-10-01';

Теперь вы можете вызвать этот скрипт из оболочки куста: hive -f example.hql

Или вы можете создать скрипт оболочки и выполнить в нем свой запрос.run.sh

    #!/bin/bash
    hive -e "select * from my_database.my_table 
    where insert_date BETWEEN '2018-07-01' AND '2018-10-01'" >select.txt

    result=`echo $?`
    if [ $result -ne 0 ]; then
    echo "Error!!!!"
    echo "Hive error number is: $result"
    exit 1
    else
    echo "no error, do your stuffs"
    fi

Затем выполните сценарий оболочки с помощью sh run.sh.

...