优化 SQL VIEW 计数以从 Snowflake 中提取信息模式元数据的 Pythonic 方法

Pythonic way to optimize SQL VIEW count to extract information schema metadata from Snowflake

我在 Snowflake 中有 12 个 VIEW table,我想从 Snowflakes INFORMATION Schema 中提取 TABLE_NAME,CREATED,LAST_ALTERED 用于视图tables,还想获取每 12 个 VIEW tables 的行数,以及下面提到的 Base table 的元数据 code.I 想知道是否有办法获取使用以下代码进行 12 VIEW tables 的行计数,或者有任何更好的方法来完成此任务,即为 Base Table 和 VIEW [= 获取 TABLE_NAME,CREATED,LAST_CREATED 元数据37=] 在 Snowflake ?

假设我的前 4 个 VIEW table 名称是“V_ACCOUNT”、“V_ADDRESS”、“V_COUNTRY”、“V_ORDER”。 =15=]

下面是我目前的代码。

提前感谢您的时间和努力!

Python代码:

    import pandas as pd
    import snowflake.connector
        
        conn = snowflake.connector.connect(
                    user="MY_USER",
                    password="MY_PSWD",
                    account="MY_ACCOUNT",
                    warehouse="COMPUTE_WH",
                    database="SNOWFLAKE_SAMPLE_DATA",
                    schema="INFORMATION_SCHEMA",
                    role="SYSADMIN"
                    )
        
        cur = conn.cursor()
        
       tables = ['CUSTOMER', 'CALL_CENTER', 'CUSTOMER_ADDRESS']
       view_tables=['V_ACCOUNT','V_ADDRESS','V_COUNTRY','V_ORDER']

cur.execute(
    f"""
    SELECT TABLE_NAME, ROW_COUNT, CREATED, LAST_ALTERED 
    FROM TABLES 
    WHERE TABLE_TYPE='BASE TABLE' 
    AND TABLE_SCHEMA='TPCDS_SF100TCL' 
    AND TABLE_NAME IN ({','.join("'" + x + "'" for x in tables)})
    UNION
    SELECT (select count(*) from DB.SCHEMA.V_ACCOUNT) AS ROW_COUNT,TABLE_NAME,CREATED,LAST_ALTERED FROM VIEWS WHERE TABLE_NAME="V_ACCOUNT"

    """
)
            df = cur.fetch_pandas_all()
        finally:
            cur.close()
        conn.close()

如果您正在寻找如何在 Python 中动态创建视图,请查看 Barmar 对我的另一个问题 的回答。这将提示您需要为动态视图创建做些什么。谢谢 Barmar 的帮助!