我想知道是否存在一个抽象以下DBMS操作的库:
我有一堆用于不同数据库的DDL / DML文件(例如TPC-H,SSB等),我希望能够加载数据并运行查询到许多DBMS,而不必担心其特殊性特定的DBMS(MySQL,SQLServer,Oracle等)。
到目前为止我发现的关闭事件是these。它们的问题在于,它们特定于给定的工作负载(在大多数情况下为TPC),因为特定于域的对象被建模为类(Java或C ++)。我正在寻找的是与域无关且与DBMS无关的。
答案 0 :(得分:1)
这可以通过DbUnit和JMeter的组合来完成。
DbUnit与DBMS无关(尽可能),可用于将CSV文件加载到数据库中。
JMeter可以针对任何具有JDBC驱动程序的DBMS运行SQL语句,并可用于衡量每个语句的性能。
答案 1 :(得分:0)
我认为最好使用ORM。像Ruby的ActiveRecord,Perl的类:DBI或DBIx :: Class甚至java的Hibernate。
Ruby的ActiveRecord已经为使用MySQL,PostgreSQL,SQLite,Oracle,SQLServer和DB2提供了内置支持,而hibernate似乎可以使用更多的数据库(Hibernate Supported Databases)
使用ORM,您可以使用统一的方式处理数据库。当然,查询必须用ORMs语言(Ruby,Perl,Python,Java等)编写,而不是用SQL编写。但是通过这种方式,您还可以确保在所有数据库引擎中执行等效操作,并且您只需为所有数据库维护一个“DDL / DML”指令文件。
希望这有帮助
答案 2 :(得分:0)
OLTPBench符合所有规定要求的费用:
基准测试非常有用,但却无穷无尽。这个基准测试套件是一组博士/博士后/教授聚在一起并结合他们的工作量/框架/经验/努力的结果。我们希望这将节省其他人的时间,并将提供可扩展的平台,可以以开源方式发展。
OLTPBenchmark是一个多线程负载生成器。该框架旨在能够针对任何支持JDBC的关系数据库生成可变速率,可变混合负载。该框架还提供数据收集功能,例如,每事务类型延迟和吞吐量日志。
与框架一起,我们提供以下OLTP / Web基准测试:
- TPC-C
- 维基百科
- Synthetic Resource Stresser
- 微博
- Epinions.com
- TATP
- AuctionMark
- SEATS
- YCSB
- JPAB(Hibernate)
- CH-基准
- 选民(日语“美国偶像”)
- SIBench(快照隔离)
- SmallBank
- LinkBench
- CH-基准
这个框架的设计允许轻松扩展,我们提供存根代码,贡献者可以使用它来包含新的基准,利用所有系统功能(记录,控制速度,受控混合等)。