暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

现代数据技术栈中性价比

老阎杂货铺 2022-07-25
680


本文是计划在medium发表的文章的中文版本。非常高兴的是我月初写的一篇文章在medium上获得了1600的阅读量,给我们产品带来了超过50个网站访问。对于内容市场来讲,我相信长期坚持会带来持久的收益。




最近在数据技术领域,现代数据技术栈变得越来越被更多的企业所采纳。在Reddit上的dataengineer的subreddit上,有不少关于现代数据技术栈中一些技术的讨论。


现代数据技术栈之所以被更多的企业所采纳,主要有如下的几个原因:

  • 现代数据技术栈运行在公有云上,开通就能使用,大大降低了使用的技术门槛

  • 现代数据技术栈在数据生命周期的每个环节都有不同的产品可供客户选择,客户不需要像传统数据技术栈一样要购买一个完整的套件,只需要根据自己的需求进行选择。

  • 现代数据技术栈产品都是为了最终用户使用所设计的,用户只要懂SQL,就能使用现代数据栈中大部分的产品。

  • 现代数据技术栈的主要产品都是采用了用量或者按照席位的定价模式,客户采用现代数据技术栈不用一开始就需要付出上百万美金的采购费用。而且很多产品提供了Freemium或者Free Trail方式,让客户可以先免费使用产品,然后再根据需求采购。

    现代数据技术栈这些优点,让更多的中小型的客户可以非常方便的通过组合不同的产品,相对低成本的实现数据驱动,从而成长为一个数据优先的企业。不过,随着企业使用数据的场景越来越多,如何能够更有性价比地使用现代数据技术栈中的产品,就变得越来越重要。


    在Reddit的dataengineer社区中,经常可以看到有不少用户反馈自己企业在云端数据仓库付出的费用越来越高。现代数据技术栈在企业非常高频使用数据的时候,也给企业带来了越来越多在数据技术栈上的开销。那么,在使用现代数据栈的时候,有没有更具备性价比的方案选择呢?下面我们就来盘点一下。


    数据接入和集成

    数据接入是现代数据技术栈中使用数据的第一个环节。采用现代数据技术栈的企业一般的数据来自一些SaaS系统、数据库或者一些csv等数据文件。把这些数据从不同的数据来源接入到一个中心存储是使用数据的第一步。在现代数据技术栈中,数据接入和集成可选的服务有Fivetran,Airbyte,Stitch,Dataddo。我们分别看一下几个产品的特点以及适应的场景。

    Fivetran

    Fivetran在数据集成方面是最为成熟的一个产品,目前有超过160个数据连接器,基本上所有的主要的数据源都能连接。Fivetran提供14天的免费试用,注册开通后就可以进行试用。利用Fivetran进行数据集成的配置使用起来比较简单,用户非常容易的可以去配置自己的数据源连接。

    Fivetran在试用结束后,就需要付费使用了,具体的价格计划如下:

    Fivetran的收费采用的是按照MAR进行按量收费。最低档每个月60美金,适合同步数据量每个月不超过50万MAR的客户。Fivetran自己不提供数据存储,因此用户需要购买对象存储或者数据库、数据仓库来让Fivetran将数据传输到目标存储中。


    AirByte

    AirByte是开源的数据集成产品。因为是开源,因此AirByte让客户可以自己实现针对自己数据源的数据连接器。从数据连接器方面,AirByte比Fivetran可以支持更多的数据源。不过由于AirByte成立的时间远远晚于Fivetran,因此很多连接器还处于测试阶段。作为开源产品,企业客户可以自己安装、部署Airbyte来实现数据集成。不过对于中小型企业来讲,自己维护一个数据集成服务并不是一个合适的选择。Airbyte也提供基于公有云的版本,公有云的收费价格体系与Fivetran有一定的区别。在公有云上,只有两种价格方案可以选择:

    第一种方案是采用credit方式,一个credit为2.5美元。每一个Credit,在不同场景可以完成的事情不同:

    我们可以看到Airbyte是按照同步所用时间进行计费的。假定我们同步的都是API类型的增量数据,如果Airbyte每个月同步50万条数据,大约总花费1.5 hour,总花费大约4美元。因此对于纯粹增量数据同步来讲,AirByte的花费会远远低于Fivetran。但是如果同步数据库数据,并且数据库中很多都是有更新的情况下,企业则需要比较详细的计算,看看是采用Airbyte还是用Fivetran了。不过如果企业有Fivetran不支持的数据源,采用Airbyte则是更灵活的选择。从产品易用性方面,Airbyte配置一个连接器也比较简单,并且在网站上有详细的指引。


    SticthData

    StitchData是另外一个进行数据接入的产品,已经被Talend收购。相对Fivetran和Airbyte,Stitch支持的数据源要少一些。在价格方面,Stitch的计价方式如下:

    StitchData也支持免费试用,但是试用结束后的最初的版本价格为100美金每个月,使用量为500万行。从这个定价看,Stitch更适合数据同步规模比较大的用户,规模比较大的时候,stitch同步一条数据的价格比Fivetran低,但是比AirByte更高。但是如果中小企业,每月同步的数据量比较小,Stitch不是一个合适的选择。


    Dataddo

    Dataddo支持数据集成,并且支持数据集成直接到报表。对于想要把数据从原始数据直接到报表的场景,采用Dataddo可以不用把数据从数据源集成到数据湖或者数据仓库,集成到Dataddo中就可以看报表。因此Dataddo比较适合从数据源直接看报表的中小客户。但是Dataddo的数据连接器对比Fivetran,Airbyte都更少,比如没有amplitude数据。如下是Dataddo的定价:

    Dataddo标准版本35美金一个月,没有声明同步数据量的限制。对于有一定数据量,有比较在意价格的客户,可以尝试Dataddo.


    数据湖和数据仓库

    数据湖和数据仓库是现代数据技术栈的核心,包括最近几年投资火热的湖仓一体。考虑到成本因素,可以把对象存储当作数据湖,主要负责数据的存储。其余的数据仓库和湖仓一体,我们统一称之为云端数据仓库。


    如果数据使用的场景不是很固定,数据被集成后存储的最低成本的目的地是对象存储。如下是AWS S3存储的报价:


    我们可以看到1G数据每个月的存储成本不到0.03$,Google Cloud和Azure Object Storage的价格都与aws的S3差不多。中小企业的数据规模一般都不大,因此存储到对象存储方便后续使用是一个非常合适的选择。


    数据存储到数据湖中虽然存储便宜,不过要使用数据湖中的数据,就需要支持对象存储的数据进行计算的工具。我们这里只考虑云中立的产品,Snowflake, Databricks,Starburst以及QuickTable都支持直接访问对象存储进行数据的计算。


    Snowflake

    作为最为普及的云数据仓库,snowflake已经被非常多的企业客户所采纳。Snowflake支持将对象存储作为外部存储去访问对象中的数据,并且进行数据的查询和分析。下面我们来看看Snowflake的价格:

    在Snowflake当中,计算是用credit来进行价格计量。最便宜的标准版每个credit的价格是2美金。Snowflake根据不同的计算资源以及使用时长来进行计费。对于一个XS的机器,如果运算一个小时,则算作1个credit。其中Snowflake的最小计费单元为分钟,如果计算时间小于1分钟,则按照一分钟计算。

    Snowflake通过方便的SQL支持能力,让用户可以非常方便地进行即时的数据计算和探索。但是Snowflake的计价方式,对于数据规模不大,但是很多临时场景的计算需求却非常的不划算。如果一次计算仅仅花费1秒,在snowflake中也会当作1分钟。如果非常多的基于snowflake的即时探索性的计算需求,就会让企业的花费非常的大,这也让如何优化在snowflake上使用变成了企业的一个非常重要的任务。


    Databricks

    Databricks作为湖仓一体提供商,可以非常方便的访问对象存储中的数据并且完成数据的处理和计算。而且因为技术实现原理的不同,Databricks相对于snowflake,能够处理数据的能力更强。对于很多SQL不方便处理的数据,Databricks都可以比较轻松的通过python来实现。作为snowflake的竞争对手,databricks采用了DBU(Databricks Unit)来进行价格计算。价格表如下:


    通过Databricks的计算器,轻量级任务每个小时基本上的花费是0.028美元。我们团队做过的一些测试,同样的数据以及差不多的计算任务,整体花费Snowflake和Databricks比较接近。


    Starburst

    Starburst是开源项目Trino的商业化公司,支持跨多种数据源的数据计算和访问,因此可以非常好的访问在对象存储上的数据并完成数据处理和计算。Starburst也是采用了类似于Snowflake的计价方式,采用credit进行价格计量。

    Starburst的计价单元与snowflake也一样,最小的计价单元是分钟。从这个角度来讲,估计同样的类型的任务,在Starburst和snowflake的花费应该也差不多。对于数据规模不大,高频场景的短时长的计算任务,Starburst与snowflake一样也是成本比较高的。由于Starburst支持数据存放在不同的存储中的计算,因此如果一个企业的数据存放在不同数据存储中需要进行统一计算,Starburst就是一个非常合适的选择了。


    QuickTable

    QuickTable是一个基于表格进行数据转换和建模的平台。不同于其他的数据建模工具,QuickTable本身包括一个内存引擎,可以直接从对象存储中读取数据,在自己的内存中进行数据的处理和计算。对于百万行级别,1G以内的数据,QuickTable可以实现交互式的操作。因此对于数据规模不大,但是很多数据探索式的加工,QuickTable是个非常不错的选择。由于QuickTable是个无代码平台,因此用户不需要写SQL和python代码就能完成数据处理计算。不同于前面提到的几个数据仓库平台,QuickTable的收费模式采用的是按照席位进行收费,如下图:

    目前QuickTable还处于免费阶段,Pro版本的收费是58美金/月。如果一个中小型企业,数据规模不是很大,但是有很多即时性的基于数据的处理,用QuickTable将会是一个比较有性价比的选择。


    本篇文章我们主要介绍了现代数据技术栈中数据集成和数据处理方面的一些产品以及在不同场景的产品的选择。后边我们会继续介绍数据建模和转换、数据流调度以及BI方面的一些选择。



    文章转载自老阎杂货铺,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

    评论