标签: amazon-redshift

更改Amazon Redshift中的列数据类型

如何更改Amazon Redshift数据库中的列数据类型?

我无法在Redshift中更改列数据类型; 有没有办法修改Amazon Redshift中的数据类型?

amazon-web-services amazon-redshift

76
推荐指数
5
解决办法
7万
查看次数

显示表,描述红移中等效的表

我是aws的新手,谁能告诉我什么是redshifts与mysql命令的等价物?

show tables -- redshift command
describe table_name -- redshift command
Run Code Online (Sandbox Code Playgroud)

amazon-web-services amazon-redshift

72
推荐指数
4
解决办法
10万
查看次数

在Redshift/Postgres中,如何计算符合条件的行?

我正在尝试编写一个只计算符合条件的行的查询.

例如,在MySQL中我会这样写:

SELECT
    COUNT(IF(grade < 70), 1, NULL)
FROM
    grades
ORDER BY
    id DESC;
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试在Redshift上执行此操作时,它会返回以下错误:

错误:函数if(布尔,整数,"未知")不存在

提示:没有函数匹配给定的名称和参数类型.您可能需要添加显式类型转换.

我检查了条件语句的文档,我找到了

NULLIF(value1, value2)

但它只比较value1和value2,如果这些值相等,则返回null.

我找不到一个简单的IF语句,乍一看我找不到办法去做我想做的事情.

我试图使用CASE表达式,但我没有得到我想要的结果:

SELECT 
    CASE
        WHEN grade < 70 THEN COUNT(rank)
        ELSE COUNT(rank)
    END
FROM
   grades
Run Code Online (Sandbox Code Playgroud)

这是我想要计算的方式:

  • 失败(等级<70)

  • 平均值(70 <=等级<80)

  • 好(80 <=等级<90)

  • 优秀(90 <=等级<= 100)

这就是我期望看到的结果:

+========+=========+======+===========+
| failed | average | good | excellent |
+========+=========+======+===========+
|   4    |    2    |  1   |     4     |
+========+=========+======+===========+
Run Code Online (Sandbox Code Playgroud)

但是我得到了这个:

+========+=========+======+===========+
| failed | average | good | excellent |
+========+=========+======+===========+
| …
Run Code Online (Sandbox Code Playgroud)

postgresql amazon-redshift

43
推荐指数
4
解决办法
6万
查看次数

redshift drop或truncate table非常慢

在我的redshift数据库中删除或截断一个不太大的表(4M行)时,需要很长时间(小时)才能完成.有人遇到同样的问题吗?

谢谢

amazon-web-services amazon-redshift

42
推荐指数
4
解决办法
2万
查看次数

如何在redshift中查找数据库,模式,表的大小

球队,

我的红移版本是:

PostgreSQL 8.0.2 on i686-pc-linux-gnu, compiled by GCC gcc (GCC) 3.4.2 20041017 (Red Hat 3.4.2-6.fc3), Redshift 1.0.735
Run Code Online (Sandbox Code Playgroud)

如何找出数据库大小,表空间,架构大小和表大小?

但以下不适用于红移(适用于以上版本)

SELECT pg_database_size('db_name');
SELECT pg_size_pretty( pg_relation_size('table_name') );
Run Code Online (Sandbox Code Playgroud)

有没有找到像oracle的替代品(来自DBA_SEGMENTS)

对于tble size,我有以下查询,但不确定MBYTES的确切分析.对于第3行,MBYTES = 372.它意味着372 MB?

select trim(pgdb.datname) as Database, trim(pgn.nspname) as Schema,
trim(a.name) as Table, b.mbytes, a.rows
from ( select db_id, id, name, sum(rows) as rows from stv_tbl_perm a group by db_id, id, name ) as a
join pg_class as pgc on pgc.oid = a.id
join pg_namespace as pgn on pgn.oid = pgc.relnamespace …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services amazon-redshift

42
推荐指数
7
解决办法
4万
查看次数

