在icCube 5.1中,支持的JDBC连接列表中没有红移
如何在Amazon Redshift上的icCube中创建数据源?第一个解决方案是使用Postgres jdbc驱动程序。红移是基于Postgres的,所以它也可以工作(多长时间是一个好问题)
第二个更复杂,因为您需要将Reshift jdbc驱动程序添加到icCube。首先从amazon下载jdbc驱动程序,然后向icCube添加一个库
完成后,您必须配置一个新的数据源:
我正在尝试将一个表卸载到S3,每当我尝试时,我都会得到下面的消息
致命:发生致命错误。数据库将重新启动。
SSL系统调用错误:检测到EOF
与服务器的连接已断开。尝试重置:失败
query=UNLOAD'select*from public.table'到's3://bucket/path/in/s3/'credentials'aws\u access\u key\u id=;aws_secret_access_key='delimiter'\t'GZIP PARALLEL ON ALLOWOV
我想将列转换为行(不使用UNION):
进入:
度量值的编号是固定的
我用的是亚马逊红移 您需要使用Union来实现这一点。你为什么不想用它呢?没有别的办法
|Dimension1 | Measure1 | Measure2 |
-----------------------------------
| 1 | x1 | y1 |
| 0 | x2 | y2 |
| Dimension1 | Measure
我的数据结构为“位置”、“价值”。无论“value”列是什么,我都希望该位置显示为一个单独的行
例如:A,500是一行,我希望“A”显示为500个不同的行 这可以使用数字表和范围联接来完成
CREATE TEMP TABLE numbers AS
SELECT ROW_NUMBER() OVER() as "number"
FROM stl_scan
LIMIT 10;
CREATE TEMP TABLE data AS
SELECT 'a' value, 3 occurence
UNION
user1在my_架构上没有使用权限
user2在my_架构上没有使用权限
但是,两个用户仍然可以在此模式下列出所有表及其列,只要他们是相同数据库的用户
那么使用许可的意义是什么呢。它是否仅作为其他特权(如选择)的先决条件?您是对的,您需要先授予使用权才能访问表
来自AWS文档
授予特定架构上的使用权限,从而使用户可以访问该架构中的对象。必须单独授予这些对象上的特定操作(例如,表上的选择或更新权限)。默认情况下,所有用户都对公共架构具有创建和使用权限
没有授权“使用”,第一次运行的授权SELE
我想找到未来14天内生日即将到来的所有员工
我尝试过使用WHERE-DATEDIFF(日期、生日、当前日期)SELECT
全名,
生日,
从…起
员工
哪里
365-日期差异(日期、生日、当前日期)%365…和?取而代之的是什么?为什么错了?为什么正确的数据是正确的?什么是完整的输入数据?等。没有返回结果,因为没有员工14天大。我想找到生日纪念日在今天14天内的员工。鉴于第二部分返回的是模,您确定需要365-?(我没有试过,只是想了想)谢谢你的回复!我在不使用365-的情况下尝试了该查询,该查询
我有一个红移集群,使用psycopg2库和Lambda调用红移中的存储过程
我有两个存储过程并使用
cur = conn.cursor()
cur.execute("call stored_procedure_1()")
以红移方式运行该过程
我相信这是一个同步操作
我希望异步调用这两个存储过程,而不必等到一个存储过程完成后再调用另一个存储过程
红移上的psycopg可以这样做吗
多谢各位
你能告诉我为什么这会在红移中抛出一个错误吗
WITH Testing_PADDING AS (SELECT '12345678' AS column1)
SELECT LPAD(column1, 9,'0') FROM Testing_PADDING;
以下是我收到的错误:
操作无效:找不到从未知到文本的转换函数 红移无法从上下文确定数据类型,因此需要显式设置它
将测试填充作为选择“12345678”::文本作为第1列
选择
LPADcolumn1,9,'0'
从测试_填充;
我怀疑您的一个字
如果我在红移中有一个像‘Picá’这样的字符串,我怎么能只提取‘a’
尝试获取一列字符串中的外来字符计数。如果需要非ascii字符计数,可以使用
select regexp_count('Picá', '[^\u0000-\u007F]');
它返回值1
如果你真的想要一个拉丁或西里尔字母的计数,那么你可能必须恢复到红移UDF。你能更具体地说,你如何定义外来字符?与什么无关?主要是[A-Z]、[A-Z]、[0-9]和标点符号之外的任何东西。更具体地说,如果你看这里:。它是拉丁或西里尔字母表中的
我想使用红移中的用户定义函数在红移中实现mySQL IF函数等效。语法如下:
IF(条件、值如果为真、值如果为假)
是否可以将条件/表达式传递给Redshift UDF?不能将表达式传递给UDF,但可以传递字符串。然后可以用python对其进行计算
然而,更简单的方法是使用case语句
case {condition} then {value_if_true} else {value_if_false} end
case语句是SQL中的标准语句(如果不是,则为wheras)
我知道什么时候应该
我以前也研究过其他解决方案,但从解释中找不出问题所在。我正在尝试运行一个python脚本,其中数据从oltp MySQL数据库(AWS RDS)加载到AWS Redshift上的olap数据库。我已将我的表定义为红移,如下所示:
create_product = ("""CREATE TABLE IF NOT EXISTS product (
productCode varchar(15) NOT NULL PRIMARY KEY,
productN
我正在寻找SQL代码,它可以列出模式名和表名以及组名。这是为了找出哪个模式名或表名属于哪个组。通过下面的代码,我可以很容易地找到哪个用户在哪个组中,而不是模式名和表名。有没有办法将pg_名称空间与pg_组连接起来
SELECT usename, groname
FROM pg_user, pg_group
WHERE pg_user.usesysid = ANY(pg_group.grolist)
AND pg_group.groname in (SELECT DISTINCT pg_grou
Postgre支持以下操作:
ALTER TABLE name
SET SCHEMA new_schema
在红移状态下,该操作不起作用。有办法吗
我尝试更新pg_类以设置表的relnamespaceschema id,该表需要超级用户帐户,并且在pg_shadow表中usecatupd为true。但我的许可被拒绝了。唯一可以修改pg系统表的帐户是rdsdb
server=# select * from pg_user;
usename | usesysid | usecreat
我有一组S3上的文件,我正试图加载到红移。
我正在使用amazon数据管道来完成这项工作。向导获取了集群、数据库和文件格式信息,但我得到了一个错误,即需要主键来保留表中的现有字段(keep_existing)
我的表模式是:
create table public.Bens_Analytics_IP_To_FileName(
Day date not null encode delta32k,
IP varchar(30) not null encode text255,
FileN
我想用PascalCase符号在Amazon红移中创建一个表。我如何做到这一点
例如:我希望表名为“EmployeeDetails”,而不是作为默认的创建方式,因为“EmployeeDetails”,标识符和红移中的名称不区分大小写
标准标识符和分隔标识符不区分大小写并折叠
小写。标识符必须仅由UTF-8可打印组成
人物
我建议使用snake\u case,就像@a\u horse\u和\u no\u名字一样。这是执行此操作的标准方法。红移中的标识符和名称不区分大小写
标准标识符和分隔标识符不
我正在查看我在Redshift中执行的一些查询的性能,并注意到一些在文档中找不到的内容
我创建了两个表,它们之间有一个连接键(子表中大约有10K行)
对于父表,我们称之为A,我有一个主键,我已经声明为表的distkey和sort键。我们叫这个id吧
对于子表B,我创建了一个外键字段parent_id,它引用a.id。parent_id已声明为表B的distkey。表B还有一个我定义的主键id。我在表B上为(parent_id,id)创建了一个交错排序键
当我试图解释连接这两个表时,总会得到一个哈
标签: Amazon Redshift
aws-glueamazon-dynamodb-streamsamazon-redshift-spectrum
目标:
我们希望使用AWS Glue数据目录为驻留在S3存储桶中的JSON数据创建一个表,然后通过红移光谱进行查询和解析
背景:
JSON数据来自DynamoDB流,并且嵌套得很深。JSON的第一级有一组一致的元素:键、NewImage、OldImage、SequenceNumber、ApproximateCreationDateTime、SizeBytes和EventName。唯一的变化是有些记录没有新图像,有些记录没有旧图像。然而,在第一个层次之下,模式差别很大
理想情况下,我们希望使用Gl
我有一个用例,可以选择应用NVL或COALESCE
例如:COALESCE(列1,'alternate\u string')
我知道为空和不为空,但请告诉我如何使其适应此查询:
使用TABLE_2 T2从TABLE_1 T1中删除,其中T1.col_1=T2.col1 T1.col2=T2.col2依此类推。。。。。我应该用箱子吗
如何处理布尔类型。
我想知道哪一个在AWS红移中的执行时间更快?它们是相同的:
NVL表达式的同义词
NVL表达式与联合表达式相同
它们是一样的:
NVL表达式
指示可以有多个排序键列。不过,我想不出正确的语法。这适用于一列:
create table elt.tmptmp (
val1 smallint sortkey,
val2 smallint,
);
这就是我假设它可以用于多个列的方式,但它会导致一个错误:
create table elt.tmptmp (
val1 smallint,
val2 smallint,
sortkey(val1, val2)
);
ERROR: syntax error at or near
我有以下场景:几个csv文件包含同一个表的不同列。我可以用某种方式填充红移表吗?理想情况下,可以借助数据管道吗?我找不到实现这一目标的方法。有人能帮忙解决这个问题吗?如果可能的话,可以举个简单的例子。您可以在加载csv文件之前将其转换为json格式。然后在文件中找不到特定的Json标记:copy只会将其删除。据我所知,在copy语句的情况下,它将允许您使用清单文件将多个文件加载到一起,但具有相同的列顺序。如果列顺序不同或列数不同,您可能希望分别加载它们。
我不想删除一个表并将其重新创建为diststyle,而是想更改表的diststyle,这可能吗
谢谢 似乎不可能。从旧表重新创建填充表更容易。我发现的最简单的方法是使用以下方法:
BEGIN;
CREATE TABLE mytable_tmp
DISTSTYLE ALL -- You can also use DISTKEY(some_column) or DISTSTYLE EVEN
AS SELECT * FROM mytable;
DROP TABLE mytable;
ALTER T
我在Amazon Redshift中创建新用户时遇到问题。我遵循上的描述,并能够使用上面描述的示例中的数据创建集群。我可以使用最新版本的SQL Workbench/J(Build 1222017-02-04)和驱动程序(JDBC 4.2兼容)从EC2实例连接到集群。尝试创建新用户时失败:
create user dbuser25x with password 'abcD1234';
其中一种情况会发生:
我收到确认用户已创建的消息,但没有用户:
User dbuser25x created
E
我目前正在将一个主要包含web分析数据的数据库从Postgresql迁移到Redshift。我无法优化加载过程。我正在寻求关于我的模式和我使用的一般方法的反馈
下面是模式的一个小示例,它说明了我遇到的问题:
CREATE TABLE dim_browser (
browser_key integer IDENTITY(-2,1) PRIMARY KEY,
browser_name varchar(40) DEFAULT 'Unknown'::text NOT NULL,
我有一个每天递增更新一次的表。表中有大约1000万条记录,但我只更新在过去24小时内创建或更新的行。这运行得非常好,但是我对其中一列有一个问题,该列计算每个销售(记录)的账龄,该账龄是根据记录创建时的时间计算的,并将其与最新数据运行时进行比较。我想知道,每次表增量更新时,我怎么能只更新1000万行中的每一行的这个列
我使用亚马逊红移作为数据库
谢谢..红移不允许以您描述的方式更新单个列。您可以写入UPDATE x SET y=z,其中不管是什么,但整行仍为逻辑删除(软删除),并将一条新记录写入文
我试图利用liquibase(v3.6.1)redshift lib()将UDPATE自动化到我们的redshift集群,我遇到了一个问题。Liquibase首次尝试创建databasechangelog表时失败,因为列名“TAG”是红移中的保留字
现在,我确实找到了这个线程(),它向lib作者提出了这个问题。我使用的是该库的最新版本(1.0),据lib作者称,该版本虽然不是最新版本,但应该已经解决了这个问题。但是,它不是固定的,或者因为这是Liquibase内部使用的列名,所以它不会对库的保留
我设置了一个消防水带流,将数据传送到我的红移群集。它工作了很短一段时间,但突然似乎停止了向红移公司的交付。从我的
select * from stl_query order by endtime desc limit 10;
select * from stl_load_errors order by starttime desc;
select * from stl_connection_log where remotehost like '52%' order by recordtime d
我正在测试AWS红移作为构建数据仓库的一个选项
根据文件,
我发现我可以用python创建标量用户定义函数
但我想知道红移是否支持表值函数?我做了一些研究,但没有发现任何有关这方面的信息
有什么想法吗?非常感谢返回标量数组!然后把你们的身体分成两半,然后放到地上
CREATE OR REPLACE FUNCTION udfArray ()
RETURNS text IMMUTABLE AS
$$
return 'Matthew,5,44'
$$ LANGUAGE plpyth
我必须实现一个CR,在这里我必须卸载大约180个红移集群表。我有所有的Unload命令,我将逐一执行
如果我能在这个问题上找到一些解决办法,那就太好了
参考文件:
示例命令:
unload ('select column1, column2 from table') to 's3://prod/audi/history/20150914/fact_invite2_audi_'
credentials '<>'
MANIFEST GZIP ESCAPE DELIMITER AS ',
我们有一个系统,在这个系统中,我们根据某些条件进行红移聚合。我们使用复杂的联接来聚合这些数据,通常需要10-15分钟才能完成。然后,我们将这些聚合数据显示在Tableau上以生成报告。
最近,我们在添加一个新维度方面做了很多更改,这通常需要与一个新表连接,或者在一些更具体的过滤器上获取数据。为了满足这些请求,我们必须每次更改每个子流程的查询。
我经历了一点OLAP。我只是想知道,在我们的用例中,它是否会更好,或者有没有更好的方法来设计我们的系统,以满足这样的临时请求,而不需要开发人员每次都更改东
使用亚马逊红移数据库。我有一个名为“Public”的模式和另一个名为“SchemaX”的模式。我创建了一个名为“User1”的用户;让他访问“SchemaX”。我想阻止“User1”查看或列出“Public”架构中的可用表。一个人如何着手做这件事 若要禁止用户在数据库的公共架构中创建对象,请使用REVOKE命令删除该权限
REVOKE [ GRANT OPTION FOR ]
{ { SELECT | INSERT | UPDATE | DELETE | REFERENCES } [,...]
我是原型红移,需要一些关于排序键设计的建议。我有一个表,有5个数值和20列,我们可以用来过滤。我正在使用日期作为dist键,但是我丢失了排序键的设计
我有基于历史使用情况的排序列的权重,但如何在红移中处理它。创建排序键(col1、col2、col20)似乎不是最好的方法。我是否使用前5个最常用的过滤器创建排序键?或者其他一些方法。你有很多选择,一点也不容易:)根据感觉和你描述表格的方式,我认为你应该使用交错排序键,最多加8列。如果列没有排列,例如,2列是同时增长的日期,如同步增长的开始、结束或i
在下表中,我想编写一个SQL查询,在col1=2和col2=1时排除一行。只有当两个条件都满足时,我才想删除该列。如果col1=2但col21则我希望保留该行
可乐
可乐
1.
2.
1.
2.
2.
2.
2.
1.
您应该使用或而不是和您可以使用:
WHERE NOT (col1 <> 2 AND col2 <> 1)
WHERE NOT(col12和col21)
或
其中(col12或col21)
WHERE (col1 <> 2 OR col2
我正在Grafana Cloud上创建一个仪表板。必须解释的数据每天早上8点更新,并存储在AWS红移数据仓库中
对于Grafana Dashboard,红移必须始终处于开启状态,结果证明这很昂贵
是否有一种在特定时间自动更新仪表板的方法?然后,这些数据显示到第二天信息更新,而不是每次查询
运行SQL查询时:
select generate_series(0,g)
from ( select date(date1) - date(date2) as g from mytable ;
它返回一个错误:
INFO: Function "generate_series(integer,integer)" not supported.
ERROR: Specified types or functions (one per INFO message) not supporte
我在下一页得到了这个查询:
它列出了表名和行数。但行数似乎比实际值错了10倍
select datname, nspname, relname, sum(rows) as rows
from pg_class, pg_namespace, pg_database, stv_tbl_perm
where pg_namespace.oid = relnamespace
and pg_class.oid = stv_tbl_perm.id
and pg_database.oid = stv_tbl_p
我正在对Redshift运行标准查询,每隔运行一次,我就会得到:
[礼宾客户例外:我们在满足您的请求时遇到问题:42601:在“放弃”处或附近出现语法错误]
我正在正确地打开和关闭连接,查询看起来很正常。我已经查询了Redshift的STL_查询,语句看起来很好。我打开了日志记录,但看不到这个DISCARD命令被发送到哪里
然而,每一个其他的查询都会给我这个错误
想法?假设您使用的是Ngsql 3.2.0,这看起来像是的副本。简而言之,Npgsql的池在3.2.0中以一种与Reshift不兼容的
我试图将特定列加载到红移光谱中,但数据似乎是按位置加载的,这意味着我为列名称输入的内容无关紧要
为了使这一点更加具体:
假设我要加载的数据以A、B、C列的形式存储在拼花地板中。我只需要B列,所以我写:
create external table spectrum.Foo(
B varchar(500)
)
STORED AS PARQUET
LOCATION 's3://data/';
不幸的是,当我这样做时,它实际上将A的数据加载到Foo.B中
我需要一些额外的语法。我翻遍了文件,但什么
假设我有以下疑问:
SELECT sum(a), sum(b), sum(a) - sum(b)
FROM salelines
希望它只需要执行一次sum(a)和sum(b),因为第三列可以重用这些聚合。以下是解释:
XN HashAggregate (cost=35.21..41.90 rows=535 width=22)
-> XN Seq Scan on salelines (cost=0.00..15.65 rows=1565 width=22)
然而,有趣的是,如果
Athena有一些默认设置,可以帮助~cap降低S3中大型数据湖上意外“失控”查询的成本。它们不是很好(基于~时间,而不是扫描的数据量),但仍然很有用
红移光谱怎么样?
它提供了哪些机制可以方便地用来控制成本或降低在针对S3的单个失控查询中“意外”扫描过多数据的风险?解决这个问题的好办法是什么 Amazon Redshift允许您使用对频谱查询执行应用粒度控制
有两个可用的频谱指标:频谱扫描大小(查询扫描的mb数)和频谱扫描行数(查询扫描的行数)
您还可以使用查询执行时间强制执行最大持续时间,
我有一些销售数据,显示商店是否进行了销售。我正试图撤出所有到目前为止还没有打折的商店。下面是我正在处理的查询和示例数据
store_name,sale_made,count
store_a,0,100
store_a,1,23
store_b,1,18
store_c,0,32
store_d,0,50
store_d,1,70
预期产出:
store_name,sale_made,count
store_c,0,32
原因是该列表中仅存储c的原因是sale\u made=0而没有sale\
在我学习Redshift(我的第一个专栏数据库)的过程中,我正在努力找出设计模型的方法。柱状数据库确实促进了平面表的设计,但也承认星型模式或雪花模式在某些情况下可能是更好的选择
这是一个简单的例子,说明我在哪里挣扎
正如您所看到的,多维方法只有几个维度和一个事实表。我本可以让它成为雪花设计,但我保持了简单的星型架构
方法1:使用表中的公共列(在本场景中为人口统计)。这可能会减少Customer&Store的表大小,但会包括额外的维度
方法2:所有列的平板设计
我的问题是:
data model
我需要将带有默认值列的数据加载到红移中,如AWS中所述
不幸的是,COPY命令不允许从拼花地板文件加载具有默认值的数据,因此我需要找到一种不同的方法来实现这一点
“我的表”需要一列,其中包含来自Redshift的getdate函数:
LOAD_DT TIMESTAMP DEFAULT GETDATE()
如果使用COPY命令并将列名添加为参数,则会出现错误:
Column mapping option argument is not supported for PA
where子句按照定义的顺序指定交错排序键是否重要?我想是的。如果顺序很重要,为什么查询计划员不能自己解决这个问题?我认为顺序无关紧要
在第“”章中,我发现了一些有趣的基准
表1的方案:
create table cust_sales_date_interleaved as
(select c_custkey, c_nation, c_region, c_mktsegment, d_date::date, lo_revenue
from customer, lineorder, dwdate
w
我在红移数据库中的数字型列中有117106117107这样的日期。理解该格式为朱利安格式。我想把它改成普通的日期格式,比如yyyymmdd
我尝试将函数应用于列,它返回如下值
选择截止日期(117106)-结果4393-07-10
请帮忙
提前感谢这是如何做到的。
它的工作方式是前3位是世纪朱利安偏移量,最后3位是日偏移量:
select dateadd(day,117106 % 1000,dateadd(year,(117106 /1000),convert(datetime,'01/01/1
尝试修改我的新红移数据库的搜索路径时遇到此问题
目前,我已经通过AWS的数据迁移服务将MySQL数据库的内容迁移到一个红移集群中。数据被导入到一个模式中,让我们调用my_模式。当我试图对集群执行查询时,它要求我在表名前面加上模式名
i、 e
从my_schema.my_表中选择*
我想更改设置,以便可以直接引用表,而不需要前缀。环顾四周后,我发现通过修改search\u path属性,这是可能的
首先,我试着通过跑步来做到这一点
设置搜索路径=“$user”,我的搜索模式
这似乎是可行的,但后来
我正在使用DataGrip处理一个红移集群,其中包含一组数据库,错误突出显示似乎有点奇怪。假设我在同一集群上的数据库dev中有schema\u 1.表a,数据库test中有schema\u 2.表b。如果我连接到dev并编写查询:
select*from schema_2.table_bschema.table引用突出显示(正确)为范围外错误
但是,如果我连接到数据库test并编写查询:
select*from schema_1.table_a高亮显示时没有错误,DataGrip提供了自动完成引
如何在AWS红移上获得表水印?我在互联网上搜索过,但没有找到任何提取命令。AWS红移没有表水印的概念。什么是“表水印”?你希望用它完成什么?(也就是说,您为什么需要此功能?)
我使用AWS红移来运行查询
查询包含创建表和与现有表联接过程
在所有步骤之后,新表有一个updated_at字段,即当前时间
完成所有步骤后,在当前时间更新。但是,如果我使用SQL Workbench J单击“刷新”按钮,此字段将更改为上次成功查询时的字段
我想这意味着表更新失败,我如何修复它?谢谢 在“连接配置文件”页面下选择“自动提交”对我有效。你是说每次单击“刷新”时,该字段都在更改吗?只是在查询时,还是在更新时?请编辑您的问题以显示这种行为的示例。@JohnRotenstein谢谢,我刚
我通过kafka将数据写入AWS S3,因此可以多次写入消息。我用光谱红移来查询它
由于数据是嵌套的,所以我在中遇到了一些限制,但我似乎无法找到消除重复数据的方法
我首先尝试使用GROUPBY消除重复项,然后进行常规聚合
with rid_of_duplicates as (
select table.field_1, table.struct_1.field_2, table.struct_1.field_3
from table
group by 1,2,3
)
select field
分析最常用的红移表。我们创建了一个。我们正在将此表中的表扫描数据导出到普罗米修斯,以查看随时间变化的趋势
var (
RedshiftQueryTotalMetric = prometheus.NewGaugeVec(
prometheus.GaugeOpts{
Namespace: "redshift",
Subsystem: "scan",
Name:
1 2 3 4 5 6 ...
下一页 最后一页 共 11 页