Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 如何使用AWS数据管道_Amazon Web Services_Amazon Data Pipeline - Fatal编程技术网

Amazon web services 如何使用AWS数据管道

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

我的第一个问题在这里!我已经为日常ETL构建了一个数据管道,它在极光、红移和蜂巢之间移动和转换数据。所有的工作都很好,但是我真的被困在尝试实现一个ShellCommandPremission上。目的是检查位于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"
    },

我几乎没有编码的经验,所以我可能完全不懂……

对,几个小时过去了,我终于解决了这个问题。有几个问题阻碍了我

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