IP 函数正式发布,为湖仓带来高性能网络分析

IP 函数正式发布,为湖仓带来高性能网络分析

💡 原文英文,约1300词,阅读约需5分钟。
📝

内容提要

Databricks 正式发布原生 IP 函数,使 IP 地址分析成为湖仓上的高性能 SQL 工作负载。此前处理 IP 和 CIDR 需依赖正则、位运算或 UDF,性能差且难维护。新函数原生支持 IPv4/IPv6、CIDR 包含判断和范围连接,可加速威胁检测与网络可观测性,成本比传统仓库低 2 至 6.4 倍。

🔎

延伸解读

从变通方案到原生支持:IP 分析的工程痛点

文章指出,过去在 SQL 中处理 IP 地址需要依赖正则解析、手动位运算、自定义 UDF 或外部管道预展开 CIDR 等变通方案。这些方案各有代价:正则慢且对 IPv6 易出错,位运算 SQL 可读性差,UDF 会阻碍向量化和查询优化器,外部管道增加维护负担,而直接放弃 IPv6 则会遗漏大量现代流量。原生 IP 函数将这些模式统一为引擎内置能力,使 SQL 分析师无需编写过程式代码即可完成 IP 过滤与关联。

性能与成本:基准测试揭示的规模边界

Databricks 对 ip_cidr_contains 进行了五组基准测试,覆盖从 1000 万探针对 1000 个 CIDR 块,到 100 亿探针对 100 万个 CIDR 块等场景。结果显示,当探针超过 100 亿 IP、CIDR 块超过 100 万时,查询速度开始趋于平缓。成本方面,即使负载规模扩大,Databricks 仍比传统仓库便宜 2 至 6.4 倍。这些数据为评估该功能在超大规模网络分析中的性价比提供了参考。

实际应用:客户如何落地网络可观测性

文章引用了 Rearc 和 Stanby 的实践。Rearc 为一家大型金融机构构建的产品每天处理超过 30TB 数据,通过原生 IP 函数直接在 SQL 中解析、验证和关联 IP 数据,替代了之前的临时实现,兼顾了性能与可维护性。Stanby 则利用这些函数摆脱了脆弱的字符串解析和手动位运算,将网络监控工作负载与湖仓上的其他数据统一运行。这些案例表明,原生 IP 函数能帮助团队简化网络分析交付。

可用性与迁移考量

原生 IP 函数现已正式发布,适用于 Databricks Runtime 18.3 及以上版本。函数集涵盖解析、规范化、CIDR 检查、表示转换以及安全变体(try_ 前缀),并支持 IPv4 和 IPv6 的 STRING 与 BINARY 表示。对于考虑迁移的团队,需注意运行时版本要求,并评估现有 UDF 或外部管道与原生函数的兼容性。文章未提及具体定价或迁移工具,实际采用时建议参考官方文档进行测试。

❓

Q&A

Databricks 的 IP 函数是什么?它主要解决什么问题?

Databricks 的 IP 函数是一组原生内置的 SQL 函数,用于在湖仓上直接进行高性能的 IP 地址分析。它解决了以往处理 IP 和 CIDR 时需要依赖正则表达式、位运算或自定义 UDF 所带来的性能差、难以维护、容易出错等问题,使 IP 分析成为湖仓上的一等 SQL 工作负载。

IP 函数支持哪些 IP 地址格式和操作?

IP 函数统一支持 IPv4 和 IPv6,接受人类可读的 STRING 和紧凑的 BINARY 两种表示形式,并原生理解 CIDR 表示法。具体操作包括:CIDR 包含判断(ip_cidr_contains)、解析与规范化(ip_host、ip_cidr)、检查 CIDR(ip_network、ip_network_first、ip_network_last、ip_prefix_length、ip_version)、表示转换(ip_as_binary、ip_as_string)以及针对脏数据的安全变体(try_ip_host、try_ip_cidr、try_ip_as_binary、try_ip_as_string)。

使用 IP 函数进行网络分析相比传统方法有哪些性能优势?

IP 函数在引擎内实现,优化器和 Photon 可以加速它们,因此性能远优于传统方法。基准测试显示,即使探测表超过 100 亿 IP、块表超过 100 万 CIDR,查询速度仍保持稳定,且成本比传统仓库低 2 倍至 6.4 倍。

IP 函数如何帮助进行威胁检测和网络可观测性?

IP 函数可以快速解析、丰富和分析海量 IP 数据,例如将原始网络流日志与威胁情报和地理 IP 表进行连接,识别扫描大量目标和端口的可疑源网络。通过 ip_cidr_contains 优化的范围连接,能够高效检测单个 IP 或子 CIDR 是否位于大范围 CIDR 内,从而加速威胁检测、欺诈调查和网络监控。

IP 函数在哪些 Databricks 运行时版本中可用?

IP 函数已正式发布(Generally Available),在 Databricks Runtime 18.3 及以上版本中可用。

IP 函数如何简化 SQL 中的 IP 数据处理?

IP 函数让用户可以直接用 SQL 表达 IP 和 CIDR 操作,无需自定义 UDF、正则表达式或整数位运算。它们与 SQL 自然组合,所有 SQL 用户无需设置即可使用,优化器也能理解这些函数,从而写出更简洁、可维护且高性能的查询。

🏷️

标签

➡️

继续阅读