问题标签 [amazon-redshift]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
25703 浏览

amazon-redshift - 无法连接到 redshift 数据库

我正在尝试使用 Postgre JDBC 驱动程序从 SQL Workbench/J 连接到 Redshift 数据库,但我无法通过。我收到此错误“连接尝试失败”。jdbc 驱动程序已正确定位。我还尝试了 Aginity Workbench for Redshift,但它无法显示数据库列表。我有表单数据库的连接 url,jdbc:postgresql://host:port/name_of_database但令人惊讶的是,我什至无法 ping 主机。我可以通过亚马逊控制台看到数据库的健康状况良好。所以,我的问题是:

  1. 为什么我无法 ping 我的 redshift db 服务器?
  2. 有没有办法通过 ssh 连接到数据库服务器?

Edit1:将我的公共 IP 添加到安全组后,主机在 ping 时得到解决,但仍然有 100% 的数据包丢失。

Edit2:我可以在 EC2-Classic 中成功托管数据库,但不能在 EC2-VPC 中托管。由于我的公共 IP 不足,我尝试在 VPC 中重新托管数据库,其中存在 100% 的数据包丢失。

0 投票
1 回答
2947 浏览

amazon-web-services - How do I keep more than 5 day's worth of query logs?

In Redshift, there's an STL_QUERY table that stores queries that were run over the last 5 days. I'm trying to find a way to keep more than 5 days worth of records. Here are some things that I've considered:

  1. Is there a Redshift setting for this? It would appear not.
  2. Could I use a trigger? Triggers are not available in Redshift, so this is a no-go.
  3. Could I create an Amazon Data Pipeline job to periodically "scrape" the STL_QUERY table? I could, so this is an option. Unfortunately, I would have to give the pipeline some EC2 instance to use to run this work. It seems like a waste to have an instance sitting around to scrape this table once a day.
  4. Could I use an Amazon Simple Work Flow job to scrape the table? I could, but it suffers from the same issues as 3.

Are there any other options/ideas that I'm missing? I would prefer some other option that does not involve me dedicating an EC2 instance, even if it means paying for an additional service (provided that it's cheaper than the EC2 instance I would have used in it's stead).

0 投票
1 回答
404 浏览

connect - redshift/Postgresql 8.0 撤销连接到用户的数据库

如何撤销用户对数据库的访问权限?

我试过 REVOKE ALL PRIVILEGES ON DATABASE dev FROM public_readonly; 我仍然可以连接。

看起来默认情况下所有用户都可以连接到所有数据库。

请注意,这是一个 Redshift 问题,因此 pgpass 更改的解决方案显然不相关。

0 投票
1 回答
7744 浏览

amazon-redshift - Redshift中的ROW_NUMBER()从每个组中选择最大的行?

我需要根据COUNT(1)字段从每个组中选择一行。

在其他数据库中,我会使用 ROW_NUMBER() 函数,该函数在 redshift 中尚不受支持

0 投票
1 回答
670 浏览

bash - 如何将 S3 的最后处理文件存储到 Redshift 数据库

目前,我仅使用 AWS Data Pipeline 将当前日期和时间的数据从 Amazon S3 复制到 Amazon Redshift。我想每 30 分钟将数据从 S3 复制到 Redshift。最后处理的 S3 文件名也存储到另一个 Redshift 表中。

有人可以回答这个问题吗?

0 投票
2 回答
218 浏览

amazon-redshift - Redshift:插入的数据何时可供选择?

我有一个将一些行写入 Redshift 的系统。一旦完成(使用 JDBC,因此代码行完成),我们将一个 id 发送到队列,另一个系统获取此 id 并从 Redshift 读取这些行和相关行。

此读数通常发生在同一秒内。问题是,大约 10% 的时间它找不到(显然)刚刚写入的数据。数据肯定在那里。以后再处理这些项目会得到不同的(正确的)结果。

所以,我的问题是 Redshift 能保证即时的数据一致性,还是我们的系统只需要等待才能读取?如果必须等待,要等多久?

0 投票
3 回答
1304 浏览

mysql - NOSQL 数据库上的聚合和统计功能

使用 SQL 数据库,可以很容易地执行统计/聚合函数,如协方差、标准差、峰度、偏度、偏差、均值和中位数、求和和乘积等,而无需将数据取出到应用程序服务器。 http://www.xarg.org/2012/07/statistical-functions-in-mysql/

对于大型数据集,一般 NoSql 数据库和特别是 dynamodb(cassandra) 上的此类计算如何有效地完成(尽可能靠近商店,假设 map/reduce “作业”不是实时的)。

AWS RDS(MySQL、PostgresSQL,...)不是 NoSQL,而 Amazon Redshift(ParAccel)——一个列存储——有一个 SQL 接口,可能有点过分了(6.85 美元/小时)。Redshift 的聚合功能有限http://docs.aws.amazon.com/redshift/latest/dg/c_Aggregate_Functions.html、http://docs.aws.amazon.com/redshift/latest/dg/c_Window_functions.html

0 投票
2 回答
6862 浏览

amazon-redshift - RedShift / ParAccel 中 UNION 选择查询的性能非常差

我有两个红移表:

  • tbl_current_day - 大约 450 万行
  • tbl_previous_day - 大约 450 万行,数据与 tbl_current_day 完全相同

除此之外,我还有一个名为qry_both_days的视图,定义如下:

当我在其中一个单独的表上运行查询时,我得到了预期的非常好的性能。例如,以下查询运行 5 秒:

解释计划:

请注意,宽度应该是 4 个字节,因为我的列是 int 类型。

但是,当我在 qry_both_days 上运行相同的查询时查询的运行速度会慢 20 倍,而我希望它的运行速度只会慢 2 倍,因为它应该多行两倍:

解释计划:

问题:宽度现在是 190,而不是应该的 4 个字节!!!有人知道如何让 RedShift 只选择 UNION SELECT 上的相关列吗?

谢谢!

0 投票
1 回答
2906 浏览

amazon-redshift - 在 RedShift 中第一次执行查询时运行时间长

我注意到我第一次在 RedShift 上运行查询需要 3-10 秒。当我再次运行相同的查询时,即使在 WHERE 条件下使用不同的参数,它也运行得很快(0.2 秒)。查询我说的是在一个约 1M 行的表上运行,在 3 个整数列上。

执行时间的巨大差异是否是由于 RedShift 在第一次运行时编译查询,然后重新使用已编译的代码这一事实造成的?

如果是 - 如何始终保持编译查询的缓存温暖?

还有一个问题:给定 queryA 和 queryB。假设 queryA 首先被编译和执行。queryB 应该与 queryA 有多相似,这样 queryB 的执行将使用为 queryA 编译的代码?

0 投票
2 回答
20501 浏览

amazon-redshift - Amazon Redshift : drop table if exists

Does Redshift support any statement equivalent to the following?