以前认为数据库就是一层,但现在学习的Hbase,HDFS的数据库,怎么感觉是多层?应怎样理解?

问题描述

以前认为数据库就是一层,但现在学习的Hbase,HDFS的数据库,怎么感觉是多层?应怎样理解?

以前学习数据库时,就只知道MySql,就这一个东西就是数据库。
但现在学习大数据,了解到
Titan graph数据库建立在HBase数据库之上,而HBase又要建立在HDFS之上。
这里就把数据库分成了三层,最顶层是Titan, 中间是HBase,下面是HDFS,
问题就是:
1.它们每层应该叫什么名字啊?顶层叫数据库框架吗?中间层叫后端数据库?底层叫分布式文件系统数据库?
2.它们各个组件(层次)之间的关系应该怎样理解更好?
3.MySql一个数据库是不是将上面几个层次的功能都包含了,比如包含了HBase对表的约束定义等功能,也包含了类似HDFS将数据最终怎样存放到磁盘上的功能?

解决方案

之所以分层,有两个目的,一个是简化某一块代码的复杂度,另一个是代码的复用,比如说同样的负载平衡,后面可以搭配不同的数据库,反之亦然。
至于叫什么名字这个无所谓,你可以按照层实现的功能叫它一个名字呗。

时间: 2024-12-15 20:16:00

以前认为数据库就是一层,但现在学习的Hbase,HDFS的数据库,怎么感觉是多层?应怎样理解?的相关文章

学习ADO和ODBC访问数据库的一些思路整理

ado|odbc|访问|数据|数据库 最近一直在学习研究用vc++访问数据库的问题,使用过ADO,也使用过ODBC.就这两种连接数据源的接口都有好几种方式,可以利用database,也可以利用dataset.利用这个word把我学习的思路整理一下. 一.使用ADO连接数据源 一般来说当建立基于对话框的应用程序时,都选择使用ADO比较方便(这纯属个人习惯问题). 1.直接在应用程序中建立与数据库的connection 2.自己写一个ADOConnection类作为应用程序操作数据库的接口,这样操作

Python数据库ORM工具sqlalchemy的学习笔记

SQLAlchemy是python的一个数据库ORM工具,提供了强大的对象模型间的转换,可以满足绝大多数数据库操作的需求,并且支持多种数据库引擎(sqlite,mysql,postgres, mongodb等),在这里记录基本用法和学习笔记. 一.安装 通过pip安装 $ pip install SQLAlchemy  二.使用 首先是连接到数据库,SQLALchemy支持多个数据库引擎,不同的数据库引擎连接字符串不一样,常用的有 mysql://username:password@hostna

数据库(mysql oracle)学习小结

数据库概念 oracle数据库 一组:数据文件.控制文件.日志文件 oracle实例,它与数据库的关系 oracle实例:实例就是数据库启动后分配的内存和建立的后台进程. 数据库关闭后,物理上的文件还存在,但实例(分配的内存和建立的进程)就没有了 数据库:物理操作系统文件或磁盘(disk)的集合. 关系:  实例就是一组操作系统进程(或者是一个多线程的进程)以及一些内存.这些进程可以操作数据库:而数据库只是一个文件集合(包括数据文件.临时文件.重做日志文件和控制文件).     在任何时刻,一个

怎么修改这个数据库的名字啊 已经查到可能是这个数据库名称的错误

问题描述 无法打开登录所请求的数据库"db_smg".登录失败.用户'PC201309271327Administrator'登录失败.运行的时候无法打开登录所请求的数据库登录失败 解决方案 解决方案二:很急饿在线等解决方案三:库是谁维护的就找谁,让他给你开账号权限解决方案四:库是谁维护的就找谁,让他给你开账号权限,如果是名称错了,要么改代码,要么打开管理器,改数据库名解决方案五:引用3楼bdmh的回复: 库是谁维护的就找谁,让他给你开账号权限,如果是名称错了,要么改代码,要么打开管理

这段代码是使用数据库登录的么?请问怎么修改为不用数据库的,谢谢

问题描述 这段代码是使用数据库登录的么?请问怎么修改为不用数据库的,谢谢 ticketset set; this->UpdateData(true); set.Open(CRecordset::dynaset,_T("select * from traininfo where trainNO='"+m_trainno+"'")); if(set.MyGetRecordCount()<=0) {::MessageBox(NULL,"没有该车次!&

mysql-vs2010mfc制作了一个登录窗口,数据库使用的是MySQL,怎样写才能连接到数据库进行登录?

问题描述 vs2010mfc制作了一个登录窗口,数据库使用的是MySQL,怎样写才能连接到数据库进行登录? 账号编辑框添加变量为:CEdit m_ID 密码编辑框添加变量为:CEdit m_password 登录按钮下的事件函数,可以连接到mysql的数据库,可以实行插入删除操作. 现在服务器数据库里面有一个名为:DATASOURCE的数据库,里面有一张表为:information,表里面有多个属性,其中ID为int型,Password为varchar. 不知道怎样写才能与数据库中的ID和密码进

VC ADO 怎么实现复制一个数据库中一个表的某些字段到另一个数据库的表中?

问题描述 VC ADO 怎么实现复制一个数据库中一个表的某些字段到另一个数据库的表中? 想从一个Access数据库中的a表中提取需要的字段复制到另一个数据库的b表中,有大神知道怎么弄吗 解决方案 循环读取第一个表的内容,然后插入第二个表.http://www.cnblogs.com/spatial/archive/2009/07/18/1526255.html 解决方案二: 循环复制,但是需要考虑a与b表是否一样,有什么对应关系,不能乱复制 解决方案三: 如何从一个数据库复制表的结构到另一个数据

sql-数据库更新不覆盖前面的数据库,该怎么做?设计两个同名数据库?我用的.net和SQL server。

问题描述 数据库更新不覆盖前面的数据库,该怎么做?设计两个同名数据库?我用的.net和SQL server. 数据库更新不覆盖前面的数据库,该怎么做?设计两个同名数据库?我用的.net和SQL server. 解决方案 没听明白你什么意思,数据库更新不覆盖前面的数据库,那还叫更新么??? 解决方案二: 你可以加上一列,这一列使用时间戳,或者一个不重复的数字来表示(比如guid),将它作为主键,这样写入新的数据,即便其它字段相同,也视作一条全新的记录,就不会覆盖了. 解决方案三: 首先请解释清楚你

c#-C#中数据库删除按钮中在下面update语句中显示数据库查询过于复杂

问题描述 C#中数据库删除按钮中在下面update语句中显示数据库查询过于复杂 string connstr = "Provider=Microsoft.Jet.OleDb.4.0;"; connstr += @"Data Source=GEARCNC.mdb"; OleDbConnection tempconn = null; try { if (MessageBox.Show("确定删除这一项吗?", "confirm Messag