❓背景
想业余时间做点数据分析研究,那首先需要个能计算与存储数据的方案。
买个云RDS似乎是个不错的选择,扫视一圈几家公有云,太低配置的rds买来算力不太够,太高的rds费用有点高,一年动辄大几千至上万。
当然还有喜欢DIY的方式,自己买几台ECS服务器搭建开源hadoop生态离线仓库方案(hdfs+MapReduce+Hive),这种价格比RDS还贵,最起码准备3台计算与存储节点,4c16G低配版本,一年也要几万,要是还想上点spark或者flink,那这个费用八成一般人玩不起。
考虑到建设的数据平台,最好还需要能方便我搭建各层的数据,ods/dwd/dws/ads等层物理模型,看了下最终还是选择阿里云的dataworks,按量计费的方式确实很符合穷配数据平台。
😎 千元方案说明
1.外部数据源采集
建立低规格资源版本rds作为采集源落地存储,费用在1000元/年。
- datastudio-数据集成
数据集成需要采购独立的ECS调度资源,最小配置需要购置4C8G,该费用最低为每月350,一年需要3800左右。
利用函数计算可以将采集任务以极低的成本灌入到源库中,再通过使用数据集成服务,可以周期性地将外部数据自动灌入MaxCompute中。(当然如果Dataworks能内置函数计算3.0版本就更好了,目前仅支持函数计算2.0版本,还未成功打通,假象如果能通过内置Dataworks的内置函数计算,也许能直接将数据灌入MaxCompute中,而砍掉这技术集成独立调度资源的费用;又或者Dataworks能更贴心提供按量计价的调度资源方案,这样对小型数据仓库就更友好了)
- datastudio-Maxcompute
MaxCompute负责建立数据仓库中各层物理模型与计算任务,使用类Python Spark语言有更高的定制性,对处理逻辑可以进行更复杂的计算;而使用ODPS sql则更简单,适用于处理逻辑较为简单的数据处理业务。
使用Datastudio的另外好处是可以方便建立任务之间的血缘依赖,使任务DAG搭建起来更容易,而类似开源Airflow之类组件,你还需要进行少量编码才可以实现,也需要额外的运行资源与运维投入。
完成数据任务开发后,需要通过运维发布手段将任务发布至线上,dataworks中的运维中心可以很方便看到周期性任务和手动任务执行的情况,也可以很方便进行指定日期的补数据操作。
最后完成分析的数据结果可以在dataworks的数据地图中方便查看到所有数据资产,预览数据资产的数据条目
- dataworks-数据服务
最后就是基于分析后的数据建立API服务,这块也不用从源码级别开发API服务,只需要通过数据服务就可以将指定数据集暴露成标准API(包括带分页和搜索能力),更复杂的API能力支持,数据服务就不能很好支持了,可以考虑借助函数计算与API网关快速搭建对外服务,也比自建API系统性价比高。
当然数据服务目前支持的数据库类型,不包括MaxCompute,所以还需要利用数据集成将分析结果导出到RDS中,或者其他如下图所示的(选Mysql是因为便宜)
- vercel-免费构建&部署vue可视化前端
最后就可以利用Vue或者React开发一个可视化的前端来呈现所分析的各种数据了,这是最终效果。
- 数据列表效果
- 详情分析效果
🌱 总结
💹 全部费用算下来,其实每个月不超过450,大头都被数据集成的独立资源调度占用了,其他函数计算和MaxCompute 计算与存储每月费用不超过100。
🍮 这是个股票数据分析的开始,后续将针对各种数据开启股票价值研究,构建些更有趣的数学模型来评估股票所属的公司情况!