问题标签 [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.
java - Java、PostgreSQL 和 Hibernate:带有嵌套字符串的 Select 语句
我正在尝试使用 Java + Hibernate 将数据从 RedShift 卸载到 S3,但无法弄清楚如何让它接受 SQL 中的字符串中的字符串。
无论我尝试使用转义序列来将引号字符正确传递给 RedShift,我都会在异常之后得到异常。
任何想法都会受到欢迎。谢谢。
这是我试图在 RedShift 上运行的查询(如果我直接在 RedShift 中输入它,它可以工作):
以下是我在 Java 中尝试过的各种命令,但遇到了错误:
单反斜杠
结果
警告 org.hibernate.engine.jdbc.spi.SqlExceptionHelper - SQL 错误:0,SQLState:42601
错误 org.hibernate.engine.jdbc.spi.SqlExceptionHelper - 错误:“2013”位置或附近的语法错误位置:66
错误 org .hibernate.exception.SQLGrammarException:无法执行语句
双反斜杠
结果
错误org.hibernate.QueryException:参数前缀':' [unload('select raw_line from stl_load_errors where starttime > \'2013-01-01\'')到's3://myBucket/myTable/ '凭证'aws_access_key_id=*;aws_secret_access_key=*'gzip]
在 org.hibernate.engine.query.spi.ParameterParser.parse(ParameterParser.java:95)
三重反斜杠
结果
2013-06-19 01:39:59,233 错误 org.hibernate.QueryException:参数前缀 ':' [unload ('select raw_line from stl_load_errors where starttime > \'2013-01-01\'')到 's3://myBucket/myTable/' 凭据 'aws_access_key_id=*;aws_secret_access_key=*' gzip]
到
org.hibernate.engine.query.spi.ParameterParser.parse(ParameterParser.java:95)
四反斜杠
结果
警告 org.hibernate.engine.jdbc.spi.SqlExceptionHelper - SQL 错误:0,SQLState:42601
错误 org.hibernate.engine.jdbc.spi.SqlExceptionHelper - 错误:“2013”位置或附近的语法错误:68
错误组织.hibernate.exception.SQLGrammarException:无法执行语句
命名参数
结果:
警告 org.hibernate.engine.jdbc.spi.SqlExceptionHelper - SQL 错误:0,SQLState:42601
错误 org.hibernate.engine.jdbc.spi.SqlExceptionHelper - 错误:“$1”位置或附近的语法错误:9
错误org.hibernate.exception.SQLGrammarException:无法执行语句
amazon-redshift - 没有函数或存储过程的 Amazon RedShift 中的 Upsert
由于 RedShift 中不支持用户定义的函数或存储过程,我如何UPSERT
在使用 ParAccel(PostgreSQL 8.0.2 fork)的 RedShift 中实现机制。
目前,我正在尝试使用 IF...THEN...ELSE... 语句来实现 UPSERT 机制,例如:-
这给了我错误。因为我正在独立编写此代码,而不将其包含在函数或 SP 中。那么,是否有任何解决方案来实现 UPSERT。
谢谢
sql - 在 redshift 中使用 sql 函数 generate_series()
我想在redshift中使用生成系列功能,但没有成功。
红移文档说它不受支持。以下代码确实有效:
输出:
我想对日期做同样的事情。我尝试了许多变体,包括:
踢出:
也试过:
并尝试:
两者都踢出:
如果不是,我将使用另一篇文章中的此代码:
amazon-redshift - 如何从 Redshift 中的字符串中解析主机?
我正在寻找与Hive 的 parse_url(..., 'HOST') 等效的 Postgres(实际上是 Redshift)。
Postgres 文档说它有一个 URL 解析器作为其全文搜索的一部分。这篇博文有一个正则表达式,它可能是防弹的,也可能不是。什么是最好的?
postgresql - 将 2.3214E7 之类的数据保存到 postgresql
我是 postgresql (redshift) 的新手,我正在将 CSV 文件从 S3 复制到 RedShift,尝试将 2.35555E7 数字保存到numeric | 18, 0
列中时出错。该数据的正确数据类型是什么?
谢谢
sql-server - 使用 SSIS/SSDT 进行红移
是否有人成功使用 Amazon Redshift 作为 SQL Server Data Tools 2012 中的源或目标 ODBC 组件?
我已经安装了 Amazon 提供的 PostgreSQL 驱动程序,并在 Windows ODBC 驱动程序管理员中成功测试了连接,但是当我选择我保存的 DSN 并尝试提取表列表时,我仍然遇到神秘的错误消息。
sql - aws红移中的ILIKE和NOT ILIKE与总数不同
我在 amazon redshift 中运行了以下三个查询:
计数为 1554。
计数为 62。
计数是85。
最后两个(62 + 85)应该等于1554。我错过了什么?
sql - 如何在 AMAZON REDSHIFT 中将 userip 转换为整数
刚开始玩并测试亚马逊的红移。我需要做的一件事是我可以在 sql 中轻松完成的操作是将 userip 更改为整数。这是在 mssql 中使用标量函数完成的,该函数使用 parsename 来分解 ip 编号并通过常量将它们倍数。
这就是它的样子供参考。
正如我所料, parsename 不是红移中的函数,因此出现了我的问题。你们知道我可以达到相同结果的方法吗?
弄清楚了:
( LEFT(ip_address, STRPOS(ip_address, '.')-1) * 16777216) + (LEFT(SUBSTRING(ip_address, LEN(LEFT(ip_address, STRPOS(ip_address, '.')+1))), LEN(ip_address) - LEN(LEFT(ip_address, STRPOS(ip_address, '.')-1)) - LEN(LEFT(REVERSE(ip_address), STRPOS(REVERSE(ip_address), '.')-1)) - 2), STRPOS( SUBSTRING(ip_address, LEN(LEFT(ip_address, STRPOS(ip_address, '.')+1)), LEN(ip_address) - LEN(LEFT(ip_address, STRPOS(ip_address, '.')-1)) - LEN(LEFT (REVERSE(ip_address), STRPOS(REVERSE(ip_address), '.')-1)) - 2), '.')-1) * 65536) + (RIGHT( SUBSTRING(ip_address, LEN(LEFT(ip_address, STRPOS) (ip_address, '.')+1)), LEN(ip_address) - LEN(LEFT(ip_address, STRPOS(ip_address, '.')-1)) - LEN(LEFT(REVERSE(ip_address), STRPOS(REVERSE(ip_address) ), '.')-1)) - 2), LEN(SUBSTRING(ip_address,LEN(LEFT(ip_address, STRPOS(ip_address, '.')+1)), LEN(ip_address) - LEN(LEFT(ip_address, STRPOS(ip_address, '.')-1)) - LEN(LEFT(REVERSE(ip_address) ), STRPOS(REVERSE(ip_address), '.')-1)) - 2)) - STRPOS(SUBSTRING(ip_address, LEN(LEFT(ip_address, STRPOS(ip_address, '.')+1))), LEN(ip_address ) - LEN(LEFT(ip_address, STRPOS(ip_address, '.')-1)) - LEN(LEFT(REVERSE(ip_address), STRPOS(REVERSE(ip_address), '.')-1)) - 2), ' .') ) * 256) + (REVERSE( LEFT(REVERSE(ip_address), STRPOS(REVERSE(ip_address), '.')-1) ) * 1)'.')+1)), LEN(ip_address) - LEN(LEFT(ip_address, STRPOS(ip_address, '.')-1)) - LEN(LEFT(REVERSE(ip_address), STRPOS(REVERSE(ip_address), ' .')-1)) - 2), '.') ) * 256) + (REVERSE( LEFT(REVERSE(ip_address), STRPOS(REVERSE(ip_address), '.')-1) ) * 1)'.')+1)), LEN(ip_address) - LEN(LEFT(ip_address, STRPOS(ip_address, '.')-1)) - LEN(LEFT(REVERSE(ip_address), STRPOS(REVERSE(ip_address), ' .')-1)) - 2), '.') ) * 256) + (REVERSE( LEFT(REVERSE(ip_address), STRPOS(REVERSE(ip_address), '.')-1) ) * 1)
sql - 加入范围的最佳方式?
我认为这可能是一个常见问题,可能无法对每个工具都有答案。现在我们正在尝试使用亚马逊 Redshift。我们现在唯一的问题是我们正在尝试查找 IP 地址的邮政编码。我们拥有的将 IP 连接到城市的表是 IP 转换为整数的范围。
例子:
我已经在 intip >= startip 和 intip < endip 上尝试了明显的内部连接。
有谁知道这样做的好方法?
sql - Information_Schema 的 Redshift 选项
刚从 SSMS 转移到 Redshift(使用 DBeaver),我想知道是否有一个很好的选择来获取表描述。在 SQL Server 中,您可以针对 information_schema 编写一个很好的查询来提取列名、数据类型等。Redshift 中是否有类似的选项?