The Linux Foundation Projects
Delta Lake

在 Delta Sharing 上推出产品分析,携手 Kubit

作者:Stefan Enev

Kubit 是一个产品分析平台,旨在利用数据共享技术,并与 Databricks 的 Delta Sharing 团队紧密合作,创建无缝集成,帮助我们的客户充分利用 Delta Sharing 提供的一切。

为什么 Delta Sharing 对产品分析如此有益

让我们先简单介绍一下为什么 Delta Sharing 与产品分析如此契合,特别是与 Kubit 进行产品分析的方式。

在 Kubit,我们的许多客户都是拥有海量产品数据的企业,例如处理数 TB 甚至数 PB 流媒体数据的媒体、娱乐和电信公司。

传统的产品分析平台要求公司将数据发送到“黑箱”,在那里他们失去对数据的可见性,并最终支付双倍费用。这些平台无法应对当今企业正在处理的大规模且快速增长的数据集。

使用传统产品分析工具的公司面临的结果是:他们通常不得不将产品分析限制在抽样数据上。另一个问题是:将数据返回给产品团队的速度因必须运行批处理 ETL 作业而减慢。Kubit 使用 Delta Sharing 等数据共享技术,其安全的实时协议使得客户能够轻松、快速且经济高效地直接访问海量产品数据。所有这些都无需 ETL 和 SDK(软件开发工具包)的时间、复杂性和资金投入。

Kubit 拥有对数据共享的实时访问权限,并使用 Kubit 拥有并支付的完全独立的运行时环境(无服务器仓库)执行查询。没有复制任何字节的数据,客户无需担心计算成本或安全风险。

然而,Delta Sharing 对产品分析的优势远不止其值得信赖和实用的实时数据共享工作流带来的明显便利。

我将在下面更深入地探讨其中一些优势,并为那些尝试在 Delta Sharing + Kubit 上进行产品分析的人提供一些有用的提示。

充分利用 Delta Sharing + Kubit

Kubit 旨在鼓励自助服务分析,使产品和数据团队成员能够进行广泛的分析和探索,并轻松与产品、数据、营销和增长团队协作。

Delta Sharing 使这变得容易,并包含保持计算成本合理的特性。以下是其中一些:

获取无服务器仓库

自助服务分析中,查询往往会突发性执行,因此最好按需扩展计算资源。Delta Sharing 的无服务器计算允许您做到这一点。仓库启动时间非常快(2 到 5 秒之间),您还可以在一段时间不活动后自动暂停。这些功能对于管理成本大有帮助,因为您无需在不需要时为计算付费。

当然,您还可以调整标准控件以垂直扩展您的仓库(以处理计算成本更高的查询),并水平扩展(以允许更多并行查询)。

明智地使用分区

产品数据由基于事件和时间序列的数据组成,客户倾向于对其运行大量繁重的分析查询。鉴于表格通常非常大(许多 TB),您需要优化查询性能以降低计算成本并节省分析师宝贵的时间。

优化查询性能的第一个关键:明智地使用分区。我将解释如何做到这一点。Databricks 的存储层称为Delta Lake。本质上,它是一堆Parquet 文件,具有基于文件的事务日志和可伸缩的元数据处理。查询执行计划从表扫描开始,节省查询执行时间的一个重要方法是将扫描减少到尽可能少的文件。

当处理产品分析的时间序列数据时,按日期分区这些表是绝对必须的。即使是简单的查询,例如“告诉我昨天有多少独立用户与我的应用互动?”也可能最终进行全表扫描——如果您忘记添加日期分区。

我们的建议是还要考虑分区可能有所帮助的任何其他用例。例如,如果您有多个产品,并且大部分分析将仅限于单个产品,您还可以添加产品分区。

优化表

分区是减少扫描文件数量的一种方法。此外,您应该知道每个文件都有大量元数据与之关联,并且这些元数据也会被扫描。这就是 Delta Sharing 的OPTIMIZE发挥作用的地方。OPTIMIZE 允许您设置文件大小,并运行后台任务以将所有表文件优化到该大小。您有几个选项:

  • Bin-packing:在整个表上运行
  • Z-ordering:可以按计划增量运行。

不深入过多细节,Z-ordering 的增量特性通常非常适合大型表。

Delta Sharing 上产品分析的未来

考虑到当今企业中产品数据的现实——海量、快速增长和不断演变的数据集——使用数据共享技术的产品分析工具是唯一真正有意义的。

在 Kubit,我们对 Delta Sharing 的安全性和值得信赖的特性如何使企业实现仓库原生产品分析感到兴奋,快速实施让他们能够使用自己丰富的 数据模型。

如果您对如何使用 Delta Sharing 改进产品分析有任何想法,Kubit 团队很乐意听取您的意见。

Stefan Enev 是 Kubit 的创始解决方案工程师。您可以通过 stefan.enev@kubit.co 直接与他联系,您可以在 kubit.ai 了解更多关于 Kubit 的信息。