虚拟交易数据库有哪些,国内量化交易平台的数据库谁最棒
来源:整理 编辑:黑码技术 2024-07-24 14:38:00
1,国内量化交易平台的数据库谁最棒
米筐 和 聚宽 支 持股票和金融期货 数据 。 优矿平台 提 供股 票 ,基金 , 衍 生 品 等数据 , 比 较 全 面 , 但 很 多数据 库 都 是 付费 的 , 免 费 数据 就 比较少 了 。当 然 ,米筐 最近 也是 新 增 了 数据库 。 数据质 量 米 筐和 优矿 的 比 较棒 。
2,大型商城要什么数据库好
mysql相对来说比较好数据库的使用要看使用量,ac属于小型数据库,操作起来也比较别扭mysql相对来说好一些从安全性考虑,也是mysql好一些不过具体的还要看你数据库的需求来定了你可以看看shop++冉系统,非常适合企业开发,支持mysql、oracle、sqlserver等常见数据库,这是国内首个支持多数据库的商城系统,安全性、扩展性非常好。
3,金融行业都用什么数据库
db2数据库为何在金融领域应用如此广泛?在我接触过的银行用户中,绝大部分都在使用ibm db2数据库产品,当然还是有一大批证劵公司也在使用。给我印象最为深刻的一次是在深圳办的一场db2技术专家沙龙,那次来的基本上都银行用户和证劵用户。当时,就在想,db2数据库产品在金融领域应用咋那么广呢? 在开始这个讨论之前,我也问了一些朋友,问他们是什么原因导致了这一事实的发生,其中有人回答是历史原因,也有人回答是因为db2数据库产品好。当然,众多金融客户选择db2数据库产品,肯定是有各自的原因,历史原因也罢,功能强大、性能稳定也罢,肯定各有说词。不过我们可以想象一下,对于金融用户来说,每天所产生的数据都非常多,且复杂,而且这些数据都相当重要,来不到半点马虎。因此,他们在选择数据库产品的时候,自然是分外小心,不敢怠慢。另外,作为一家金融企业,在it上的预算肯定也比较充足,所以产品的价格自然不是他们担心的问题(当然,这只是一种猜测!)。这样再分析原因的时候,我们就把重点放在了db2数据库的性能和稳定性上。那么,究竟是不是了db2数据库的性能和稳定性导致了它在金融领域的应用如此广泛呢,我不得而知! 针对这个db2数据库为何在金融领域应用如此广泛?的疑问,是一个值得我们思索的过程。但至于是什么真正的原因导致的,我这主题中就不详细聊了,因为我的答案都是来源于大家,只有有了大家的支持,这个答案才会日渐丰富,日渐完善。 db2的并发性、稳定性、扩展性这些都做得不错, 金融行业很多业务是实时性交易很强的系统它们追求的是系统的稳定性,性能好,支持高并发、安全性高 所以选择oracle、db2这类数据库等等 主要是用db2 在用aix系统 本身兼容性又好吧这样稳定性更强,而且db2 刚开始打开市场时是免费使用的 在金融行业,大家知道数据量大,数据复杂,更新频繁,把大量而且关系复杂的数据进行整合,二次加工,做个决策分析,这些工作的前提都是要有一个稳定高效的数据库。ibm db2具有很好的安全性,数据可移植性,其他数据库数据可以移植过来,又善于处理关系复杂的数据,而且速度快,连接方式灵活,可通过 odbc、jbdc、网络服务、本地客户机或异步客户机接口来实现,总之,相对其他数据库db2具有明显的优势,正好符合银行的要求。 金融行业使用 db2 可能是有其历史原因的, 因为金融行业本身用 ibm 的主机就比较多 :) 还是听金融行业的兄弟们站出来说句吧 大家好 在金融行业中,我想大部分的业务系统使用的是db2,而绝大部分的经营分析系统用的是teradata,我所知道就有工行,建行,中行,光大,浦发,民生,邮政银行等等,ibm的产品一贯是安全性的代表,在银行交易数据极其重要的前提下,选择db2是一个不错的选择,同时,db2的大数据处理速度也仅次于teradata,另外很多银行的硬件选择了ibm的大机,自然ibm的软件产品也是他们考虑的重中之重,至于teradata,在成功实施了walmart,ebay等超大的数据仓库后,在入主中国也强势地拿下了近10省的移动的经分系统和移动集团公司的经分系统,同时又很成功的实施了上海证交所的dw,这些事实的确证明了他们是数据仓库行业的领导者,如果不缺钱,我相信选择teradata做构建edw是一个不错的选择! 我认为主要有以下几点: 1、历史原因 金融行业对于数据安全和系统可用性要求很高,因此,选用ibm主机的颇多。而db2最初就是建立在主机操作系统上的,毫无疑问,是与ibm主机配合最好的数据库产品,所以自然就会选择db2数据库。由于对db2比较熟悉,在开放式系统上也就选择了db2数据库。 2、ibm技术支持和售后服务做的很好,产品性价比较高 根据我个人的亲身体验,ibm能够根据客户的需求进行电话或者现场技术支持,能够根据客户要求参与项目建设,与oracle相比,售后服务价格相对较低。 3、产品自身为用户提供了较多的监控和分析工具,便于用户自己进行问题诊断和性能优化
4,android开发用什么数据库
安卓大部分情况都是作为客户端,开发用数据库时主要看服务器端用什么。一般而言,现在用SQL的比较多,所以一般在客户端也采用SQL lite或者My SQL等sqlite是轻量级嵌入式数据库引擎,它支持 sql 语言,并且只利用很少的内存就有很好的性能。此外它还是开源的,任何人都可以使用它。许多开源项目((mozilla, php, python)都使用了 sqlite,sqlite 由以下几个组件组成:sql 编译器、内核、后端以及附件。sqlite 通过利用虚拟机和虚拟数据库引擎(vdbe),使调试、修改和扩展 sqlite 的内核变得更加方便。 特点: 面向资源有限的设备, 没有服务器进程, 所有数据存放在同一文件中跨平台,可自由复制。 sqlite 基本上符合 sql-92 标准,和其他的主要 sql 数据库没什么区别。它的优点就是高效,android 运行时环境包含了完整的 sqlite。 sqlite 和其他数据库最大的不同就是对数据类型的支持,创建一个表时,可以在 create table 语句中指定某列的数据类型,但是你可以把任何数据类型放入任何列中。当某个值插入数据库时,sqlite 将检查它的类型。如果该类型与关联的列不匹配,则 sqlite 会尝试将该值转换成该列的类型。如果不能转换,则该值将作为其本身具有的类型存储。比如可以把一个字符串(string)放入 integer 列。sqlite 称这为“弱类型”(manifest typing.)。 此外,sqlite 不支持一些标准的 sql 功能,特别是外键约束(foreign key constrains),嵌套 transcaction 和 right outer join 和 full outer join, 还有一些 alter table 功能。 除了上述功能外,sqlite 是一个完整的 sql 系统,拥有完整的触发器,交易等等。android 集成了 sqlite 数据库 android 在运行时(run-time)集成了 sqlite,所以每个 android 应用程序都可以使用 sqlite 数据库。 对于熟悉 sql 的开发人员来时,在 android 开发中使用 sqlite 相当简单。但是,由于 jdbc 会消耗太多的系统资源,所以 jdbc 对于手机这种内存受限设备来说并不合适。因此,android 提供了一些新的 api 来使用 sqlite 数据库,android 开发中,程序员需要学使用这些 api。数据库存储在 data/< 项目文件夹 >/databases/ 下。 android 开发中使用 sqlite 数据库 activites 可以通过 content provider 或者 service 访问一个数据库。下面会详细讲解如果创建数据库,添加数据和查询数据库。 创建数据库 android 不自动提供数据库。在 android 应用程序中使用 sqlite,必须自己创建数据库,然后创建表、索引,填充数据。android 提供了 sqliteopenhelper 帮助你创建一个数据库,你只要继承 sqliteopenhelper 类,就可以轻松的创建数据库。sqliteopenhelper 类根据开发应用程序的需要,封装了创建和更新数据库使用的逻辑。sqliteopenhelper 的子类,至少需要实现三个方法:1 构造函数,调用父类 sqliteopenhelper 的构造函数。这个方法需要四个参数:上下文环境(例如,一个 activity),数据库名字,一个可选的游标工厂(通常是 null),一个代表你正在使用的数据库模型版本的整数。2 oncreate()方法,它需要一个 sqlitedatabase 对象作为参数,根据需要对这个对象填充表和初始化数据。3 onupgrage() 方法,它需要三个参数,一个 sqlitedatabase 对象,一个旧的版本号和一个新的版本号,这样你就可以清楚如何把一个数据库从旧的模型转变到新的模型。
5,现在可以免费商用的数据库都有哪些
oracle集群oracle rac是业界最流行的产品。其架构的最大特点是共享存储架构(shared-disk),整个rac集群是建立在一个共享的存储设备之上的,节点之间采用 高速网络互连。在 oracle rac 环境中,每个 oracle 数据块都被赋予一个(且只有一个)“主”oracle rac 节点。该 oracle rac 节点的全局缓存服务 (gcs) 负责管理对这些数据块集的访问。当其中一个 oracle 节点需要访问某个 oracle 数据块时,它必须首先与该数据块协商。然后,该主节点的 gcs 或者指示请求的 oracle 节点从磁盘中获取该数据块,或者指示该oracle 数据块的当前持有者将被请求的数据块发送到请求节点。oracle 尝试跨所有 rac 节点统一分发该数据块的所有权。在 oracle rac 环境中,数据块大致相等的所有节点都将被指定为主节点。(如果 oracle rac 节点数是 oracle 数据块数的约数,则所有 rac 节点都是具有同样数量的数据块的主节点。)mysql集群mysql cluster和oracle rac完全不同,它采用shared-nothing架构。整个集群由管理节点(ndb_mgmd),处理节点(mysqld)和存储节点(ndbd)组 成,不存在一个共享的存储设备。mysql cluster主要利用了ndb存储引擎来实现,ndb存储引擎是一个内存式存储引擎,要求数据必须全部加载到内存之中。数据被自动分布在集群中的不同存 储节点上,每个存储节点只保存完整数据的一个分片(fragment)。同时,用户可以设置同一份数据保存在多个不同的存储节点上,以保证单点故障不会造成数据丢失。mysql cluster的优点在于其是一个分布式的数据库集群,处理节点和存储节点都可以线性增加,整个集群没有单点故障,可用性和扩展性都可以做到很高,更适合 oltp应用。但是它的问题在于:1.ndb存储引擎必须要求数据全部加载到内存之中,限制比较大,但是目前ndb新版本对此做了改进,允许只在内存中加 载索引数据,数据可以保存在磁盘上。2.目前的mysql cluster的性能还不理想,因为数据是按照主键hash分布到不同的存储节点上,如果应用不是通过主键去获取数据的话,必须在所有的存储节点上扫描, 返回结果到处理节点上去处理。而且,写操作需要同时写多份数据到不同的存储节点上,对节点间的网络要求很高。分布式数据库拆分数据库分片sharding 不是一个某个特定数据库软件附属的功能,而是在具体技术细节之上的抽象处理,是水平扩展(scale out,亦或横向扩展、向外扩展)的解决方案,其主要目的是为突破单节点数据库服务器的 i/o 能力限制,解决数据库扩展性问题。把热度高的数据划分开来,使用配置刚好的硬件,提高访问速度,增强用户体验 把不同的用户的数据根据用户的id放到不同的数据库中,不同用户对应的交易数据也跟着到不同的数据库;之后可以把交易完成和正在交易的数据库分开。一个全国经济信息系统,可以按照不同地区把不同数据放到不同数据库中,随着时间增加数据也会越来越大,到时还可以工具年份在重新划分数据库。一个大中型的电子商的电子商务网站一定会遇到数据量巨大的问题,可以根据用户对象或者使用和被使用的数据进行分片。这样避免了在一个库中数据膨胀而带来的瓶颈。在数据库分片时最好分到不同的服务器中,或者不同的存储中,避免磁盘竞争 数据库分片存在比较大问题就是人查询或者统计涉及到跨库就比较麻烦。特别是join时如果涉及到多个节点,将非常困难,应该尽量避免。数据库水平分片读写分离读写分离架构利用了数据库的复制技术,将读和写分布在不同的处理节点上,从而达到提高可用性和扩展性的目的。读写分离简单的说是把对数据库读和写的操作分开对应不同的数据库服务器,这样能有效地减轻数据库压力,也能减轻io压力。主数据库提供写操作,从数据库提供读操作,其实在很多系统中,主要是读的操作。当主数据库进行写操作时,数据要同步到从的数据库,这样才能有效保证数据库完整性。quest shareplex就是比较牛的同步数据工具,听说比oracle本身的流复制还好,mysql也有自己的同步数据技术。mysql只要是通过二进制日志来复制数据。通过日志在从数据库重复主数据库的操作达到复制数据目的。这个复制比较好的就是通过异步方法,把数据同步到从数据库。主数据库同步到从数据库后,从数据库一般由多台数据库组成这样才能达到减轻压力的目的。读的操作怎么样分配到从数据库上?应该根据服务器的压力把读的操作分配到服务器,而不是简单的随机分配。mysql提供了mysql-proxy实现读写分离操作。不过mysql-proxy好像很久不更新了。oracle可以通过f5有效分配读从数据库的压力。 上面说的数据库同步复制,都是在从同一种数据库中,如果我要把oracle的数据同步到mysql中,其实要实现这种方案的理由很简单,mysql免费,oracle太贵。好像quest shareplex也实现不了改功能吧。好像现在市面还没有这个工具吧。那样应该怎么实现数据同步?其实我们可以考虑自己开发一套同步数据组件,通过消息,实现异步复制数据。其实这个实现起来要考虑很多方面问题,高并发的问题,失败记录等。其实这种方法也可以同步数据到memcache中。听说oracle的stream也能实现,不过没有试过。通过ebay读写分离的结构图,通过share plex 近乎实时的复制数据到其他数据库节点,再通过f5特定的模块检查数据库状态,并进行负载均衡,io 成功的做到了分布,读写分离,而且极大的提高了可用性。目前读写分离技术比较多,比较有名的为amoeba,有兴趣的同学可以研究下。数据库缓存读写分离现在应用非常广泛,特别是时国内外大型网站,都使用的非常多,很多都是自己研发缓存系统,淘宝还开源了tair系统,有兴趣的可以研究下。比较有名的是memcached使用memcached最好的可能算facebook了。通过memcached分担读的操作,把常用的对象数据存储到memcached中,当有读操作过来时先访问memcached如果memcached没有该数据再从数据库获取,同时把数据放到memcached中,下次访问就可以直接访问memcached了。有一次在和一个朋友聊天时他们正在着手在线文档系统架构设计,由于文档访问压力非常大,每次请求数据库也非常大,由于大量的的文档数据在服务端和客户端传输,会经常造成网络堵塞。我建议他可以把文档分片,减少一次性大文件传输。再根据文档热度把一些文档保持到缓存中。其实文档也好,数据库也好,很多方法只要根据业务要求也可以达到异曲同工的之效。1.IBM 的DB2 作为关系数据库领域的开拓者和领航人,IBM在1997年完成了System R系统的原型,1980年开始提供集成的数据库服务器—— System/38,随后是SQL/DSforVSE和VM,其初始版本与SystemR研究原型密切相关。 2. Oracle Oracle 前身叫SDL,由Larry Ellison 和另两个编程人员在1977创办,他们开发了自己的拳头产品,在市场上大量销售,1979 年,Oracle公司引入了第一个商用SQL 关系数据库管理系统。Oracle公司是最早开发关系数据库的厂商之一,其产品支持最广泛的操作系统平台。目前Oracle关系数据库产品的市场占有率名列前茅。 3. Informix Informix在1980年成立,目的是为Unix等开放操作系统提供专业的关系型数据库产品。公司的名称Informix便是取自Information 和Unix的结合。Informix第一个真正支持SQL语言的关系数据库产品是InformixSE(StandardEngine)。 4. Sybase Sybase公司成立于1984年,公司名称“Sybase”取自“system”和 “database” 相结合的含义。Sybase公司的创始人之一Bob Epstein 是Ingres 大学版(与System/R同时期的关系数据库模型产品)的主要设计人员。公司的第一个关系数据库产品是1987年5月推出的Sybase SQLServer1.0。Sybase首先提出Client/Server 数据库体系结构的思想,率先在Sybase SQLServer 中实现。
文章TAG:
虚拟交易数据库有哪些 国内量化交易平台的数据库谁最棒