Мой первый вопрос здесь!Я построил конвейер данных для ежедневного ETL, который перемещает и трансформирует данные между Aurora, Redshift и Hive.Все работает хорошо, однако я действительно застрял при попытке реализовать Shellcommandprecondition .Цель состоит в том, чтобы проверить общее количество строк в представлении Aurora MySQL.Если представление пустое (0 строк), должен выполняться конвейер данных.Если в представлении есть строки - тогда конвейер немного подождет, а затем в конечном итоге потерпит неудачу после 4 попыток.
Может кто-нибудь помочь мне с кодом для фактической проверки и запроса?Это то, что у меня есть, но не повезло с этим:
#!/bin/bash
count=`mysql -u USER -pPW -h MASTERPUBLIC -p 3306 -D DBNAME -s -N -e "SELECT count(*) from MyView"`
if $count = 0
then exit 0
else exit 1
fi
В определении конвейера это выглядит следующим образом:
{
"retryDelay": "15 Minutes",
"scriptUri": "s3://mybucket/ETLprecondition.bash",
"maximumRetries": "4",
"name": "CheckViewEmpty",
"id": "PreconditionId_pznm2",
"type": "ShellCommandPrecondition"
},
У меня очень мало опыта кодирования, поэтому яможет быть полностью выключен ...