【问题标题】:How does the Teradata REST API performance compare to other means of querying Teradata?与其他查询 Teradata 的方法相比,Teradata REST API 性能如何?
【发布时间】:2018-03-14 06:43:24
【问题描述】:

我计划使用 Teradata Python 模块,该模块可以使用 Teradata REST API 或 ODBC 连接到 Teradata。我想知道对于相当大的数据拉取(> 100 万行,> 1 GB 结果),REST 与 ODBC 连接方法的性能如何。

Teradata 网站上的信息表明,REST API 的用例更多是用于通过浏览器或 Web 应用程序直接访问 Teradata,这对我来说意味着它可能不会针对返回比浏览器更多数据的查询进行优化预计处理。我还想知道 JSON 开销是否会使其在通过网络发送查询结果的效率低于 ODBC 数据格式。

是否有人对 Teradata REST 服务性能有经验,或者可以指出 REST 和 ODBC 对 Teradata 的任何比较?

【问题讨论】:

  • REST 不太适合大容量,因为会有一个额外的因素威胁到放弃您的连接,例如代理 Web 服务、框架等。ODBC 和 JDBC 在批处理模式下做得很好.然后有本地 TD 客户端实用程序可以导出特别高的数据量,例如 BTEQ、FastExport 等 - 所有这些都可以从您的命令行使用。
  • 因为 linux 平台对 ODBC teradata 的支持有限。所以我想用休息来测试它。您能否分享一下 tdrest 的示例连接代码
  • 这是一年多前提出的dba.stackexchange.com/questions/131656/… 的完全相同的副本。
  • 我投票决定将此问题作为题外话结束,因为它与dba.stackexchange.com/questions/131656/…完全重复

标签: python odbc teradata


【解决方案1】:

我也有同样的问题。由于其余的 Web 服务器对我们来说是活动的,所以我只运行了一些测试。我使用 rest 和 odbc 后端测试了 PyTD,并使用 jaydebeapi + Jpype1 测试了 jdbc。我使用 Python 3.5、CentOS 7 机器,在 centos 和 windows 上使用 python 3.6 得到了类似的结果。

Rest 是最快的,而 jdbc 是最慢的。这很有趣,因为在 R 中 JDBC 非常快。这可能意味着 JPype 是瓶颈。 Rest 的编写速度也非常快,但我的猜测是可以在 JDBC 中适当地使用准备好的语句来改进。

我们现在要转为休息进行生产。让我们看看它是怎么回事,它肯定也不是没有问题的。另一个优点是我们的分析师也希望在他们自己的 pcs/macs 上工作,rest 是最容易安装的,特别是在 windows 上(你做 pip install teradata 就完成了,而对于 odbc 和 jaydebeapi+Jpype 你需要一个编译器,并且使用 odbc 花一些时间来正确配置它)。

如果速度很关键,我想另一种方法是编写一个 java 命令行应用程序来获取行,将它们写入 csv,然后从 python 读取 csv。我没有进行测试,但根据我之前在这类问题上的经验,我敢打赌这会比其他任何事情都快。

  1. 选择 1M 行

    • Python 3- JDBC:24 分钟
    • Python 3- ODBC:6.5 分钟
    • Python 3- 休息:4 分钟
    • R - JDBC:35 秒
  2. 选择 10 万行

    • Python 3- JDBC 141 秒
    • Python 3- ODBC 41 秒
    • Python 3- 休息 16 秒
    • R - JDBC 5 秒
  3. 插入 10 万行

    • Python 3- JDBC 出现错误,懒得纠正它们
    • Python 3- ODBC 7 分钟
    • Python 3- 休息 8 秒(批处理)9 分钟(无批处理)
    • R - JDBC 8 分钟

【讨论】:

    猜你喜欢
    • 2021-10-08
    • 2015-11-11
    • 2013-10-21
    • 2014-12-26
    • 2011-01-06
    • 2015-01-18
    • 2018-09-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多