标签: amazon-redshift-spectrum

在将数据加载到Amazon Redshift Spectrum时删除双引号

我想将数据加载到amazon redshift外部表.数据采用CSV格式并带引号.我们是否有类似REMOVEQUOTES的东西,我们在redshift外部表的复制命令中有.还有什么是在外部表中加载固定长度数据的不同选项.

amazon-web-services amazon-redshift amazon-redshift-spectrum

3
推荐指数
1
解决办法
2928
查看次数

redshift Unload操作导致冗余数据

我们使用 UNLOAD 命令对基于 s3 的外部表运行一些转换,并将数据以 PARQUET 格式发布到不同的 s3 存储桶中。

我在卸载操作中使用 ALLOWOVERWRITE 选项来替换文件(如果它们已存在)。这在大多数情况下都可以正常工作,但有时会为相同的数据插入重复的文件,这会导致外部表显示重复的数字。

例如,如果分区中的 parquet 是包含完整数据的 0000_part_00.parquet。在下一次运行中,卸载预计会覆盖此文件,但会插入新文件 0000_part_01.parquet,这会使总输出加倍。

如果我只是清理整个分区并再次重新运行,这将不会重复。这种不一致使我们的系统不可靠。

unload (<simple select statement>)
to 's3://<s3 bucket>/<prefix>/'
iam_role '<iam-role>' allowoverwrite
PARQUET
PARTITION BY (partition_col1, partition_col2);
Run Code Online (Sandbox Code Playgroud)

谢谢。

amazon-s3 amazon-redshift amazon-redshift-spectrum

3
推荐指数
1
解决办法
5443
查看次数

何时为您的 Redshift 数据仓库使用 Redshift Spectrum

我对 Redshift 服务还很陌生,并且对何时使用或将哪些数据放入 Spectrum 感到非常困惑。

假设我在 Redshift 上有星型模式数据仓库,我应该将事实表或暗表放入 Spectrum(来自 s3 的外部表)中以进行存储优化吗?或者通常数据仓库具有不同的层,例如:登陆、暂存或数据仓库。我们是否应该将其他层的数据放入 Spectrum,只将星型模式数据放入 Redshift。

由于 S3 中的数据仅被附加,我们是否需要安装 apachi hudi 或 delta Lake 才能与 Redshift Spectrum 配合使用?

我找到了一篇 aws 文章:https://aws.amazon.com/blogs/big-data/10-best-practices-for-amazon-redshift-spectrum/,如下所述,但仍然不清楚。

一些好的用例如下:

  • 数据量大但访问频率较低的数据 大量扫描和
  • 聚合密集型查询 可以使用的选择性查询
  • 分区剪枝和谓词下推,因此输出相当小

任何人都可以提供现实世界的例子来解释吗?谢谢

spectrum amazon-web-services amazon-redshift amazon-redshift-spectrum delta-lake

3
推荐指数
1
解决办法
1851
查看次数

对我的 Amazon Spectrum 表进行分区时遇到问题

特别是收到此错误:

错误:调用外部目录 API 时出错:分区键的数量与分区值的数量不匹配

amazon-redshift-spectrum

2
推荐指数
1
解决办法
2100
查看次数

Redshift 上的 SQL 查询获取第一个和最后一个值

我有一个这样的数据集。

在此输入图像描述

我需要编写一个查询,给出以下输出 在此输入图像描述

对于每个 SessionID 和 VisitID,它应该根据 date_time 列进行排序,并为我提供第一个类别和最后一个类别。

我使用了以下代码

 rank() OVER( PARTITION BY SessionID
            , VisitID

        ORDER by
            date_Time DESC ) as click_rank_last
where click_rank_last = 1
Run Code Online (Sandbox Code Playgroud)

获取最后一个类别。但我需要的是在单个查询中获取第一个和最后一个,对数据库的影响最小,因为数据很大并且查询成本很高。

需要最优化的查询!

sql amazon-redshift amazon-redshift-spectrum

2
推荐指数
1
解决办法
6223
查看次数

Amazon EMR 与 Amazon Redshift

对于大多数用例,可以使用 Amazon EMR 对流数据或有界数据(例如来自 Amazon S3)进行 Spark 转换,然后可以使用转换后的数据再次将数据写入 S3。

还可以在 Amazon Redshift 中使用来自 S3 的不同数据加载到不同的 Redshift 表中,然后将不同的 Redshift 表中的数据加载到最终表中来实现转换。(现在有了 Redshift 频谱,我们也可以直接从 S3 中选择和转换数据。)

话虽如此,我看到转换可以在 EMR 和 Redshift 中完成,Redshift 加载和转换可以用更少的开发时间完成。

