【问题标题】:Using wbimport on sql workbench/j with presto driver在带有 presto 驱动程序的 sql workbench/j 上使用 wbimport
【发布时间】:2020-01-27 04:19:29
【问题描述】:

所以我使用workbench将一个160k行的文本文件导入表格代码是:

Wbimport
-usepgcopy
-type=text
-endrow=164841
-file=‘book1.csv’
-table=it.table1
-delimiter=,
-multiline=true

所以我用我的 160k 行文件的 3 行版本尝试了这个,它在几秒钟内完成。这似乎只在自动提交模式下完成,当我尝试在完整的 160k 行文件上运行它时,它需要 200 多小时才能完成任何想法 - 或替代方案。

我正在使用 workbench build 125 和 presto jdbc-0.216

谢谢

【问题讨论】:

  • Presto JDBC 尚不支持批处理 INSERT(请参阅 github.com/prestosql/presto/issues/1777)。另外,你插入什么连接器?例如,如果您将 Presto 与 PostgreSQL 一起使用,您可以将数据直接加载到 PostgreSQL,其中有一些专用工具。
  • 但是,您完全可以跳过 INSERT。如果您使用 S3(或 HDFS)配置了 Presto,您只需将 CSV 文件放在某处并将其“映射”到 Presto Hive 连接器中作为外部表。

标签: sql import presto sql-workbench-j


【解决方案1】:

最有可能的原因是整个事务变得很大,这对 wbimport 和 jdbc 连接施加了太大的负载。如果您将其分解为例如每次导入 1000 条记录。

如果先将文件分割成多个文件,然后一次导入一个,也可以避免重复读取大文件以找到正确的记录。

【讨论】:

  • 您可以将-commitEvery=1000与WbImport一起使用,无需拆分文件
猜你喜欢
  • 1970-01-01
  • 2019-02-10
  • 1970-01-01
  • 1970-01-01
  • 2012-07-21
  • 2018-02-17
  • 1970-01-01
  • 1970-01-01
  • 2016-09-22
相关资源
最近更新 更多