如何使用基本 DML 操作在 db2 中创建外部表

Posted

技术标签:

【中文标题】如何使用基本 DML 操作在 db2 中创建外部表【英文标题】:How to create external table in db2 with basic DML operation 【发布时间】:2019-11-18 12:52:04 【问题描述】:

我使用以下命令创建了外部表

db2 "

CREATE EXTERNAL TABLE TEST(a int) using
  (dataobject '/home/db2inst2/test.tbl' )
  )
"
db2 "insert into TEST values(1)"
db2 "insert into TEST values(2)"

但看起来它正在取代价值。是否有任何选项可以附加文件并在外部表上执行基本的 DML 操作。如果 db2 V11.5 中还有其他可用选项,请告诉我

【问题讨论】:

【参考方案1】:

这是不可能的。

CREATE EXTERNAL TABLE statement

限制

在 Windows 系统上运行的 Db2 实例不能使用外部表。 加载的数据必须正确格式化。 您不能删除、截断或更新外部表。 对于远程外部表(即,外部表不在 Swift 或 S3 对象存储中,并且 REMOTESOURCE 选项设置为 LOCAL 以外的值): 单个查询或子查询一次不能从多个外部表中进行选择,并且不能引用同一个外部表 不止一次。如有必要,合并来自多个外部的数据 表合并到一个表中,并在查询中使用该表。 联合操作不能涉及多个外部表。

另外:

对于卸载操作,以下条件适用:

如果文件存在,则将其覆盖。

【讨论】:

感谢您的回复.....基本上我需要避免重组,因为表大小非常大,我们在最新版本中是否有任何新选项 有一个叫做“reduced redo logging”的特性,它应该在仓库安装中默认可用。当您的表更改变得“足够大”时,它会自动减少日志记录。可能对大型“插入选择”/CTAS 语句有帮助。

以上是关于如何使用基本 DML 操作在 db2 中创建外部表的主要内容,如果未能解决你的问题,请参考以下文章

Hive学习——DDL&DML&DQL语句

Hive学习——DDL&DML&DQL语句

在 hive 的外部表中创建分区

在 DB2 for Z/OS 中创建表分区

如何在红移光谱中创建一个外部表,其中文件位置每天都会改变?

如何在 MySQL 中创建链接表或镜像表