首页 > 解决方案 > DB2 将数据作为压缩文件加载到 S3

问题描述

我正在尝试将 DB2 数据加载到 DB2 中并将副本保存到 S3。

db2 load from supplier.tbl of del modified by coldel'|' insert into supplier copy yes to DB2REMOTE://S3/mycontainer/mybucket/loads

这会按名称创建多个文件(每个分区 1 个)MYDB.4.db2inst1.DBPART001.20190925183423.001MYDB.4.db2inst1.DBPART004.20190925183423.002依此类推,并将所有文件单独上传到 S3。是否可以创建一个包含所有这些文件的压缩格式的单个 zip/tar,以后可以从 S3 下载并解压缩?

[db2inst1@dashmpp-head-0 - Db2wh tpch-dbgen]$ db2level
DB21085I  This instance or install (instance name, where applicable: 
"db2inst1") uses "64" bits and DB2 code release "SQL11019" with level 
identifier "020A010F".
Informational tokens are "DB2 v11.1.9.0", "special_39004", 
"DYN1906181700AMD64_39004", and Fix Pack "0".
Product is installed at "/opt/ibm/db2/V11.1.0.0".

标签: db2db2-luw

解决方案


Paul Vernon 所说的是正确的,甚至建议因为 db2 负载已经过时且速度较慢。

我不完全确定文件部分,因为文档说明不同。

S3

指定源数据文件位于 S3 兼容对象存储中。REMOTESOURCE、SWIFT 和 S3 选项是互斥的。使用 DATAOBJECT 选项指定文件名。

句法:

S3 (endpoint, authKey1, authKey2, bucket)

https://www.ibm.com/support/knowledgecenter/en/SSEPGG_11.5.0/com.ibm.db2.luw.sql.ref.doc/doc/r_create_ext_table.html

CREATE EXTERNAL TABLE exttab2(a int) using (
    DATAOBJECT 'datafile2.dat'
    S3 (
        's3.amazonaws.com',
        'XXXOS123456-2:xxx123456',
        'bs07c6e974040737d92174e5e96d5be9382aa4c33xxx5a14eaa9172c70f8df16',
        'my_dev'
    )
)

推荐阅读