python珍宝数据api库

td-client的Python项目详细描述


python的珍宝数据api库

Build StatusBuild statusCoverage StatusCode HealthPyPI version

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.Clientendpoint=参数覆盖它。可以找到可用的宝藏数据站点和相应的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

版本历史记录

CHANGELOG.md

许可证

apache软件许可证,2.0版

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java根据选择随机设置图标   java如何将Android Studio与本地服务器数据库SQL server 2008连接?   java在点击鼠标后绘制一个椭圆形   java选项窗格相对于其父项的位置   java如何在Android中的switch case中使用String[]输入?   安卓无法从“15.0.1”确定java版本   如果满足特定条件,java是否重置计时器?   java是一个实体类,可以在OOAD中返回其他实体实例吗?   bash将对jar文件| cut | awk和java程序的调用集成到一个统一进程中   Spring安全更新身份验证成功时的最后登录日期   数据库身份验证中基于Java控制台的客户端服务器登录应用程序错误   java Selenium junit测试失败,驱动程序过早获取URL   java LibGdx多点触摸事件混淆   带扫描仪的java打印空间   来自旧版应用程序的java springcloudsleuth头   java如何实现模板设计模式?   java如何比较具有多个值的键的两个映射?   读取时R中的java MemoryError。xlsx