- BigQuery 教程
- BigQuery - 首页
- BigQuery - 概览
- BigQuery - 初始设置
- BigQuery 与本地 SQL 引擎
- BigQuery - Google Cloud Console
- BigQuery - Google Cloud 层级结构
- 什么是 Dremel?
- 什么是 BigQuery Studio?
- BigQuery - 数据集
- BigQuery - 表
- BigQuery - 视图
- BigQuery - 创建表
- BigQuery - 基本模式设计
- 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 - 用户自定义函数
BigQuery 的优势之一是能够创建自定义逻辑来操作数据。在像Python这样的编程语言中,开发人员可以轻松地编写和定义函数,这些函数可以在脚本中的多个位置使用。
BigQuery 中的持久用户自定义函数
许多SQL方言,包括 BigQuery,都支持这些函数。BigQuery 将其称为持久用户自定义函数。它们简称为 UDF(用户自定义函数)或 PUDF(持久用户自定义函数)。
用户自定义函数的本质可以分为两个步骤 -
- 定义函数逻辑
- 在脚本中使用函数
定义用户自定义函数
定义用户自定义函数从一个熟悉的 CRUD 语句开始:CREATE OR REPLACE。
在这里,而不是使用 CREATE OR REPLACE TABLE,需要使用 CREATE OR REPLACE FUNCTION 后跟AS()命令。
与可以在 BigQuery 中编写的其他 SQL 查询不同,在创建 UDF 时,需要指定输入字段和类型。
这些输入的定义方式类似于 Python 函数 -
(column_name, type)
为了查看这些步骤的组合,我创建了一个简单的临时 UDF,由 TEMP FUNCTION 指定,它根据用户输入解析各种 URL。
创建上述临时函数的步骤如下 -
- CREATE TEMP FUNCTION
- 指定函数名称 (get_sitetype)
- 指定函数输入和类型 (inp_url, STRING)
- 告诉函数返回什么类型 (STRING)
REGEXP_CONTAINS() 函数搜索包含提供的 URL 字符串的字符串的匹配项。NET.HOST() 函数从输入 URL 字符串中提取主机域名。
将其应用于 hacker news 数据集(BigQuery 公共数据集),我们可以生成一个将存储的 URL 分类为不同媒体类别的输出 -
注意 - 临时函数必须紧跟在查询后面。
广告