那么,EMR 是否应该用于主要涉及流/无界数据的用例?EMR 更可取的其他用例是什么(我知道 Spark 也提供其他核心、sql、ml 库),但只是为了实现转换(涉及连接/减速器),我没有看到除此之外的其他用例在 EMR 中进行流式传输,此时也可以在 Redshift 中实现转换。

请提供何时使用 EMR 转换与 Redshift 转换的用例。

amazon-web-services amazon-emr amazon-redshift amazon-redshift-spectrum

2
推荐指数
1
解决办法
2556
查看次数

Amazon Redshift 是否有自己的存储后端

我是 Redshift 的新手,对 Redshift 的运作方式有一些说明:

Amazon Redshift 是否有自己的后端存储平台,还是依赖 S3 将数据存储为对象,而 Redshift 仅用于查询、处理和转换,并具有临时存储以从 S3 中获取特定切片并进行处理?

从某种意义上说,redshift 是否拥有自己的后端云空间,如 oracle 或 Microsoft SQL 拥有自己的物理服务器来存储数据?

因为,如果我由于容量增加而从传统的 RDBMS 系统迁移到 Redshift,如果我单独选择 Redshift 会或者我应该选择 Redshift 和 S3 的组合。

这个问题似乎很基本,但我无法在 Amazon 网站或任何与 Redshift 相关的博客中找到答案。

amazon-web-services amazon-redshift amazon-redshift-spectrum

2
推荐指数
1
解决办法
548
查看次数

如何在redshift中生成12位唯一数字?

我有一个表,即3列email_idridfinal_id

rid和的规则final_id

  1. 如果email_id具有对应的rid,则rid用作final_id
  2. 如果email_id没有对应的数字rid(即为ridnull),请生成一个唯一的12位数字并将其插入final_id字段。

如何在redshift中生成12位唯一数字?

amazon-web-services amazon-redshift amazon-redshift-spectrum

1
推荐指数
1
解决办法
3432
查看次数

Redshift Spectrum 比 Athena 慢很多?

我们的数据以 JSON 形式存储在 S3 中,没有分区。直到今天我们只使用 athena,但现在我们尝试了 Redshift Spectrum。

我们运行相同的查询两次。一次使用 Redshift Spectrum,一次使用 Athena。两者都连接到 S3 中的相同数据。

使用 Redshift Spectrum,此报告需要永远运行(超过 15 分钟),而使用 Athena 只需 10 秒即可运行。

在这两种情况下,我们在 aws 控制台中运行的查询如下:

SELECT "events"."persistentid" AS "persistentid",
  SUM(1) AS "sum_number_of_reco"
FROM "analytics"."events" "events"
GROUP BY "events"."persistentid"
Run Code Online (Sandbox Code Playgroud)

知道发生了什么事吗?谢谢

amazon-s3 tableau-api amazon-athena amazon-redshift-spectrum

1
推荐指数
1
解决办法
1411
查看次数

无法在红移光谱外部模式中创建视图

我在频谱外部表的外部模式中创建视图时遇到问题。下面是我用来创建视图的脚本

create or replace view external_schema.test_view as
select id, name from external_schema.external_table with no schema binding;
Run Code Online (Sandbox Code Playgroud)

我得到以下错误

错误:未启用对外部架构中的本地对象的操作。

请帮助在频谱外部表下创建视图

sql amazon-web-services amazon-redshift amazon-redshift-spectrum

1
推荐指数
1
解决办法
2784
查看次数

Redshift Spectrum 中表名带有连字符时如何查询表?

我正在尝试查询其中包含连字符的表。

我尝试过反引号和引号(`、'、"),但它们不起作用。

询问

select * from hubspot.contacts__form-submissions

错误信息:

Error running query: syntax error at or near "-" LINE 7: from hubspot.contacts__form-submissions ^

我没有写入权限,因此无法重命名该表。

关于如何查询这个有什么建议吗?

sql amazon-web-services amazon-redshift amazon-redshift-spectrum

1
推荐指数
1
解决办法
2521
查看次数

在Redshift中检查用户的“连接限制”

我有一个Redshift用户,用户名为“ redshift_x”,想知道当前为该用户设置的连接限制。我尝试使用以下查询来查询它:

从pg_user中选择*,其中usename ='redshift_x';

但是此查询仅提供有关这些列的信息。usename,usesysid,usecreatedb,usesuper,usecatupd,passwd,valuntil和useconfig。

请让我知道从哪里可以看到该特定用户“ redshift_x”的连接限制。

amazon-web-services amazon-redshift amazon-redshift-spectrum

0
推荐指数
1
解决办法
1580
查看次数