Amazon web services 如何使用AWS数据管道
我的第一个问题在这里!我已经为日常ETL构建了一个数据管道,它在极光、红移和蜂巢之间移动和转换数据。所有的工作都很好,但是我真的被困在尝试实现一个ShellCommandPremission上。目的是检查位于Aurora MySQL上的视图中的总行数。如果视图为空0行,则应执行数据管道。如果视图中有行,那么管道将等待一段时间,然后在重试4次后最终失败 有人能帮我找出实际检查和查询的代码吗?这就是我目前得到的,但运气不好:Amazon web services 如何使用AWS数据管道,amazon-web-services,amazon-data-pipeline,Amazon Web Services,Amazon Data Pipeline,我的第一个问题在这里!我已经为日常ETL构建了一个数据管道,它在极光、红移和蜂巢之间移动和转换数据。所有的工作都很好,但是我真的被困在尝试实现一个ShellCommandPremission上。目的是检查位于Aurora MySQL上的视图中的总行数。如果视图为空0行,则应执行数据管道。如果视图中有行,那么管道将等待一段时间,然后在重试4次后最终失败 有人能帮我找出实际检查和查询的代码吗?这就是我目前得到的,但运气不好: #!/bin/bash count=`mysql -u USER -pPW
#!/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"
},
我几乎没有编码的经验,所以我可能完全不懂……对,几个小时过去了,我终于解决了这个问题。有几个问题阻碍了我 ec2实例上未安装Mysql客户端。通过添加install命令解决了这个问题 下一个问题是if$count=0行没有按照我有限的经验所预期的那样工作。将其交换为if[$count-等式0]; 最终工作代码为:
#!/bin/bash
if type mysql >/dev/null 2>&1; then
count=`mysql -u USER -pPW -h MASTERPUBLIC -p 3306 -D DBNAME -s -N -e "SELECT count(*) from MyView"`
if [ "$count" -eq "0" ];
then exit 0
else exit 1
fi
else
sudo yum install -y mysql
count=`mysql -u USER -pPW -h MASTERPUBLIC -p 3306 -D DBNAME -s -N -e "SELECT count(*) from MyView"`
if [ "$count" -eq "0" ];
then exit 0
else exit 1
fi
fi