我正在研究数据管道.在其中一个步骤中,来自S3的CSV由RedShift DataNode使用.我的RedShift表有78列.检查:
SELECT COUNT(*) FROM information_schema.columns WHERE table_name = 'my_table';
Run Code Online (Sandbox Code Playgroud)
失败的RedshiftCopyActivity'stl_load_errors'表显示行号1的"Delimiter not found"(1214)错误,列名称空间(这是第二列,varchar(255))在位置0上.消费的CSV行看起来像这样:
0,my.namespace.string,2119652,458031,S,60,2015-05-02,2015-05-02 14:51:02,2015-05-02 14:51:14.0,1,Counter,1,Counter 01,91,Chaymae,0,,,,227817,1,Dine In,5788,2015-05-02 14:51:02,2015-05-02 14:51:27,17.45,0.00,0.00,17.45,,91,Chaymae,0,0.00,12,M,A,-1,13,F,0,0,2,2.50,F,1094055,Coleslaw Md Upt,8,Sonstige,900,Sides,901,Sides,0.00,0.00,0,,,0.0000,0,0,,,0.00,0.0000,0.0000,0,,,0.00,0.0000,,1,Woche Counter,127,Coleslaw Md Upt,2,2.50
Run Code Online (Sandbox Code Playgroud)
在简单替换(","到"\n")后,我有78行,所以看起来数据应该匹配...我坚持这一点.也许有人知道如何找到有关错误的更多信息或查看解决方案?
编辑
查询:
select d.query, substring(d.filename,14,20),
d.line_number as line,
substring(d.value,1,16) as value,
substring(le.err_reason,1,48) as err_reason
from stl_loaderror_detail d, stl_load_errors le
where d.query = le.query
and d.query = pg_last_copy_id();
Run Code Online (Sandbox Code Playgroud)
0行的结果.
csv amazon-s3 amazon-web-services amazon-redshift amazon-data-pipeline
我需要使用amazon Data管道将我的dynamoDB表数据备份到S3.
我的问题是 - 我可以使用单个数据管道将多个dynamoDB表备份到S3,还是我必须为每个表创建一个单独的管道?
此外,由于我的表有一个year_month前缀(ex-2014_3_tableName),我想在月份更改后使用datapipeline SDK更改管道定义中的表名.这会有用吗?有替代/更好的方法吗?
谢谢!!
amazon-s3 amazon-web-services amazon-dynamodb amazon-data-pipeline
我想问一下我正在尝试使用AWS中的数据管道完成的处理任务,但我无法让它工作.
基本上,我有2个数据节点代表2个MySQL数据库,其中数据应该定期提取并放在S3存储桶中.这个复制活动工作正常,每天选择已添加的每一行,今天说 - 1天.
但是,将收集的数据包含为CSV的存储桶应成为EMR活动的输入,EMR活动将处理这些文件并聚合信息.问题是我不知道如何删除已经处理的文件或将其移动到另一个存储桶,因此我不必每天处理所有文件.
为了澄清,我正在寻找一种方法来从管道中移动或删除S3存储桶中已处理的文件.我能这样做吗?有没有其他方法我只能根据命名约定或其他方式处理EMR活动中的某些文件?
最初设置新的 EMR 集群并向集群添加步骤时,它们附加到页面的顺序是自上而下的,这意味着顶部条目首先运行,底部条目最后运行。
当您在正在运行的 EMR 集群中观察这些步骤的进度时,它们是自下而上运行的,这意味着底部首先运行,顶部最后运行。
当我导出用于集群设置的 CLI 命令并通过 DataPipeline 运行该命令时,它包含 --steps 标志,其中包含一系列步骤,第一个运行的步骤是数组中的最后一项。
不用说,我非常困惑如何为我正在执行的 ETL 工作强制执行特定步骤的顺序。
有没有办法明确指定这些步骤的顺序?
我一直在尝试在 S3 存储桶和 Elasitcbeanstalk 环境之间设置数据管道,其中包括 MySQL RDS 实例(全部位于同一 VPC 中)。
我得到失败:
The last packet sent successfully to the server was 0 milliseconds ago.
The driver has not received any packets from the server.
amazonaws.datapipeline.database.ConnectionFactory: Unable to establish
connection to jdbc:mysql://***.us-west-2.rds.amazonaws.com:3306/mydata
Communications link failure
Run Code Online (Sandbox Code Playgroud)
我相信问题是我需要允许数据管道访问我的 MySQL RDS,但不知道如何实现。我将myEc2RdsSecurityGrps
字段设置为 EC2 > 安全组下为 RDS 实例列出的安全组名称,但这没有帮助。
RDS 实例的值IAM DB Authentication Enabled
设置为“是”。
此外,这里的 IAM 角色非常新,但创建的两个角色如下:(Roles > Create Role > Data Pipeline > EC2 Role for Data Pipeline
为 Data Pipeline 启动的 …
我有一个连接到Redshift的python脚本,执行一系列SQL命令,并生成一个新的派生表.
但是对于我的生活,我无法想办法让它每天自动运行.
我已经尝试过AWS Data Pipeline但我的shell脚本不会运行第一个复制语句.我不能让Lambda或Glue工作,因为我公司的IAM政策是限制性的.每天只运行一个python脚本,气流似乎有些过分.
有关服务的任何建议吗?
我在 AWS Data Pipeline 中有一个管道,它运行一个名为 shell.sh 的 shell 脚本:
$ spark-submit transform_json.py
Running command on cluster...
[54.144.10.162] Running command...
[52.206.87.30] Running command...
[54.144.10.162] Command complete.
[52.206.87.30] Command complete.
run_command finished in 0:00:06.
Run Code Online (Sandbox Code Playgroud)
AWS Data Pipeline 控制台显示作业已“完成”,但在 stderr 日志中,我看到作业实际上已中止:
Caused by: com.amazonaws.services.s3.model.AmazonS3Exception: Status Code: 404, AWS Service: Amazon S3, AWS Request ID: xxxxx, AWS Error Code: null, AWS Error Message: Not Found...
Caused by: org.apache.spark.SparkException: Job aborted due to stage failure: Task 0 in stage 5.0 failed 1 times, most recent …
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Amazon-Data-Pipeline工具将数据从Amazon S3-Cloud传输到Amazon-Redshift.
是否可以在传输数据时使用eG和SQL语句更改数据,以便只有SQL-Statement的结果才能成为Redshift的输入?
我只发现了Copy命令:
{
"id": "S3Input",
"type": "S3DataNode",
"schedule": {
"ref": "MySchedule"
},
"filePath": "s3://example-bucket/source/inputfile.csv"
},
Run Code Online (Sandbox Code Playgroud)
资料来源:http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-get-started-copy-data-cli.html
我有一个简单的DataPipeline作业,该作业只有一个EmrActivity,并且只有一个步骤试图从s3存储桶中执行配置单元脚本。
EmrActivity的配置如下所示:
{
"name" : "Extract and Transform",
"id" : "HiveActivity",
"type" : "EmrActivity",
"runsOn" : { "ref" : "EmrCluster" },
"step" : ["command-runner.jar,/usr/share/aws/emr/scripts/hive-script --run-hive-script --args -f s3://[bucket-name-removed]/s1-tracer-hql.q -d INPUT=s3://[bucket-name-removed] -d OUTPUT=s3://[bucket-name-removed]"],
"runsOn" : { "ref": "EmrCluster" }
}
Run Code Online (Sandbox Code Playgroud)
以及运行它的相应EmrCluster资源的配置:
{
"id" : "EmrCluster",
"type" : "EmrCluster",
"name" : "Hive Cluster",
"keyPair" : "[removed]",
"masterInstanceType" : "m3.xlarge",
"coreInstanceType" : "m3.xlarge",
"coreInstanceCount" : "2",
"coreInstanceBidPrice": "0.10",
"releaseLabel": "emr-4.1.0",
"applications": ["hive"],
"enableDebugging" : "true",
"terminateAfter": "45 Minutes"
}
Run Code Online (Sandbox Code Playgroud)
我收到的错误消息始终如下:
java.io.IOException: Cannot run …
Run Code Online (Sandbox Code Playgroud) hadoop hive amazon-web-services amazon-emr amazon-data-pipeline
amazon-s3 ×3
amazon-emr ×2
amazon-rds ×1
apache-spark ×1
csv ×1
emr ×1
hadoop ×1
hive ×1
python ×1