DB2 загружает копию данных в S3 в виде сжатого файла - PullRequest
0 голосов
/ 25 сентября 2019

Я пытаюсь загрузить данные 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.001, MYDB.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".

Ответы [ 2 ]

1 голос
/ 26 сентября 2019

То, что сказал Пол Вернон, правильно и даже предложено, поскольку загрузка 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'
    )
)
0 голосов
/ 25 сентября 2019

Возможно, это не тот вариант использования, который вам нужен, но вы можете создать сжатую версию данных в таблице, используя инструкцию EXTERNAL TABLE.Например,

CREATE EXTERNAL TABLE 'supplier.gz'  USING
(CCSID 1208 s3(
    's3.amazonaws.com'
,   '<S3-access-key-ID>'
,   '<S3-secret-access-key>'
    '<my_bucket>'
) 
AS SELECT * FROM supplier

добавление PARTITION ALL в USING даст вам один файл на срез данных, что может быть не тем, что вы хотите, но оператор будет выполняться быстрее.Вы также можете использовать COMPRESS LZ4, и вы получите сжатый файл (или файлы) LZ4, который снова будет быстрее.

...