精华内容
下载资源
问答
  • .NET 数据访问架构指南

    千次阅读 2007-04-17 23:42:00
  • 发布FrameCountry数据访问架构1.0.0

    千次阅读 2007-06-18 09:57:00
    大大小小的系统参与了一些,各式各样的编程语言也接触了一堆,杂七杂八的工作,性格迥异的业主,不停的在折腾,只是这段时间才静下心来整理自己的心情,总结以前的工作经验,推出自己的FrameCountry数据访问架构。...

      从毕业开始就从事软件行业的开发工作,大大小小的系统参与了一些,各式各样的编程语言也接触了一堆,杂七杂八的工作,性格迥异的业主,不停的在折腾,只是这段时间才静下心来整理自己的心情,总结以前的工作经验,推出自己的FrameCountry数据访问层架构。
     最早有想法要设计一套这样的架构还是在2年前,当时自己接触了一个Java语言开发的类似程序,是另外一个团队使用的,觉得很有意思,所以就自己照着写了一个.Net的程序,那个时候起名叫FrameState(为了统一使用Town、Bridge、Ship等类似的文字才改名为FrameCountry),实现了那个Java程序的大部分功能,随着后期项目的应用,FrameCoutry架构也不断的扩充,逐步形成了今天对外公布的这个版本。FrameCountry架构基本满足了开发人员的数据库操作要求,并且经过了几个项目的实际测试,也希望有更多的人参与使用。
     一直以来觉得一个好的程序员应该是“大脑勤快,身体懒惰”的人,为了让身体少做苦力就不停的想办法提高效率,将复杂的工作尽可能的简化,降低劳动的强度,低到“Ctrl+C/Ctrl+V”就可以解决掉大部分问题。这个FrameCountry架构就是在这样的思想动力下完成的,就算不能助人,至少也可以让大家作个参考,和朋友们多交流,总归不是坏事。


    邮箱:zh.li@vip.sina.com
      QQ:42270101
    博客:http://blog.csdn.net/lizheng82


                                               李峥
                                        2007-6-17

     

    一、FrameCountry数据访问层架构

             FrameCountry是采用.Net的开发平台,专注于数据库访问层功能的架构系统,为用户提供便捷、规范、强大的功能,提升开发效率。

    多层架构设计图

     

    Ø         表示层
    完成操作用户的人机界面,呈现数据外观、实现操作步骤、约定简单数据规则等内容;
    Ø         业务层
    处理表示层传递的用户操作信息(FrameShip对象),对数据访问层提出数据处理申请,完成结果处理,实现业务逻辑设计;
    Ø         数据访问层(FrameCountry)
    处理业务层的数据请求,结合配置文件的配置信息,访问数据库执行操作并返回结果集;
    Ø         数据库
                                存储数据信息的关系型数据库。

    二、FrameCountry设计原理

    FrameCountry设计图

    三、FrameCountry特点

    Ø         便捷开发
                  封装、整合数据库操作方式,让开发人员摆脱数据库的约束;
    Ø          规范开发
                  依据多层设计原理,明晰人员分工,提高程序可读性;
    Ø          记录运行情况
                  开发人员依据记录了解系统详情,方便调试排错;
    Ø          多样数据库连接
                  实现多种数据库连接方式,对开发人员透明化数据库连接,使其只关注上层程序,同时降低数据库转换、升级工作量,目前实现Access2000SQLServer2000两种数据库,日后逐步增加关系型数据库连接配置;
    Ø          整合有效函数
                  对开发中其它的有用的、常用的函数进行整理,简单调用实现;


    下载文件:

    http://d.download.csdn.net/down/195717/lizheng82

     


    展开全文
  • 分布式系统架构设计之数据访问

    千次阅读 2015-03-12 08:47:44
    数据访问层是一个链式的处理过程,并且多数组件都是提供对外提供JDBC的实现,提供服务的方式有三: 1) 提供专有API,通用性差 2) 通用性强的方式,如JDBC 3) 基于ORM的方式,可以在ORM框架上再包一层,对外暴露的...

    数据访问层是一个链式的处理过程,并且多数组件都是提供对外提供JDBC的实现,提供服务的方式有三:

    1)  提供专有API,通用性差

    2)  通用性强的方式,如JDBC

    3)  基于ORM的方式,可以在ORM框架上再包一层,对外暴露的还是原有框架的接口。

    在合并查询时,JDBC优势明显。


    数据访问层设计的基本步骤:SQL解析,规则处理,SQL改写,数据源选择,SQL执行和结果集返回合并处理。

    1)在进行SQL解析时,解析的缓存可以提升解析速度。一个重要的事情是根据执行的SQL得到被操作的表,根据参数及规则来确定目标数据源的连接数。

    2)规则处理时,可以采用固定hash,根据某个字段取模,然后分散到不同的库和表中,通常将周期性数据放在一起;也可以采用一致性hash,把节点对应的hash值变为了一个范围,不再是离散的;还可以通过在一个物理节点上对应多个虚拟节点且虚拟节点均匀分布的方式来解决增加或减少节点时负载不均衡的问题。映射表是根据分库分表字段的值的查表法来确定数据源的方法,一般用于热点数据的特殊处理,或者对不完全符合规律的的规则进行补充。

    3)SQL修改一般用于表名,索引,以及跨库计算。

    4)规则处理是确定一组数据源,数据源选择是确定具体某个数据源。

    5)SQL执行和结果处理部分需要注意异常的判断和处理。

     

    从工程上看,可以把spring中的driverClassName,username和password抽取出来做成一个公共配置,但最好在配置管理中心中进行。GroupDataSource解决了具体访问数据库的选择问题,具体选择策略是groupDataSource完成的重点包括根据事务,读写等特性选择主备,不同库间的选择等。GroupDataSource意味着分组数量的绑定,虽然不能整体缩放,但可以进行组内缩放、主备切换等。数据源分组后,通过对数据源进行功能切分,可以构建原子数据源,原子数据源仅管理一个具体的数据库。

     

    数据访问层的部署也可以分为jar包和Proxy两种方式,与服务框架类似,使用Proxy时,协议同样可以使用数据库协议和私有协议,最好直接使用数据库协议。

     

    数据库读写分离最好基于数据库的日志来进行数据的复制。数据变更场景包括:复制数据库,索引构建,缓存失效等,一般引入数据抽取器把数据源变更的信息加入到数据分发平台,数据采用器把这些变更应用到相应的目标上,数据分发平台是由多个管道组成的。不同的数据变更来源需要不同的抽取器来进行解析和变更进入分发平台的工作。在进行数据迁移时,记录增量的日志,迁移后,再对增量的变化处理。

    展开全文
  • 全栈必备 面向数据架构

    千次阅读 2016-11-30 20:49:43
    数据是系统的核心,在面向服务的架构之外,可以考虑面向数据架构方式。面向数据的服务架构需要支持多数据源异构,支持动态数据和静态数据,既支持公有云部署又支持私有云部署,提供多种数据应用和数据产品......

    数据是系统的核心,在面向服务的架构之外,可以考虑面向数据的架构方式。面向数据的服务架构需要支持多数据源异构,支持动态数据和静态数据,既支持公有云部署又支持私有云部署,提供多种数据应用和数据产品,如下图所示:
    面向数据的架构

    一般地,为了不影响业务系统的正常运行,会将不同数据源汇集起来,技术的采集与摄取,然后进行数据的存储及一系列的操作处理, 最终通过各种的解决方案形成数据应用衍生的数据产品。

    从开发的角度看,可以分成基础设施,运营工具,开发工具和解决方案四层,从数据自身来看,也可以分为数据源,动态数据,静态数据和数据应用4个层次,相互是有交叠的。

    数据源

    数据源决定了数据的宽度, 数量量决定了数据的厚度。即使是做数据应用,也是和具体的业务领域相关的,数据的价值不是凭空出现的。所以, 业务系统的数据是第一位的,也是最容易获得,直接的价值也较高。

    其次是用户的行为数据,经管用户经受了产品本身的诱导和局限,但用户的行为数据还是在一定程度上体现的用户便好。 过去的可用性测试甚至形成了可用性工程,而今,一般都会通过用户的行为数据来检验用户体验。

    物联网(IOT)的到来,凸显了传感器数据的重要性。传感器数据是相对高频的数据,与时间序列相关,可以考虑与时间相关的数据存储,以及数据的迁移。位置数据可以看作是一种特殊的传感器数据,通过位置数据可以得到物理上空间位置的描述,是一种非常有用的数据,尤其对移动互联网应用而言。

    社交几乎也是无处不在的(anything can be social),通过社交属性的功能,可以使应用拥有一定的社会属性,从而具备更多的价值。电子邮件可能是比较古老的互联网应用了,可以看作是一种特殊的社交数据,数据采集可以通过标准的POP3/IMAP4协议实现,应用内的社交数据需要自己整理,对于第三方的社交平台,一般都是提供API 接口服务的,只要注意以来访问控制即可。

    媒体的范围较大,针对性的获取数据需要爬虫的相关技术,数字化媒体的各种限制对爬虫而言是一个挑战。相对而言,社交媒体和自媒体通用访问接口的获取想对容易一些。

    不论是客户的网站还是竞品的网站,同样需要爬虫技术的帮助,这些数据将对业务系统的数据形成有益的补充。

    文档数据大多是非结构化数据,一般是文件系统和NoSQL 的胜场。对于很多企业而言,往往纸质文档数据化的过程,随着AI技术的发展,尤其是OCR 相关技术的逐渐成熟,所有文档都是数据资源。

    动态数据

    动态数据的采集过程与静态数据是类似的,关键在于分析流程,对于动态数据而言,分析是实事发生的。例如游乐园采用手环来采集用户的信息,这些手环中记录了用户的相关行为,游乐园可以使用这些数据为用户个性化推荐一些服务,这使得在用户游览期间的定制化服务成为可能。基于动态数据,在这些场景中使企业和用户之间产生更多的商机成为可能。

    对于动态数据,需要采用实时处理方法。时延是需要考量的一个关键因素,时间就是金钱在这里体现的淋漓尽致。 通过减少多租户的资源约束和云服务的使用可以降低时延,提高性能水平,能够实时处理大流量数据.

    数据流程相似于传统的ETL流程,在数据提取时同时完成数据的初步转换和清洗,具体流程还是与目标息息相关的。数据流处理是动态数据处理的核心部分,既可以对动态数据进行进一步的清洗然后存储,又可以直接引入分析方法,与后面的流式应用连接起来。

    数据治理是指从使用零散数据变为使用统一主数据、从具有很少或没有组织和流程治理到业务范围内的综合数据治理、从尝试处理主数据混乱状况到主数据井井有条的一个过程。数据治理对于确保数据的准确、分享和保护是至关重要的。有效的数据治理通过改进分析算法、缩减存储和计算成本、降低灾备风险和提高安全合规等方式,最终体现数据的价值。

    数据安全一是数据本身的安全,主要是指采用加密方法对数据进行主动保护,如数据保密、数据完整性、双向身份认证等,同时也是数据防护的安全,主要是对数据存储进行主动防护,如通过磁盘阵列、数据备份、异地容灾等手段保证数据的安全。数据处理的安全是指如何有效的防止数据在录入、处理、统计中由于硬件故障、人为误操作、程序缺陷、病毒或黑客等造成的数据库损坏或数据丢失现象,某些敏感或保密的数据可能不具备资格的人员阅读,而造成数据泄密等后果。而数据存储的安全是指数据在系统运行之外的可读性。

    数据运营是指通过对动态数据的分析挖掘,把隐藏在海量数据中的信息以合规化的形式发布出去,供数据的消费者使用。动态数据的数据运营是一个非常具有挑战性的课题。

    静态数据

    对于静态数据的操作,更像是一种批处理形式,是一种离线分析,更像是传统的OLAP,这样可以拥有较高性能的处理能力。这意味着先从各种数据源获取数据,然后再进行分析处理。静态数据处理分为了两个阶段,例如一个零售终端分析上个月的数据来决定本月的商业活动, 是否能够根据用户的购买行为来发放定制化的优惠卷等等。

    具体的分析计算既可以再私有云上执行,也可以在公有云上执行。对于一定规模数据,尤其是探索性数据分析,一般都可以在私有云进行计算,甚至直接在私有云上提供数据应用和数据产品。当数据规模和计算资源的需求达到一定程度的时候,可以考虑迁移的公有云。这是面向数据的一种混合云结构,为了使迁移简单方便,需要保障环境的一致性,YARN 是资源调度的最佳选择。当然,mesos 同样值得关注。

    静态数据的存储一般是海量存储,基于面向读性能提供的迫切需要,NoSQL是必然的选择。当然,面向大量的结构化数据,数据仓库仍然是不错的选择。

    数据应用

    数据应用包含了计算框架,算法,数据的可视化以及具体的应用呈现。不论是企业应用还是移动应用以及交互式Web应用,都可以使用数据计算得到的结果。流式应用和搜索应用都是与计算框架紧密相关的,可以通过Storm 和ElasticSearch 实现,也可以通过Spark 框架实现。

    商业智能(BI),传统上是基于数据仓库的数据挖掘,发现数据中潜在的价值。而在面向数据的架构中,BI的分析方法可以不变,只改变计算的方式,也可以对分析方法进行演讲。

    报表系统可以认为是可视化的核心之一。面向静态数据形成传统的报表,动态数据与静态数据相结合形成实时报表。

    随机分析是一种探索性数据分析,是一种对数据摸索和尝试,可以使用hive,pig,sparkSQL等工具执行,明确进一步探索的方向。统计分析是更加具体的一种离线分析,基于统计模型的数据分析处理。

    机器学习(Machine Learning, ML)是一门多领域交叉学科,模拟或实现人类的学习行为,以获取新的知识或技能,是人工智能的核心,框架有很多,例如Mahout以及SparkML等。

    深度学习是机器学习研究中的一个新领域,源于人工神经网络,含多隐层的多层感知器就是一种深度学习结构。深度学习通过组合低层特征形成更加抽象的高层表示属性类别或特征,以发现数据的分布式特征。同机器学习方法一样,深度机器学习方法也有监督学习与无监督学习之分.不同的学习框架下建立的学习模型很是不同.个人推荐tensorflow。

    展开全文
  • 本文主要记录近两天针对项目发生的数据访问问题的分析研究过程与系统架构优化,我喜欢说通俗的白话,高手轻拍 1. 发现问题 系统新模块上线后,使用频率较高,故在实际使用和后期的问题重现测试中,产生了一下系列...
  • 三层架构和MVC是两个东西。...三层架构中业务逻辑层和数据访问层对应MVC中的Model   由于层是一种弱耦合结构,层与层之间的依赖是向下的,底层对于上层而言是“无知”的,改变上层的设计对于其调
  • .Net企业级应用架构设计之数据访问

    千次阅读 多人点赞 2012-09-12 12:17:01
    综述 数据访问层的设计很大程度上取决于项目干系人需求的影响。例如,数据访问层应该持久化对象模型还是简单的的值的集合?数据访问层应该支持一种数据库还是多种数据库?下面仔细分析数据访问层的常见功能需求。 ...
  • 大众点评数据平台架构变迁

    万次阅读 2013-12-18 19:04:37
    最近和其他公司的同学对数据平台的发展题做了一些沟通,发现各自遇到的问题都类似,架构的变迁也有一定的相似性。 以下从数据&架构&应用的角度对2012.07-2014.12期间大众点评数据平台的架构变迁做一个概括性的总结,...
  • 这篇博客我们将继续进入我们的下一层:数据访问层。无论你用的是什么开发模式或者是业务模式,到最后最必须具有持久化机制,持久化到持久化介质,并能对数据进行读取和写入CRUD。这就是数据访问层。你可能是利用xml...
  • 数据架构浅谈

    千次阅读 2020-06-12 12:07:35
    数据架构浅谈 一、大数据技术和工具归类: 部分术语翻译: Administration: 管理平台(此处应指大数据管理平台) Data Security: 数据安全 Data Governance: 数据管控 Data Computing: 数据计算 Data Collection: ...
  • 传统系统的问题“我们正在从IT时代走向DT时代(数据时代)。IT和DT之间,不仅仅是技术的变革,更是思想意识的变革,IT主要是为自我服务,用来更好地自我控制和...传统应用的数据系统架构设计时,应用直接访问数据库...
  • IBM 混合数据仓库架构介绍

    千次阅读 2016-08-08 10:13:37
    当前,越来越多的企业正在考虑将其数据仓库迁移至云端,对于大多数企业而言,现有的数据仓库部署在本地的数据中心中,...因此,一种混合型的,将本地和云端数据仓库整合的架构,成为大多数企业倾向并选择的部署方式。
  • 数据仓库的架构与设计

    万次阅读 多人点赞 2017-04-01 17:52:19
    数据仓库的架构 数据仓库多维数据模型的设计 1. 什么是数据仓库1.1 数据仓库的概念官方定义数据仓库是一个面向主题的、集成的、随时间变化的、但信息本身相对稳定的数据集合,用于对管理决策过程的支持。
  • 数据仓库架构设计的一点概念

    万次阅读 2018-05-28 09:31:33
    在一个成体系、结构化的数据应用场景下,数据和处理有四个层次: 操作层、数据仓库层、部门/数据集市层、个体层。 (1) 操作层是指为具体业务提供实时响应的各个业务系统,比如常见的订单系统、ERP、用户中心等等...
  • 一分钟看懂数据架构

    千次阅读 2020-04-24 17:32:05
    数据湖和数据仓库两者都... 两种数据存储架构经常被混淆,起始两者之间差异大于共性。事实上,唯一共性都为了存储海量数据。 了解两者区别很重要,因为它们服务于不同的目的,需要使用不同的视角进行理解。虽...
  • 微服务架构设计实践 目 次1 序言2 微服务3 软件架构设计思想4 微服务架构设计实践4.1 项目概述4.2 架构准备阶段4.3 概念架构阶段4.4 细化架构阶段4.4.1 业务架构4.4.2 数据架构4.4.3 应用架构4.4.4 技术架构4.4.5 ...
  • 数据仓库架构及模型设计基础

    千次阅读 多人点赞 2019-06-26 21:58:18
    1.1数据集市架构 数据集市是按主题域组织的数据集合,用于支持部门级的决策。有两种类型的数据集市:独立数据集市和从属数据集市。 独立数据集市集中于部门所关心的单一主题域,数据以部门为基础部署,无须考虑企业...
  • 银行数据架构体系

    千次阅读 2019-12-22 11:43:49
    数据架构层面通过数据分类、分层部署等手段,从非功能性视角将数据合理布局。通过整体架构管控和设计,支持业务操作类和管理分析类应用(系统),满足业务发展及IT转型对数据的需求,架构的扩展性和适应性能够提升...
  • 三层架构:表示层——业务逻辑层——数据访问层 1.什么是三层架构  所谓的三层开发就是将系统的整个业务应用划分为表示层——业务逻辑层——数据访问层,这样有利于系统的开发、维护、部署和扩展。  ...
  • 谈谈数据仓库架构的发展和分类

    千次阅读 2014-06-20 10:06:23
    最近大家对数据仓库架构的讨论又多了起来,我在这里对一些架构进行一下简单的整理。目的是给大家树立一个靶子,大家可以在这篇文章后尽情的批判和补充。 我把我听说过的架构都归整在一起,分了六类,其中和很多...
  • 数据仓库架构(内含PPT)

    千次阅读 多人点赞 2020-11-18 07:00:00
    大数据篇:一文读懂@数据仓库1 网络词汇总结1.1 数据中台数据中台是聚合和治理跨域数据,将数据抽象封装成服务,提供给前台以业务价值的逻辑概念。数据中台是一套可持续“让企业的数据用起来”...
  • 在实际工作中,我们经常听到“架构”和“架构师”这样的名词,并不新鲜...
  • 数据架构之多租户

    千次阅读 2018-12-10 02:25:34
    我们按照ADMEMS方法论的理论指导,结合《Pandora数据工厂之多租户项目介绍》进行预架构阶段的架构分析过程实践,多租户功能介绍如下。 一、功能需求 采用“职责协作链”来梳理的如下关键功能 二、功能列表 三...
  • 一个运行了20多年的数据架构,必然有其合理性。也正是因为年代久远,存量过多,才导致举步维艰。在Cloud和5G时代,超密度网络集成和大数据洞察需求给电信供应商带来新的挑战,从数据仓库到数...
  • 数据中台(七) 数据中台架构

    千次阅读 多人点赞 2020-09-23 12:59:15
    总体架构数据存储 计算引擎 数据汇聚 数据汇聚是把数据资源通过实时、批量的方式存储到数据中台。基本是按照数据的原始状态堆砌在一起的,是企业对过往所有IT信息化建设积累的成果的融合。 数据开发...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 689,117
精华内容 275,646
关键字:

数据访问架构