日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

使用COPY命令導出Hologres的數據至OSS

阿里云對象存儲(Object Storage Service,簡稱 OSS)是阿里云提供的安全、低成本及高可靠的云存儲服務。本文指導您使用copy to命令語句和hg_dump_to_oss命令語句將查詢的數據導出到指定的OSS。

使用限制

  • 僅當前Hologres實例的Superuser或擁有pg_execute_server_program權限的用戶,才可以使用hg_dump_to_oss導出Hologres的數據至OSS。Superuser可以授予其他用戶pg_execute_server_program權限,命令如下。

    --DB開啟簡單權限模型,執行以下語句
    CALL spm_grant('pg_execute_server_program','云賬號ID/云郵箱/RAM賬號');
    
    --DB使用的是專家權限模型,執行以下語句
    GRANT pg_execute_server_program TO 云賬號ID/云郵箱/RAM賬號;
  • 單次導入至OSS的數據量不能超過5GB。

命令介紹

  • COPY命令COPY命令是PostgreSQL表和標準文件系統之間移動數據的工具,Hologres支持COPY命令。COPY TO語句將SELECT查詢的結果內容復制到一個文件或者其他輸出介質中。COPY FROM語句用于從一個文件復制數據到一個表。

  • hg_dump_to_oss命令:用于將在Hologres中查詢的結果dump到指定的OSS。

COPY命令

如下內容將為您介紹COPY TO命令的具體語法格式和參數說明:

  • 命令格式

    COPY ( query ) TO { PROGRAM 'command' | STDOUT }
        [ [ WITH ] ( option [, ...] ) ]

    其中,option可以是下列之一:

    FORMAT [format_name]
    DELIMITER 'delimiter_character'
    NULL 'null_string'
    HEADER
    QUOTE 'quote_character'
    ESCAPE 'escape_character'
    ENCODING 'encoding_name'
  • 參數說明

    參數

    描述

    query

    輸入的查詢語句。查詢語句前后的圓括號必需保留。

    PROGRAM

    一個要執行的命令,輸出會寫入到該命令的標準輸入。

    STDOUT

    指定輸出,該輸出將同步到客戶端應用。

    FORMAT

    選擇數據格式,其格式可以為text,csv 或者binary。默認為text。

    DELIMITER

    指定分隔文件每行中各列的字符,這必須是一個單一的單字節字符。各數據格式的字符說明如下:

    • text格式中默認是一個制表符(如\t)。

    • csv格式默認是一個逗號(,)。

    • binary格式時不支持使用這個選項。

    NULL

    指定表示一個空值的字符串。各數據格式的字符說明如下:

    • text格式中默認是\N。

    • csv格式默認是一個未加引用的空串。

    • binary格式時不支持使用這個選項。

    HEADER

    指定文件包含標題行,其中有每一列的名稱。只有csv格式支持該選項。

    QUOTE

    指定應該出現在一個匹配QUOTE值的數據字符之前的字符,這必須是一個單一的單字節字符。 默認和QUOTE值一樣。只有csv格式支持該選項。

    ENCODING

    指定文件按照encoding_name編碼。如果省略,將使用當前的客戶端編碼。

hg_dump_to_oss命令

如下內容將為您介紹hg_dump_to_oss命令的具體語法格式和參數說明,在Hologres中hg_dump_to_oss命令與COPY TO命令組合在一起使用。

  • 命令格式

    COPY (query) TO PROGRAM 'hg_dump_to_oss --AccessKeyId <accessid> --AccessKeySecret <accesskey> --Endpoint <ossendpoint> --BucketName <bucketname> --DirName <dirname> --FileName <filename> --BatchSize <xxx> ' (DELIMITER ',', HEADER true, FORMAT CSV);
    說明

    <dirname>前請不要添加/\等字符。

  • 參數說明

    參數

    描述

    示例

    query

    輸入的查詢語句。

    select * from dual;

    AccessKeyId

    當前賬號的AccessKey ID。

    您可以單擊AccessKey 管理,獲取AccessKey ID。

    AccessKeySecret

    當前賬號的AccessKey Secret。

    Endpoint

    OSS的經典網絡訪問域名。

    您可以單擊Bucket列表頁面的目標Bucket名稱,進入Bucket詳情頁查看。

    oss-cn-beijing-internal.aliyuncs.com

    BucketName

    OSS對應的Bucket名稱。

    dummy_bucket

    DirName

    OSS存放輸出結果的目錄。

    testdemo/

    FileName

    (可選)OSS對應的文件名稱。

    file_name

    BatchSize

    每次執行hg_dump_to_oss的行數,默認為1000

    5000

    DELIMITER

    結果列之間的分隔符,默認為制表符(Tab-separated Values,簡稱TSV)。

    ','

