项目作者: betodealmeida

项目描述 :
Python DB-API and SQLAlchemy dialect for Druid.
高级语言: Python
项目地址: git://github.com/betodealmeida/druid-dbapi.git
创建时间: 2017-12-13T18:38:31Z
项目社区:https://github.com/betodealmeida/druid-dbapi

开源协议:MIT License

下载


A Python DB API 2.0 for Druid

This module allows accessing Druid via its experimental SQL API.

Usage

Using the DB API:

  1. from druiddb import connect
  2. conn = connect(host='localhost', port=8082, path='/druid/v2/sql/', scheme='http')
  3. curs = conn.cursor()
  4. curs.execute("""
  5. SELECT place,
  6. CAST(REGEXP_EXTRACT(place, '(.*),', 1) AS FLOAT) AS lat,
  7. CAST(REGEXP_EXTRACT(place, ',(.*)', 1) AS FLOAT) AS lon
  8. FROM places
  9. LIMIT 10
  10. """)
  11. for row in curs:
  12. print(row)

Using SQLAlchemy:

  1. from sqlalchemy import *
  2. from sqlalchemy.engine import create_engine
  3. from sqlalchemy.schema import *
  4. engine = create_engine('druid://localhost:8082/druid/v2/sql/') # uses HTTP by default :(
  5. # engine = create_engine('druid+http://localhost:8082/druid/v2/sql/')
  6. # engine = create_engine('druid+https://localhost:8082/druid/v2/sql/')
  7. places = Table('places', MetaData(bind=engine), autoload=True)
  8. print(select([func.count('*')], from_obj=places).scalar())

Using the REPL:

  1. $ druiddb http://localhost:8082/druid/v2/sql/
  2. > SELECT COUNT(*) AS cnt FROM places
  3. cnt
  4. -----
  5. 12345