‧
阅读时间:9分钟
数据堆栈的隐藏成本
Metabase 团队
‧ 9分钟阅读时间
分享这篇文章
在此,我们列出维护数据堆栈相关的一些潜在成本,但不完整。我们所说的数据堆栈是现代数据堆栈,大致由以下部分组成:
- 数据源层(操作/生产数据库和第三方数据源)
- ETL层,将所有源数据整理到数据仓库中
- 存储层(数据仓库)
- 查询层(BI工具)
本文并非旨在引起恐惧、不确定性和怀疑(FUD),我们只是认为突出一些成本管理的机会是有用的。我们不按任何顺序列出这些成本,因为不同组织之间的成本规模会有所不同,因此您可以选择解决某些成本而忽略其他成本。我们将首先讨论问题领域,然后探讨您可以采取的不同方法来减轻这些成本。
隐藏成本
培训和学习的曲线
一个常被忽视的成本是您的堆栈工具将产生一些培训开销。或者,您为已经掌握某些工具或堆栈层的人员支付更高的薪水。这种开销特别适用于您的BI工具,因为BI工具——您数据堆栈的窗口——将拥有最大的用户群体,每个人的经验水平都不尽相同。
这里要强调的另一点是,学习曲线产生两种不同类型的成本。第一种成本是培训人员使用这些工具所需的时间,无论是通过 主动 培训(您与人员进行培训会议),还是 自主 培训,您期望人们阅读文档、弄清楚问题并通过实践学习。
第二种成本,采用失败,可能更为微妙:如果工具难以学习,人们将不会费心以使其高效的方式学习产品。或者,更糟糕的是,他们甚至不会尝试学习产品,最终您为一份产生零价值的许可证支付了费用。
迭代滞后
团队如何快速迭代自己的报告?也就是说,您多久可以基于新的信息(无论是来自市场的变化,还是您产品中的新事件)更新报告?
具体来说,我们指的是,对于您数据堆栈的每一次“构建”(这里我们谈论的是构建您数据仓库的ETL层),您都需要处理整个表,对这次构建进行更改的成本是非平凡的。
如果您在做出更改后,从分析这些数据的人们那里得到反馈,说某些数据看起来不对,或者您需要包含更多数据,那么在模型中添加或更改几个列可能会让您在工资和云费用上花费一笔可观的金额。
僵户ETL作业和报告
人们创建和安排报告。然后他们转向创建新的报告,并安排它们。他们停止检查旧报告,但旧报告仍然在运行,即使您雇佣了更多的人,他们创建了更多报告并安排了它们……问题是,大多数云数据库提供商按查询收费,因此您最终会为未充分利用的分析付费。
关键人物因素
虽然这不是数据团队特有的问题,但数据团队和团队孤岛在专家离开公司时容易发生“知识重置”。
缓存成本
缓存主要是节省成本的,但某些解决方案要求您在单独的数据库中缓存数据,然后对您收费。也许这个成本是值得的,也许不是。
缺乏可扩展性
BI工具应该能够与您的团队已经熟悉的工具很好地协同工作。例如,您可以使用Metabase来建模您的数据,然后让人们使用他们想要的任何工具来创建报告。如果某些人更习惯于电子表格软件,他们只需从Metabase导出数据,并在他们选择的电子表格软件中分析它,这完全没有问题。问题是当工具强迫您使用它们时。
维护多个数据来源
在多个地方存储相似的数据会导致两个问题:第一个问题是您可能会浪费时间去确定哪些数据可以依赖。第二个、相关且更具破坏性的问题是,您可能会基于错误或不正确的数据进行决策(错误意味着您应该使用其他、更相关的数据,不正确意味着数据本身是不准确或不完整的)。
账户层级调整
虽然是一个小问题,但仍然很麻烦。因为某些计划提供不同类型的账户,具有不同价格点上的不同能力,您必须处理如何分配这些能力。一些创作者许可证可能是一个基础账户的10倍,因此您必须花费时间去弄清楚谁可以获得许可证以及为什么,以及何时根据业务变化增加或减少许可证数量。
这些分层账户的另一个问题是,由于只有某些账户类型允许创建报告或进行更改,它们确保您在工作流程中建立了瓶颈(例如:即席请求队列)。
如何降低数据堆栈成本
以下是非详尽的一系列行动,您可以通过这些行动来减轻上述问题。每个建议都可以帮助减少上述列出的一项或多项成本。
使用不需要SQL查询数据的工具
你当然需要一个可以使用SQL的工具,但你也需要一种让不懂SQL的人也能与数据互动的方式。查询构建器越直观,人们学习BI工具的速度就越快,这意味着更多的人会真正地使用你付费的软件。
举办培训课程和数据共享
这些培训课程不必太正式。只需把人们聚集在一起,让他们通过创建与他们相关的仪表板来学习。一旦人们掌握了工具,并了解数据在哪里,你只需要为新员工举办培训课程。
你不仅要培训工具的使用,还要向人们展示他们可以访问哪些数据以及在哪里。如果工具足够好,它应该有大量的文档和学习资源。但如果人们不知道在哪里找到与他们领域相关的数据,这些知识就浪费了。
记录你的数据
说到培训:数据文档是你们公司核心基础设施的一部分,但,好吧,祝你好运。除非你分配人员来做这件事,否则你的数据可能无法得到记录;也就是说,你需要为这项工作创建工单并真正完成它。如果你还没有资源来做这项工作,你可以尝试一些强制措施,至少可以让一些数据得到记录。例如,你可以在团队或公司会议上轮流突出显示某些模型或报告,这样可以激励人们真正地把东西写下来(例如,填写列描述,为仪表板添加上下文等)。记录数据可能看似艰巨,但每一小步都很有帮助,这些文档将在知识共享、入职和决策方面带来回报。
定期修剪计划内的报告
一些工具带有审计工具,可以告诉你计划内的报告运行频率。如果你怀疑人们没有查看某些报告,就将其存档并看看是否有人抱怨。即使他们确实抱怨,你也可以和他们谈谈减少报告运行频率,或者完全关闭报告,只需在需要时运行即可。
使构建、维护和修改模型更容易
让每个团队都能够维护自己的数据集。这些团队了解数据描述的领域,因此他们能够很好地判断哪些数据是相关的,哪些不是。
这里有一个有用的区分:基础模型和报告模型之间的区别。
理想情况下,你有一套基础模型:由数据团队、分析师或工程师整理的相对原始数据。这些模型中的数据是清洁和正确的,但尚未针对特定领域进行整理。这些模型的更改应该是偶尔的,因为它们可能很昂贵。
报告模型是下游模型,团队可以构建和更新这些模型来回答他们需要回答的问题。这些模型轻量级且灵活。它们更容易制作,虽然可以由分析师验证,但它们不是由分析师控制的。
这一部分值得一篇完整的文章,所以我们现在就到这里。
避免具有分级账户的工具
如果你想限制谁可以做什么,那应该是权限问题,而不是定价问题。我们(Metabase)采用分级产品模型(免费版 vs 企业版/专业版)的原因之一是我们认为账户分级模型很烦人。Metabase在这里并不是独一无二的,但总的来说,如果你避免使用不让你确定哪些人需要支付更多费用的软件,你将承担更少的开销。
分散你的数据团队
如果你有一个深厚的数据人才库,就将分析师嵌入到团队中,以发展领域专业知识,并帮助团队学习如何自己创建报告。理想情况下,数据分析师应该像撰写自己的报告一样,教授和审核他人的报告。
谨慎升级(或者让别人帮你升级)
只有在你能够从新功能中受益时才升级工具。或者(更好)通过将升级外包给服务来降低风险和节省时间。如果出现问题,这不是你的问题。