簡體   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