我在 Amazon s3 中有大约 500GB 的压缩数据。我想将此数据加载到 Amazon Redshift。为此,我在 AWS Athena 中创建了一个内部表,并尝试在 Amazon Redshift 的内部表中加载数据。
将这些大数据加载到 Amazon Redshift 需要一个多小时。问题是当我触发查询以加载数据时,它会在 1 小时后中止。我尝试了 2-3 次,但 1 小时后流产。我正在使用Aginity Tool来触发查询。此外,在 Aginity 工具中,它显示查询当前正在运行并且加载程序正在旋转。
更多详情: Redshift 集群有 12 个节点,每个节点有 2TB 的空间,我使用了 1.7 TB 的空间。 S3 文件的大小不同。其中之一是250GB。其中一些在 MB 中。
我正在使用命令
创建表table_name,从athena_schema.表名称中选择 *
它正好在 1 小时后停止。
注意:我已将 Aginity 中的当前查询超时设置为 90000 秒。
我知道这是一个古老的线程,但对于因为同一问题来到这里的人来说,我已经意识到,至少就我而言,问题是 Aginity 客户端; 因此,它与 Redshift 或其工作负载管理器无关,而仅与名为 Aginity 的第三方客户端有关。总之,使用不同的客户端(如 SQL Workbench)并从那里运行 COPY 命令。
希望这有帮助! 卡洛斯·
有关我的环境的更多信息:
红移:
Cluster TypeThe cluster's type: Multi Node
Cluster: ds2.xlarge
NodesThe cluster's type: 4
Cluster Version: 1.0.4852
客户端环境:
Aginity Workbench for Redshift
Version 4.9.1.2686 (build 05/11/17)
Microsoft Windows NT 6.2.9200.0 (64-bit)
网络:
Connected to OpenVPN, via SSH Port tunneling.
The connection is not being dropped. This issue is only affecting the COPY command. The connection remains active.
命令:
copy tbl_XXXXXXX
from 's3://***************'
iam_role 'arn:aws:iam::***************:role/***************';
S3结构:
120 files of 6.2 GB each. 20 files of 874MB.
输出:
ERROR: 57014: Query (22381) cancelled on user's request
统计学:
Start: ***************
End: ***************
Duration: 3,600.2420863
我不确定以下答案是否会解决您在 1 小时超时的确切问题。 但是,根据我的经验,在Redshift的情况下,通过复制命令加载数据是最好和快速的方法。所以我觉得在您的情况下根本不应该发生超时问题。
RedShift 中的复制命令可以从 S3 或通过 SSH 加载数据。
例如 简单复制
copy sales from 'emr://j-SAMPLE2B500FC/myoutput/part-*' iam_role
'arn:aws:iam::0123456789012:role/MyRedshiftRole'
delimiter 't' lzop;
例如,使用梅尼菲斯特
copy customer
from 's3://mybucket/cust.manifest'
iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole'
manifest;
PS:即使您使用Menifest执行此操作并将数据分成多个文件,随着RedShift并行加载数据,速度也会更快。