簡體   English   中英

從redshift和從python提取DB表藍圖,例如“ describe table_name” commande

[英]Fetch DB tables blueprint like “describe table_name” commande from redshift and DB2 from python

我想使用我的python代碼來獲取數據,就像我們對describe [tableName] statement所做的那樣。 我想在Redshift和DB2上做到這一點。

我嘗試使用Pandas和游標執行此操作,並嘗試了以下命令塊:

  1. "set search_path to SCHEMA; select * from pg_table_def where schemaname = 'schema' and LOWER(tablename) = 'TableName';

  2. describe schema.tableName

  3. select column_name, data_type, character_manimum_length from information_schema.columns where table_schema = 'Schema' and table_name = 'TableName';

  4. \\d or \\d+

import psycopg2
import numpy as np
import pandas as pd   



con=psycopg2.connect(dbname= 'DBNAME', host="Host-Link",
    port= '5439', user= 'username', password= 'password')
    print(con)

cur = con.cursor()
query  = "set search_path to Schema; select * from pg_table_def where schemaname = 'Schema' and LOWER(tablename) = 'TableName';"
cur.execute(query)
temp = cur.fetchall()
print(temp)

data_frame = pd.read_sql("set search_path to Schema; select * from pg_table_def where schemaname = 'Schema' and LOWER(tablename) = 'TableName';", con)
print(data_frame)

con.close()

我想要的輸出如下:

COLUMN_NAME DATA_TYPE   PK  NULLABLE    DEFAULT AUTOINCREMENT   COMPUTED    REMARKS POSITION
col1        varchar(10) YES NO            NO          NO           1
col2        varchar(50) NO  NO            NO          NO           2
col3        smallint    NO  NO            NO          NO           3

SVV_COLUMNS系統視圖中包含許多此類數據。 您可以使用table_nametable_schema列查詢該表。

https://docs.aws.amazon.com/redshift/latest/dg/r_SVV_COLUMNS.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM