一个结构化的分布式数据库。存储非关系型数据。
提供数据查询接口有以下几种方式:
官方提供了一下的集成:
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.00
flask测试情况, 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服务器端语言选型。