|
1.数据方面:如何进行模型分层?一般模型分层计算程序,以哪种语言为主?(请说出此种语言在数据架构方面较于其他语言的优势又哪些?)
从数据仓库 或 大数据平台 的角度来讲,数据的分层,大体有两种思路:
a) 基础数据层:主要避免后续数据应用层的大变更。一般面向各业务系统或数据源集,利用业界较为先进的数据模型(如FS-LDM),
按数据的特性(即数据驱动)进行数据的整合,以形成相对稳定的基础数据模型层。
b) 应用数据层:一般是面向各应用需求 或 业务用户,利用业界较为合理的数据模型理念(如星型\维度模型),
按需求的要求(即需求驱动)进行数据的分布,以形成统计方便、展示友好、满足需求的应用数据模型层。
在数据流向 或 数据处理的过程中,所使用到的语言或方式可能更多的是以下两大类:
a) 基于传统数据库:大多采用ETL的方式,进行数据的抽取、清洗、整合;这中间,可能会利用到类似DataStage,Kettle等工具,
用得最多的,可能就是各数据库提供的SQL语言了,SQL语言使用简单、方便、学习门槛较低,且易于掌握。
b) 基于大数据平台:大多采用的开源的工具 或 语言,如Hive, Hbase , Spark,Python等。这里面,可能使用更多的是Hive 与 Python,
这两个工具学习简单,易于掌握,并且,进行数据处理时,也更直观、方便。
2.架构方面:在架构过程中,一般以7点展开,如:
a. 存储和计算都基于HIVE;
b. GREENPLUM作为HIVE的“cache”存在,供用户做一些小数据的快查询,报表存储;
c. 调度:和canaan框架进行整合,支持用户快速新增任务,并自动导入任务依赖;
d. 主数据:保存了数据仓库元数据信息,供用户查询和系统内部各个模块交互;
e. ACL:构建了数据仓库数据访问权限控制,包括用户权限申请、审批者审批、数据赋权等;
f. 传输;
g.监控:由于任务数量增长较快(2000+),运维已经是个问题此外,需花了较大精力做了可视化的工作:
您的工作,主要涉及以上哪几点?在架构过程中遇到的难点有哪些?
架构方面,所列的7点,说实话,有点乱,从楼主的思路来看,可能是想了解以下的四大类:
a) 大数据的计算处理
b) 数据治理
c) 数据安全
d) 系统监控
首先,我不认为Hive是一个数据库,我认为Hive是一个类似传统数据库的SQL引擎的工具,虽然Hive有自带的元数据存储库,但这个库里面,
也只是存放了Hive工具为完成用户提交的请求而必须要的Hadoop的元数据信息 及两者的映射关系数据;并没有存放用户的任何数据,用户的
数据还是存放在Hadoop或Hbase等文件系统或数据库中。
关于作业的调度,可能各家企业,都会跟据自身的需求,自行开发 或 购买成熟的工具,比如:Control-M.
关于数据治理:这是一个很大的话题,主要包括:元数据管理,主数据管理,数据标准,数据质量及检查 等几大主题。
关于数据安全:权限体系依然是核心,审计是必要的手段。
关于系统监控:系统的稳定运行,离不开完善的监控体系,而且监控必须实时、并具有预测性。
其实,在这些工作中,最具难点的是:数据治理 与 系统监控 这两块。
数据治理涉及面较广,牵涉人员较多(有IT,也有业务人员),沟通较为复杂,责任较难厘清。
系统监控主要是预测性与实时性较难实现,预测性主要是人员的经验的体现 及 对业务系统的运行情况的掌握。
而实时性主要是实施系统监控的工具本身可能就不具备实时性的性能及特性,总是只能达到一个准实时。
3.数据应用:数据一般以哪种形式,呈现给用户?技术上是通过哪些策略实现?
数据应用主要分成两大类:
a) 面向业务人员:一般是自行研发一个界面美观的WEB应用,调用业界成熟的工具(如MSTR,COGNOS)的API,实现数据展示给终端用户进行查看。
b) 面向IT专业人员:一般是直接从数据库/文件系统中,借助SQL或其它的开源工具,直接查询、统计、分析、挖掘;这样会更直接、更方便。
---------------------------
以上仅个人观点
|
|