
- Snowflake 教程
- Snowflake - 首頁
- Snowflake - 簡介
- Snowflake - 資料架構
- Snowflake - 功能架構
- Snowflake - 如何訪問
- Snowflake - 版本
- Snowflake - 定價模式
- Snowflake - 物件
- Snowflake - 表和檢視型別
- Snowflake - 登入
- Snowflake - 倉庫
- Snowflake - 資料庫
- Snowflake - 模式
- Snowflake - 表和列
- Snowflake - 從檔案載入資料
- Snowflake - 有用示例查詢
- Snowflake - 監控使用情況和儲存
- Snowflake - 快取
- 將資料從 Snowflake 解除安裝到本地
- 外部資料載入(從 AWS S3)
- 外部資料解除安裝(到 AWS S3)
- Snowflake 資源
- Snowflake - 快速指南
- Snowflake - 有用資源
- Snowflake - 討論
Snowflake - 有用示例查詢
本章將介紹一些 Snowflake 中有用的示例查詢及其輸出。
使用以下查詢在 Select 語句中獲取有限資料:
"SELECT * from <table_name>" Limit 10
此查詢將僅顯示前 10 行。
使用以下查詢顯示過去 10 天的使用情況:
SELECT * FROM TABLE (INFORMATION_SCHEMA.DATABASE_STORAGE_USAGE_HISTORY (DATEADD('days', -10, CURRENT_DATE()), CURRENT_DATE()))
使用以下查詢檢查 Snowflake 中建立的階段和檔案格式:
SHOW STAGES SHOW FILE FORMATS
要檢查變數,請按順序執行以下查詢:
SELECT * FROM snowflake_sample_data.tpch_sf1.region JOIN snowflake_sample_data.tpch_sf1.nation ON r_regionkey = n_regionkey;
select * from table(result_scan(last_query_id()));
SELECT * FROM snowflake_sample_data.tpch_sf1.region JOIN snowflake_sample_data.tpch_sf1.nation ON r_regionkey = n_regionkey;
SET q1 = LAST_QUERY_ID();
select $q1;
SELECT * FROM TABLE(result_scan($q1)) ;
SHOW VARIABLES;
使用以下查詢查詢資料庫的登入歷史記錄:
select * from table(test_db.information_schema.login_history());
結果提供時間戳、使用者名稱、登入方式(使用密碼或 SSO)、登入期間的錯誤等。
使用以下命令檢視所有列:
SHOW COLUMNS SHOW COLUMNS in table <table_name>
使用以下命令顯示 Snowflake 提供的所有引數:
SHOW PARAMETERS;
以下是一些只需執行查詢“SHOW PARAMETERS;”即可檢視的詳細資訊:
序號 | 鍵和描述 |
---|---|
1 | ABORT_DETACHED_QUERY 如果為 true,Snowflake 將在檢測到客戶端消失時自動中止查詢。 |
2 | AUTOCOMMIT auto-commit 屬性決定語句是否應隱式地包裝在事務中。如果 auto-commit 設定為 true,則需要事務的語句將隱式地在事務中執行。如果 auto-commit 為 false,則需要顯式提交或回滾才能關閉事務。預設 auto-commit 值為 true。 |
3 | AUTOCOMMIT_API_SUPPORTED 此客戶端是否啟用了 auto-commit 功能。此引數僅供 Snowflake 使用。 |
4 | BINARY_INPUT_FORMAT 二進位制輸入格式 |
5 | BINARY_OUTPUT_FORMAT 二進位制顯示格式 |
6 | CLIENT_ENABLE_CONSERVATIVE_MEMORY_USAGE 為 JDBC 啟用保守的記憶體使用 |
7 | CLIENT_ENABLE_DEFAULT_OVERWRITE_IN_PUT 如果在 sql 命令中未指定覆蓋選項,則將 put 命令的覆蓋選項的預設值設定為 true。 |
8 | CLIENT_ENABLE_LOG_INFO_STATEMENT_PARAMETERS 為預準備語句繫結引數啟用資訊級別日誌記錄 |
9 | CLIENT_MEMORY_LIMIT 以 MB 為單位限制客戶端使用的記憶體量 |
10 | CLIENT_METADATA_REQUEST_USE_CONNECTION_CTX 對於客戶端元資料請求 (getTables()),如果設定為 true,則使用會話目錄和模式 |
11 | CLIENT_METADATA_USE_SESSION_DATABASE 對於客戶端元資料請求 (getTables()),如果設定為 true,則使用會話目錄,但使用多個模式(與 CLIENT_METADATA_REQUEST_USE_CONNECTION_CTX 結合使用) |
12 | CLIENT_PREFETCH_THREADS 控制執行緒的客戶引數,0=自動 |
13 | CLIENT_RESULT_CHUNK_SIZE 設定客戶端側的最大結果塊大小(以 MB 為單位) |
14 | CLIENT_RESULT_COLUMN_CASE_INSENSITIVE 客戶端中的列名搜尋不區分大小寫 |
15 | CLIENT_SESSION_CLONE 如果為 true,客戶端將從帳戶和使用者的先前使用令牌克隆一個新會話。 |
16 | CLIENT_SESSION_KEEP_ALIVE 如果為 true,客戶端會話將不會自動過期 |
17 | CLIENT_SESSION_KEEP_ALIVE_HEARTBEAT_FREQUENCY CLIENT_SESSION_KEEP_ALIVE 的心跳頻率(以秒為單位)。 |
18 | CLIENT_TIMESTAMP_TYPE_MAPPING 如果使用 bind API 將變數繫結到 TIMESTAMP 資料型別,則確定它應對映到的 TIMESTAMP* 型別 |
19 | C_API_QUERY_RESULT_FORMAT 用於將查詢結果序列化以傳送回 C API 的格式 |
20 | DATE_INPUT_FORMAT 日期輸入格式 |
21 | DATE_OUTPUT_FORMAT 日期顯示格式 |
22 | ENABLE_UNLOAD_PHYSICAL_TYPE_OPTIMIZATION 啟用 Snowflake 中使用的物理型別最佳化以影響 Parquet 輸出 |
23 | ERROR_ON_NONDETERMINISTIC_MERGE 嘗試合併更新連線多行的行時引發錯誤 |
24 | ERROR_ON_NONDETERMINISTIC_UPDATE 嘗試更新連線多行的行時引發錯誤 |
25 | GEOGRAPHY_OUTPUT_FORMAT 地理顯示格式:GeoJSON、WKT 或 WKB(不區分大小寫) |
26 | GO_QUERY_RESULT_FORMAT 用於將查詢結果序列化以傳送回 golang 驅動程式的格式 |
27 | JDBC_FORMAT_DATE_WITH_TIMEZONE 如果為 true,ResultSet#getDate(int columnIndex, Calendar cal) 和 getDate(String columnName, Calendar cal) 將使用 Calendar 的輸出顯示日期。 |
28 | JDBC_QUERY_RESULT_FORMAT 用於將查詢結果序列化以傳送回 jdbc 的格式 |
29 | JDBC_TREAT_DECIMAL_AS_INT 當刻度為 0 時,是否在 JDBC 中將 Decimal 視為 Int |
30 | JDBC_TREAT_TIMESTAMP_NTZ_AS_UTC 如果為 true,Timestamp_NTZ 值將始終儲存在 UTC 時區 |
31 | JDBC_USE_SESSION_TIMEZONE 如果為 true,JDBC 驅動程式將不會顯示 JVM 和會話之間的時區偏移量。 |
32 | JSON_INDENT JSON 輸出中縮排的寬度(0 表示緊湊) |
33 | JS_TREAT_INTEGER_AS_BIGINT 如果為 true,nodejs 客戶端將所有整型列轉換為 bigint 型別 |
34 | LANGUAGE UI、GS、查詢協調和 XP 將使用的所選語言。輸入語言應採用 BCP-47 格式。也就是破折號格式。有關詳細資訊,請參閱 LocaleUtil.java。 |
35 | LOCK_TIMEOUT 嘗試鎖定資源時等待的秒數,在超時並中止語句之前。值為 0 將關閉鎖等待,即 |
36 | MULTI_STATEMENT_COUNT 提交的查詢文字中包含的語句數。此引數由使用者提交以避免 SQL 注入。值為 1 表示一個語句,值 > 1 表示可以執行 N 個語句,如果不等於該值,則會引發異常。值為 0 表示可以執行任意數量的語句 |
37 | ODBC_QUERY_RESULT_FORMAT 用於將查詢結果序列化以傳送回 ODBC 的格式 |
38 | ODBC_SCHEMA_CACHING 如果為 true,則啟用 ODBC 中的模式快取。這可以加快 SQL 列 API 呼叫的速度。 |
39 | ODBC_USE_CUSTOM_SQL_DATA_TYPES ODBC 在結果集元資料中返回 Snowflake 特定的 sql 資料型別 |
40 | PYTHON_CONNECTOR_QUERY_RESULT_FORMAT 用於將查詢結果序列化以傳送回 python 聯結器的格式 |
41 | QA_TEST_NAME 如果在 QA 模式下執行,則為測試名稱。用作共享池的區分符 |
42 | QUERY_RESULT_FORMAT 用於將查詢結果序列化以傳送回客戶端的格式 |
43 | QUERY_TAG 用於標記會話執行的語句的字串(最多 2000 個字元) |
44 | QUOTED_IDENTIFIERS_IGNORE_CASE 如果為 true,則忽略帶引號的識別符號的大小寫 |
45 | ROWS_PER_RESULTSET 結果集中的最大行數 |
46 | SEARCH_PATH 未限定物件引用的搜尋路徑。 |
47 | SHOW_EXTERNAL_TABLE_KIND_AS_TABLE 更改 SHOW TABLES 和 SHOW OBJECTS 顯示外部表 KIND 資訊的方式。如果為 true,則外部表的 KIND 列顯示為 TABLE,否則顯示為 EXTERNAL_TABLE。 |
48 | SIMULATED_DATA_SHARING_CONSUMER 資料共享檢視將返回行,就像在指定的消費者帳戶中執行一樣。 |
49 | SNOWPARK_LAZY_ANALYSIS 為 Snowpark 啟用延遲結果模式分析 |
50 | STATEMENT_QUEUED_TIMEOUT_IN_SECONDS 排隊語句的超時時間(以秒為單位):如果語句在倉庫中排隊的時間超過此時間量,則會自動取消語句;如果設定為零,則停用。 |
51 | STATEMENT_TIMEOUT_IN_SECONDS 語句的超時時間(以秒為單位):如果語句執行時間過長,則會自動取消語句;如果設定為零,則強制執行最大值 (604800)。 |
52 | STRICT_JSON_OUTPUT JSON 輸出嚴格符合規範 |
53 | TIMESTAMP_DAY_IS_ALWAYS_24H 如果設定,則日期上的算術運算始終使用每天 24 小時,可能不會保留時間(由於夏令時變化) |
54 | TIMESTAMP_INPUT_FORMAT 時間戳輸入格式 |
55 | TIMESTAMP_LTZ_OUTPUT_FORMAT TIMESTAMP_LTZ 值的顯示格式。如果為空,則使用 TIMESTAMP_OUTPUT_FORMAT。 |
56 | TIMESTAMP_NTZ_OUTPUT_FORMAT TIMESTAMP_NTZ 值的顯示格式。如果為空,則使用 TIMESTAMP_OUTPUT_FORMAT。 |
57 | TIMESTAMP_OUTPUT_FORMAT 所有時間戳型別的預設顯示格式。 |
58 | TIMESTAMP_TYPE_MAPPING 如果使用 TIMESTAMP 型別,則應將其對映到的特定 TIMESTAMP* 型別 |
59 | TIMESTAMP_TZ_OUTPUT_FORMAT TIMESTAMP_TZ 值的顯示格式。如果為空,則使用 TIMESTAMP_OUTPUT_FORMAT。 |
60 | TIMEZONE 時區 |
61 | TIME_INPUT_FORMAT 時間輸入格式 |
62 | TIME_OUTPUT_FORMAT 時間顯示格式 |
63 | TRANSACTION_ABORT_ON_ERROR 如果此引數為 true,並且在非自動提交事務中發出的語句返回錯誤,則非自動提交事務將被中止。在該事務內發出的所有語句都將失敗,直到執行提交或回滾語句以關閉該事務為止。 |
64 | TRANSACTION_DEFAULT_ISOLATION_LEVEL 啟動事務時未指定隔離級別時的預設隔離級別 |
65 | TWO_DIGIT_CENTURY_START 對於兩位數日期,定義世紀起始年。 |
66 | UI_QUERY_RESULT_FORMAT 用於將查詢結果序列化以傳送回 python 聯結器的格式 |
67 | UNSUPPORTED_DDL_ACTION 遇到不受支援的 DDL 語句時要採取的操作 |
68 | USE_CACHED_RESULT 如果啟用,則只要原始結果未過期,查詢結果就可以在相同查詢的連續呼叫之間重複使用 |
69 | WEEK_OF_YEAR_POLICY 定義將星期分配給年份的策略 |
70 | WEEK_START 定義一週的第一天 |