亚马逊红移:批量插入与来自s3的COPYing

我有一个红色群集,我用于一些分析应用程序.我有要添加到clicks表中的传入数据.假设我每秒要存储约10个新的"点击次数".如果可能,我希望我的数据尽快在红移中可用.

根据我的理解,由于柱状存储,插入性能很差,因此您必须按批次插入.我的工作流程是将点击数存储在redis中,每分钟,我都会将redis中的~600次点击作为批量插入红色.

我必须将一批点击插入到redshift中:

  • Multi-row insert strategy:我使用常规insert查询插入多行.这里有多行插入文档
  • S3 Copy strategy:我将s3中的行复制为clicks_1408736038.csv.然后我运行一个COPY将其加载到clicks表中.COPY文档在这里

我做了一些测试(这是在clicks已有200万行的表上完成的):

             | multi-row insert stragegy |       S3 Copy strategy    |
             |---------------------------+---------------------------+
             |       insert query        | upload to s3 | COPY query |
-------------+---------------------------+--------------+------------+
1 record     |           0.25s           |     0.20s    |   0.50s    |
1k records   |           0.30s           |     0.20s    |   0.50s    |
10k records  |           1.90s           |     1.29s    |   0.70s    |
100k records |           9.10s           | …
Run Code Online (Sandbox Code Playgroud)

amazon-s3 amazon-redshift

37
推荐指数
2
解决办法
2万
查看次数

如何在aws redshift中使用alter命令向表列添加排序键

我想将排序键添加到表中的列但是创建了表.所以我们可以通过命令向列(字段)添加排序键.

提前致谢.

amazon-redshift

31
推荐指数
4
解决办法
3万
查看次数

postgresql - 查看模式权限

是否有一个查询我可以运行以显示特定模式当前分配的权限?

即如此分配的权限:

GRANT USAGE ON SCHEMA dbo TO MyUser
Run Code Online (Sandbox Code Playgroud)

我试过了

SELECT *
FROM information_schema.usage_privileges;
Run Code Online (Sandbox Code Playgroud)

但这只会返回内置PUBLIC角色的授权.相反,我想看看哪些用户已被授予各种架构的权限.

注意:我实际上使用的是Amazon Redshift,而不是纯粹的PostgreSQL,但如果在Amazon Redshift中无法实现,我会接受纯粹的PostgreSQL答案.(虽然我怀疑它是)

sql postgresql amazon-redshift

30
推荐指数
9
解决办法
3万
查看次数

找不到Redshift COPY命令分隔符

我正在尝试将一些文本文件加载到Redshift.除最终行值之外,它们以制表符分隔.这导致分隔符未找到错误.我只看到一种在COPY语句中设置字段分隔符的方法,而不是设置行分隔符的方法.任何不涉及处理我的所有文件以在每行末尾添加选项卡的想法?

谢谢

amazon-redshift

29
推荐指数
3
解决办法
3万
查看次数

如何在Redshift上查看授权

我想查看红移补助金.

我找到了postgres的这个视图:

CREATE OR REPLACE VIEW view_all_grants AS 
SELECT 
  use.usename as subject, 
  nsp.nspname as namespace, 
  c.relname as item, 
  c.relkind as type, 
  use2.usename as owner, 
  c.relacl, 
  (use2.usename != use.usename and c.relacl::text !~ ('({|,)' || use.usename || '=')) as public
FROM 
  pg_user use 
  cross join pg_class c 
  left join pg_namespace nsp on (c.relnamespace = nsp.oid) 
  left join pg_user use2 on (c.relowner = use2.usesysid)
WHERE 
  c.relowner = use.usesysid or 
  c.relacl::text ~ ('({|,)(|' || use.usename || ')=') 
ORDER BY 
  subject, 
  namespace, 
  item …
Run Code Online (Sandbox Code Playgroud)

sql amazon-redshift

28
推荐指数
4
解决办法
4万
查看次数