[英]Run Redshift Queries Periodically
我已經開始研究Redshift。 它在AWS中定義為“數據庫”服務。 根據到目前為止的經驗,我們可以創建表並將數據從S3或Hive等外部數據源提取到Redhshift數據庫(集群)中。 另外,我們可以使用JDBC連接來查詢這些表。
我的問題是-
Redshift集群中是否有一個可以存儲我們的查詢的地方(例如每日)定期運行它?
我們可以將查詢存儲在S3位置,然后使用該查詢將輸出創建到另一個S3位置嗎?
我們可以直接將包含二進制字段和字符串字段的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.