如何在AWS DataPipeline SQLActivity中使用脚本参数?

时间:2017-09-06 17:49:49

标签: postgresql amazon-web-services amazon-data-pipeline

我正在尝试通过Data Pipeline在Redshift上执行卸载命令。该脚本类似于:

return (
            <MapView
                style={ styles.map }
                onRegionChangeComplete={onRegionChangeComplete}
                region={this.state.mapRegion}
                annotations={this.state.annotations}
                zoomEnabled={true}
                showsUserLocation={true}               
            >
                {this.state.markers.map(marker => (
                    <MapView.Marker
                        coordinate={marker.coordinates}
                        title={marker.title}
                    />
                ))}
              </MapView>

        );

管道看起来像这样:

unload ($$ SELECT *, count(*) FROM (SELECT APP_ID, CAST(record_date AS DATE) WHERE len(APP_ID)>0 AND CAST(record_date as DATE)=$1) GROUP BY APP_ID $$) to 's3://test/unload/' iam_role 'arn:aws:iam::xxxxxxxxxxx:role/Test' delimiter ',' addquotes;

但是,我一直收到错误:列索引超出范围:1,列数:0。

我无法让它发挥作用。我尝试过使用{ "objects": [ { "role": "DataPipelineDefaultRole", "subject": "SuccessNotification", "name": "SNS", "id": "ActionId_xxxxx”, "message": "SUCCESS: #{format(minusDays(node.@scheduledStartTime,1),'MM-dd-YYYY')}", "type": "SnsAlarm", "topicArn": "arn:aws:sns:us-west-2:xxxxxxxxxx:notification" }, { "connectionString": “connection-url”, "password": “password”, "name": “Test”, "id": "DatabaseId_xxxxx”, "type": "RedshiftDatabase", "username": “username” }, { "subnetId": "subnet-xxxxxx”, "resourceRole": "DataPipelineDefaultResourceRole", "role": "DataPipelineDefaultRole", "name": "EC2", "id": "ResourceId_xxxxx”, "type": "Ec2Resource" }, { "failureAndRerunMode": "CASCADE", "resourceRole": "DataPipelineDefaultResourceRole", "role": "DataPipelineDefaultRole", "pipelineLogUri": "s3://test/logs/", "scheduleType": "ONDEMAND", "name": "Default", "id": "Default" }, { "database": { "ref": "DatabaseId_xxxxxx” }, "scriptUri": "s3://test/script.sql", "name": "SqlActivity", "scriptArgument": "#{format(minusDays(node.@scheduledStartTime,1),"MM-dd-YYYY”)}”, "id": "SqlActivityId_xxxxx”, "runsOn": { "ref": "ResourceId_xxxx” }, "type": "SqlActivity", "onSuccess": { "ref": "ActionId_xxxxx” } } ], "parameters": [] } ?,我甚至尝试将表达式$1直接放在脚本中。它们都不起作用。

我查看了Amazon Data Pipline: How to use a script argument in a SqlActivity?的答案,但没有一个是有帮助的。

有没有人知道如何在AWS Data Pipeline的SQL Script中使用脚本参数?

0 个答案:

没有答案