apache kylin容错

dauxcl2d  于 2021-05-30  发布在  Hadoop
关注(0)|答案(2)|浏览(476)

apachekylin看起来是一个很好的工具,可以满足很多数据科学家的需求。这也是一个非常复杂的系统。我们正在开发一个内部解决方案,其目标完全相同,即具有低查询延迟的多维olap多维数据集。在众多问题中,我现在最关心的是容错问题。对于大量传入的事务数据,必须以增量方式更新多维数据集,并且一些多维数据集会在很长一段时间内进行更新,例如那些具有以年为单位的时间维度值的多维数据集。在如此长的一段时间内,复杂系统的某些部分肯定会失败,而系统如何确保所有原始事务记录只聚合到长方体中一次,不多不少?即使每个片段都有自己的容错机制,但这并不意味着它们会自动一起播放。为了简单起见,我们可以假设所有的输入数据都由另一个进程保存在hdfs中,并且可以以任何方式“回放”您想要从任何中断中恢复的数据,无论是自愿的还是被迫的。kylin的容错考虑是什么,或者这不是一个真正的问题?

3vpjnl9f

3vpjnl9f1#

注:我是apachekylin的共同创建者和提交者。
容错点是一个非常好的点,当它们有非常大的数据集时,我们实际上会从某些情况下被问到这一点。重新开始计算将需要巨大的计算资源、网络流量和时间。
但从产品的Angular 来看,问题是:在精确结果和资源之间,哪个更重要?对于事务数据,我认为确切的数字更重要,但是对于行为数据,它应该是好的,例如,distinct count值现在是kylin中的近似结果。这取决于什么样的情况下,你会利用Kylin来满足业务需要。
将把这个想法到我们的积压工作,并将更新到Kylin开发邮件列表,如果我们有更明确的线索,这稍后。
谢谢。

but5z9lq

but5z9lq2#

存在数据故障和系统故障。
数据容错:kylin将多维数据集划分为多个段,并允许在不影响整个多维数据集的情况下重建单个段。例如,假设在每日的基础上建立一个新的每日段,并在周末合并为每周段;周段合并成月段,以此类推。当一周内出现数据错误(或任何更改)时,只需重建一天的段。再往后的数据更改将需要重新生成每周或每月的数据段。
分段策略是完全可定制的,因此您可以平衡数据错误容忍度和查询性能。更多的段意味着对数据更改的容忍度更高,但也意味着对每个查询执行更多的扫描。kylin提供restfulapi,外部调度系统可以调用该api来触发段构建和合并。
多维数据集仍处于联机状态,并且可以在其某些段正在重建时提供查询。
系统容错:kylin依靠hadoop和hbase实现大多数系统冗余和容错。除此之外,kylin中的每个构建步骤都是幂等的。这意味着您可以安全地重试失败的步骤,而不会产生任何副作用。这确保了最终的正确性,无论构建过程经历了多少次失败和重试。
(我也是ApacheKylin的共同创建者和提交者:-)

相关问题