一个结构化的分布式数据库。存储非关系型数据。 提供数据查询接口有以下几种方式:
local API(java)RESTThriftC/C++ Apache Hbase Clientuse JDO with HBaseScalaJython官方提供了一下的集成: 1.Spark 2.MapReduce 3.Pig 4.EMR 5.Python 6.Flume 7.ORM library for JAVA
而在github上有1个项目avatica(15stars其中一个我)
SparkSQL是与spark深度集成的,因此没用提供给第三方开发的API是可以理解的。 PS值得注意的是:ThriftServer是一个JDBC/ODBC接口,用户可以通过JDBC/ODBC连接ThriftServer来访问SparkSQL的数据。ThriftServer在启动的时候,会启动了一个SparkSQL的应用程序,而通过JDBC/ODBC连接进来的客户端共同分享这个SparkSQL应用程序的资源,也就是说不同的用户之间可以共享数据;ThriftServer启动时还开启一个侦听器,等待JDBC客户端的连接和提交查询。
Python\R\JavaScript\Clojure\Ruby\PHP\SQL SQL: 1.Apache Calcite - SQL parser, planner and query engine whose Druid adapter can query data residing in Druid, and combine it with data in other locations; has local and remote JDBC drivers powered by Avatica 2.implydata/plyql - A command line and HTTP interface for issuing SQL queries to Druid
总结:go的兼容性确实不是很好,python相对于go还是好点的。其实最好的还是java。
RESTful设计理念基于4点: - Use HTTP methods explicitly. - Be stateless. - Expose directory structure-like URIs. - Transfer XML, JavaScript Object Notation (JSON), or both.
总结来说:Restful并不是一种协议,而是一种web编程风格满足以下几个特点的都可以称为restful框架 1. 连接协议具有无状态(be stateless) 2. 客户端服务器结构 (分层) 3. 能够利用cache机制增进性能 (分层) 4. 统一的接口 (HTTP协议) 5. 资源的设定 (expose directory structure-like uri 显示的目录结构化资源) 6. 转移过程使用json、xml等数据格式
外链文章:http://www.ibm.com/developerworks/library/ws-restful/
web服务器端选型之语言: 1. 并发性要给力 2. 包要多 3. 框架要给力 4. 向下兼容性要好
web框架的处理流程: 1. 接受连接 2. 路由 3. handler处理
http://colobu.com/2016/04/06/the-fastest-golang-web-framework/
beego测试情况,100个并发,发送100次
Transactions: 100000 hits Availability: 100.00 % Elapsed time: 12.19 secs Data transferred: 21.93 MB Response time: 0.02 secs Transaction rate: 8203.45 trans/sec Throughput: 1.80 MB/sec Concurrency: 175.61 Successful transactions: 100000 Failed transactions: 0 Longest transaction: 1.17 Shortest transaction: 0.00flask测试情况, 100个并发,发送100次
Transactions: 99971 hits Availability: 99.97 % Elapsed time: 68.43 secs Data transferred: 3.72 MB Response time: 0.06 secs Transaction rate: 1460.92 trans/sec Throughput: 0.05 MB/sec Concurrency: 90.58 Successful transactions: 99971 Failed transactions: 29 Longest transaction: 56.23 Shortest transaction: 0.02总结:结果显而易见,go完爆python。在框架方面go的框架虽然不及python的多,但是功能还是很全的。根据数据源对接的兼容性(半斤八两),因此go更适合当web服务器端语言选型。
