繁体   English   中英

定期运行Redshift查询

[英]Run Redshift Queries Periodically

我已经开始研究Redshift。 它在AWS中定义为“数据库”服务。 根据到目前为止的经验,我们可以创建表并将数据从S3或Hive等外部数据源提取到Redhshift数据库(集群)中。 另外,我们可以使用JDBC连接来查询这些表。

我的问题是-

  1. Redshift集群中是否有一个可以存储我们的查询的地方(例如每日)定期运行它?

  2. 我们可以将查询存储在S3位置,然后使用该查询将输出创建到另一个S3位置吗?

  3. 我们可以直接将包含二进制字段和字符串字段的DB2表卸载文件加载到Redshift,还是需要一个中间过程来将数据转换为CSV之类的东西?

我对此做了一些谷歌搜索。 如果您有资源链接,那将非常有帮助。 谢谢。

我在python中使用了psycopg2函数使用了cursor方法。 示例代码如下。 您必须在env_vars文件中设置所有env_vars凭证。 您可以使用cursor.execute设置查询。 在这里,我提到一个更新查询,以便您可以在此位置设置查询(可以设置多个查询)。 之后,您必须将此python文件设置为crontab或任何其他自动运行的应用程序,以定期运行查询。

import psycopg2
import sys
import env_vars

conn_string = "dbname=%s  port=%s  user=%s  password=%s  host=%s " %(env_vars.RedshiftVariables.REDSHIFT_DW ,env_vars.RedshiftVariables.REDSHIFT_PORT ,env_vars.RedshiftVariables.REDSHIFT_USERNAME ,env_vars.RedshiftVariables.REDSHIFT_PASSWORD,env_vars.RedshiftVariables.REDSHIFT_HOST)
conn = psycopg2.connect(conn_string);
cursor = conn.cursor();
cursor.execute("""UPDATE database.demo_table SET  Device_id = '123' where Device = 'IPHONE' or Device = 'Apple'; """);

conn.commit();
conn.close();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM