- 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 定义一周的第一天 |