- BigQuery教程
- BigQuery - 首页
- BigQuery - 概览
- BigQuery - 初始设置
- BigQuery与本地SQL引擎
- BigQuery - Google Cloud Console
- BigQuery - Google Cloud 层级结构
- 什么是Dremel?
- 什么是BigQuery Studio?
- BigQuery - 数据集
- BigQuery - 表格
- BigQuery - 视图
- BigQuery - 创建表格
- BigQuery - 基本Schema设计
- BigQuery - 修改表格
- BigQuery - 复制表格
- 删除和恢复表格
- BigQuery - 填充表格
- 标准SQL与传统SQL
- BigQuery - 编写第一个查询
- BigQuery - CRUD操作
- 分区和聚类
- BigQuery - 数据类型
- BigQuery - 复杂数据类型
- BigQuery - STRUCT数据类型
- BigQuery - ARRAY数据类型
- BigQuery - JSON数据类型
- BigQuery - 表格元数据
- BigQuery - 用户自定义函数
- 连接外部数据源
- 集成计划任务查询
- 集成BigQuery API
- BigQuery - 集成Airflow
- 集成连接的表单
- 集成数据传输
- BigQuery - 物化视图
- BigQuery - 角色和权限
- BigQuery - 查询优化
- BigQuery - BI引擎
- 监控使用情况和性能
- BigQuery - 数据仓库
- 挑战和最佳实践
- BigQuery资源
- BigQuery - 快速指南
- BigQuery - 资源
- BigQuery - 讨论
BigQuery标准SQL与传统SQL
虽然SQL没有像Python(或任何其他脚本语言)那样的底层依赖关系,但是您选择的BigQuery SQL版本之间存在差异。
由于Google Cloud Platform认识到开发人员熟悉不同的SQL方言,因此他们为那些可能习惯于使用更传统或“传统”SQL版本的人提供了选择。
标准SQL和传统SQL之间的区别
标准SQL和传统SQL之间的主要区别在于类型映射。虽然传统SQL支持与通用数据类型更紧密匹配的类型,但标准SQL类型更特定于BigQuery。例如,BigQuery标准SQL支持的时间戳值的范围要窄得多。
其他差异包括 -
- 使用反引号而不是方括号来转义特殊字符。
- 表引用使用冒号而不是点。
- 不支持通配符运算符。
在BigQuery SQL环境中切换标准SQL和传统SQL非常简单。在编写和执行SQL查询之前,只需在第1行添加注释:“#legacy”。
BigQuery标准SQL的优势
与派生的传统SQL方言相比,标准SQL使SQL开发人员能够以更高的灵活性和效率编写查询。标准SQL通过提供在处理专业环境中遇到的“杂乱”数据时有用的函数和框架,提供了更多“现实世界”的实用程序。
标准SQL促进以下方面 -
- 更灵活的WITH子句,使用户能够在脚本中多次重复使用子查询和CTE。
- 可以用SQL或JavaScript编写的用户自定义函数。
- SELECT子句中的子查询。
- 相关子查询。
- 复杂数据类型(ARRAY和STRUCT类型)。
标准SQL和传统SQL之间的不兼容性
通常,标准SQL和传统SQL操作之间不兼容的情况不会导致很多问题。但是,有一种情况适用于AirFlow用户。
如果使用BigQueryExecuteQuery操作符,则可以指定是否使用传统SQL。要使用标准SQL,请设置“use_legacy_sql = FALSE”。
但是,如果开发人员未能执行此操作并使用仅与标准SQL兼容的函数,例如TIMESTAMP_MILLIS()(一个时间戳转换函数),则整个查询可能会失败。
广告