‧
9 分钟阅读
数据堆栈的隐藏成本
Metabase 团队
‧ 9 分钟阅读

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