使用示例

在Hologres中hg_dump_to_oss命令與COPY TO命令的使用示例如下。

-- 將Hologres內部表數據dump到指定OSS
COPY (SELECT * FROM holo_test LIMIT 2) TO PROGRAM 'hg_dump_to_oss --AccessKeyId <access id> --AccessKeySecret <access key> --Endpoint oss-cn-hangzhou-internal.aliyuncs.com --BucketName hologres-demo --DirName holotest/ --FileName file_name --BatchSize 3000' DELIMITER ',';

-- 將Hologres外部表數據dump到指定OSS
COPY (SELECT * FROM foreign_holo_test LIMIT 20) TO PROGRAM 'hg_dump_to_oss --AccessKeyId <access id> --AccessKeySecret <access key> --Endpoint oss-cn-hangzhou-internal.aliyuncs.com --BucketName hologres-demo --DirName holotest/ --FileName file_name --BatchSize 3000' (DELIMITER ',', HEADER true);

-- 跨region dump到指定OSS
COPY (SELECT * FROM holo_test_1 LIMIT 20) TO PROGRAM 'hg_dump_to_oss --AccessKeyId <access id> --AccessKeySecret <access key> --Endpoint oss-cn-beijing-internal.aliyuncs.com --BucketName hologres-demo --DirName holotest/ --FileName file_name --BatchSize 3000' (DELIMITER ',', HEADER true, FORMAT CSV);
說明

Hologres支持跨地域導出數據至指定的OSS。例如,可以導出杭州地域的實例查詢出的數據至北京地域的OSS。

常見問題

常見的報錯內容及解決方法如下:

  • ERROR: syntax error at or near ")"LINE 1: COPY (select 1,2,3 from ) TO PROGRAM 'hg_dump_to_oss2 --Acce...

    輸入的query有誤,請檢查對應的查詢語句。

  • DETAIL: child process exited with exit code 255

    選擇的OSS網絡類型有誤。如果您使用的是公共云,請選擇經典網絡

  • DETAIL: command not found

    您需要配置DUMP TO OSSprogramhg_dump_to_oss,否則會出現該報錯。

  • ERROR: program "hg_dump_to_oss ...” failed DETAIL: child process exited with exit code 101

    輸入的AccessKeyId不合法,請使用當前賬號的AccessKey ID。

  • ERROR: program "hg_dump_to_oss ...” failed DETAIL: child process exited with exit code 102

    輸入的AccessKeySecret不合法,請使用當前賬號的AccessKey Secret。

  • ERROR: program "hg_dump_to_oss ...” failed DETAIL: child process exited with exit code 103

    輸入的Endpoint不合法,請確認對應OSS經典網絡的Endpoint。

  • ERROR: program "hg_dump_to_oss ...” failed DETAIL: child process exited with exit code 104

    輸入的BucketName不合法,請確認對應的Bucket名稱。

  • ERROR: program "hg_dump_to_oss ..." failed DETAIL: child process exited with exit code 105

    缺少參數,請對照參數說明,檢查必選參數是否均已配置。

  • ERROR: program "hg_dump_to_oss ...” failed DETAIL: child process exited with exit code 255

    一般情況下是由于holo server與指定的OSS網絡不通導致該報錯,可以更換OSS域名(例如:OSS網絡類型選擇經典網絡)。更多關于OSS的域名信息,請參見訪問域名和數據中心