Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.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 在 论坛的顶端_Amazon Web Services_Amazon S3_Amazon Redshift - Fatal编程技术网

Amazon web services 在 论坛的顶端

Amazon web services 在 论坛的顶端,amazon-web-services,amazon-s3,amazon-redshift,Amazon Web Services,Amazon S3,Amazon Redshift,这与我们介绍的自动DISTSTYLE功能有关 最近。对于当前所有的DISTSTYLE自动表,我们加载 将新数据放入临时表,然后检查是否添加了新行 要求将表从全部转换为偶数。 DISTSTYLE{AUTO |偶数| KEY | ALL}默认为AUTO…自动: Amazon Redshift根据以下内容指定最佳分发样式: 表数据。例如,如果指定了自动分布样式, Amazon Redshift最初将所有分发分配给一个小表, 然后在表增长时将表更改为均匀分布 更大的。分布的变化发生在背景中,在少数情况

这与我们介绍的自动DISTSTYLE功能有关 最近。对于当前所有的DISTSTYLE自动表,我们加载 将新数据放入临时表,然后检查是否添加了新行 要求将表从全部转换为偶数。

DISTSTYLE{AUTO |偶数| KEY | ALL}默认为AUTO…自动: Amazon Redshift根据以下内容指定最佳分发样式: 表数据。例如,如果指定了自动分布样式, Amazon Redshift最初将所有分发分配给一个小表, 然后在表增长时将表更改为均匀分布 更大的。分布的变化发生在背景中,在少数情况下 秒

有两种方法可以解决此问题:

  • 在正在加载的表上定义偶数、键或全部的显式DISTSTYLE。我建议此选项主要用于可以 使用键样式。如果未使用“关键点”,则自动显示样式 将是最有效的

  • 从stl_load_errors中检索查询ID,从stl_querytext中检索查询的SQL,然后按名称查找表 来自pg_类、svv_表信息或stv_tbl_perm

  • 在我的小复制中指定
    DISTSTYLE
    确实解决了这个问题,我将对我的生产表应用相同的解决方案,因为它们似乎适合偶数样式(数亿行,没有联接)

    因此,在我的复制案例中,我在表格创建中添加了一行:

    创建不存在的表public.t1
    (
    id整数,
    名字叫瓦查尔(36),
    价格数字(6,2)
    )
    风格匀称;
    
    现在,在
    stl\u load\u errors
    中找到的表标识符与
    stv\u tbl\u perm
    中的预期表相对应


    我还通过查询
    stl_querytext
    表测试了该方法,它在我的复制案例中也很有效,但我发现解析字符串以查找表名既不干净也不有效,因此,在我目前的情况下,我将坚持添加
    DISTSTYLE甚至

    对于相同的表名,这将返回与
    stv\u tbl\u perm
    相同的id。同样,它与
    stl\u load\u errors
    中的id不对应。我在我的红移集群上复制了您的案例。SQL中的第一列将为您提供表名<如果在
    stl\u load\u error
    中找到的
    tbl
    值对应于
    pg\u class
    中的
    oid
    值,则code>stl\u load\u error
    仍将保留SQL查询返回的表名作为第一列。而事实并非如此,对于一些表,在我描述的行为中,这是问题的核心。看来我的复制箱没有给你带来任何问题,它对我的一些桌子也有效,但对其他桌子无效。明白了。对不起,我帮不上忙了。也许你可以试试。不用担心,谢谢你的尝试。:)我将尝试与AWS论坛明天尊重不成文的规则,你应该等待之前,在不同的网站双重张贴帮助!我将在我的问题下链接它。我已经在AWS开发者论坛上发布了我的问题。请注意,如果可以,我们强烈建议使用自动diststyle或键diststyle。在大多数情况下,这些样式将提供最佳性能。当您没有一个好的密钥来分发数据或明显的密钥非常倾斜时,甚至应该将其用作备用密钥。
    select c.relname table_name, s.* 
      from stl_load_errors s, pg_class c 
     where c.oid = s.tbl
       and c.relname = '<your table name>'