![](/img/trans.png)
[英]Return DataFrame from within python function rather than list using pandas' pd.read_sql_query
[英]Read from a database view rather than a table using SQL
我正在嘗試從我使用 Python 根據我的數據庫中的其他視圖創建的視圖中讀取數據。
數據庫設置:
Redshift-postgres
dev
Schemas
schema_name
Tables
table_name
Views
view_name
蟒蛇代碼:
connection=psycopg2.connect("dbname=dev host=redshift.amazonaws.com port=5439 user=user password=password")
cursor = connection.cursor()
schema = "SELECT count(*) FROM schema_name.table_name;"
schema2 = "SELECT count(*) FROM schema_name.view_name;"
result = pd.read_sql(schema, connection)
當我使用schema
運行代碼時,它會從表中返回數據,但是當我嘗試運行schema2
它不返回任何內容,也沒有提供任何錯誤消息。 腳本不會停止它只是空閑。
嘗試從視圖而不是表中獲取數據時,我做錯了什么嗎?
更新
當我運行schema2 = "SELECT * FROM INFORMATION_SCHEMA.TABLES;"
它確實返回以下內容:
table_catalog table_schema table_name table_type
dev schema_name view_name VIEW
它列出了我試圖從中讀取數據的視圖。
我創建了這樣的視圖:
CREATE OR REPLACE VIEW schema_name.view_name
AS SELECT *
CASE
WHEN statement
ELSE false
END AS column_name,
FROM schema_name.another_view_name
LEFT JOIN schema_name.another_view_name_2 data_1 ON data_2 = data_3
LEFT JOIN schema_name.another_view_name_3 data_4 ON data_5 = data_6
我有一個名為irelevant數據data_x
,我加入基於某些條件的意見。
結果發現 amazon redshift DB 被阻塞了,有 5 個查詢運行了 4 天沒有響應。 無論如何,我仍然發現從具有 2 個左連接的視圖中閱讀需要 3 個小時才能閱讀,這不是它應該如何工作的。 該視圖只有 1.2m 行。 謝謝你的建議。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.