python珍宝数据api库
td-client的Python项目详细描述
python的珍宝数据api库
python的珍宝数据api库
要求
td-client
支持以下版本的python。
- Python2.7+
- Python3.4+
- 皮比
安装
您可以安装PyPI中的版本。
$ pip install td-client
最好安装certifi以启用ssl证书验证。
$ pip install certifi
示例
请参阅Treasure Data Documentation上的示例。
列出作业
如果没有通过传递给apikey=
参数的tdclient.Client
给出,则将从环境变量TD_API_KEY
读取珍宝数据API密钥。
默认情况下使用珍宝数据API终结点https://api.treasuredata.com
。您可以使用环境变量TD_API_SERVER
覆盖它,然后可以通过传递给tdclient.Client
的endpoint=
参数覆盖它。可以找到可用的宝藏数据站点和相应的api端点列表here。
importtdclientwithtdclient.Client()astd:forjobintd.jobs():print(job.job_id)
运行作业
在宝藏数据上运行作业。
importtdclientwithtdclient.Client()astd:job=td.query("sample_datasets","SELECT COUNT(1) FROM www_access",type="hive")job.wait()forrowinjob.result():print(repr(row))
通过dbapi2运行作业
td client python实现了PEP 0249python数据库api v2.0。 可以将td client python与支持数据库api(如pandas)的外部库一起使用。
importpandasimporttdclientdefon_waiting(cursor):print(cursor.job_status())withtdclient.connect(db="sample_datasets",type="presto",wait_callback=on_waiting)astd:data=pandas.read_sql("SELECT symbol, COUNT(1) AS c FROM nasdaq GROUP BY symbol",td)print(repr(data))
我们为熊猫提供了另一个名为pandas-td的软件包,具有一些高级功能。 如果您需要做一些复杂的事情,比如将结果数据导出到珍宝数据,打印作业的 长时间执行的进度等。
导入数据
以流方式将数据导入珍宝数据,就像fluentd所做的那样。
importsysimporttdclientwithtdclient.Client()astd:forfile_nameinsys.argv[:1]:td.import_file("mydb","mytbl","csv",file_name)
批量导入
批量导入宝藏数据。
from__future__importprint_functionimportsysimporttdclientimporttimeimportwarningsiflen(sys.argv)<=1:sys.exit(0)withtdclient.Client()astd:session_name="session-%d"%(int(time.time()),)bulk_import=td.create_bulk_import(session_name,"mydb","mytbl")try:forfile_nameinsys.argv[1:]:part_name="part-%s"%(file_name,)bulk_import.upload_file(part_name,"json",file_name)bulk_import.freeze()except:bulk_import.delete()raisebulk_import.perform(wait=True)if0<bulk_import.error_records:warnings.warn("detected %d error records."%(bulk_import.error_records,))if0<bulk_import.valid_records:print("imported %d records."%(bulk_import.valid_records,))else:raise(RuntimeError("no records have been imported: %s"%(repr(bulk_import.name),)))bulk_import.commit(wait=True)bulk_import.delete()
开发
运行测试
运行测试。
$ python setup.py test
运行测试(TOX)
您可以对所有受支持的python版本运行测试。我建议您安装pyenv来管理Python。
$ pyenv shell system $ for version in $(cat .python-version);do[ -d "$(pyenv root)/versions/${version}"]|| pyenv install "${version}";done $ pyenv shell --unset
安装tox。
$ pip install tox
然后,运行tox
。
$ tox
释放
释放到pypi。
$ python setup.py bdist_wheel --universal sdist upload
版本历史记录
许可证
apache软件许可证,2.0版