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

將本地表串行導出至OSS引擎

您可以通過PolarDB提供的OSSOUTFILE功能,將本地的數據文件導出為CSV文件,并存儲在OSS引擎上。

前提條件

PolarDB集群版本需為如下版本之一:

  • PolarDB MySQL版8.0.2版本且Revision version為8.0.2.2.8或以上。

  • PolarDB MySQL版8.0.1版本且Revision version為8.0.1.1.30或以上。

您可以參見查詢版本號確認集群版本。

注意事項

  • 暫不支持通過DMS連接PolarDB將數據文件導出至OSS引擎,相應的報錯為:

    Can not issue executeUpdate() or executeLargeUpdate() for SELECTs

    您可以通過客戶端或者命令行連接到PolarDB后進行導出。詳情請參見連接數據庫集群

  • 如果您需要增量備份數據至OSS,您可以創建備份計劃,并配置備份計劃來將數據增量備份至OSS。

  • 建議您在只讀節點執行導出任務。您可以在SQL語句中添加HINT語法/*FORCE_SLAVE*/或直接連接只讀節點進行導出。

參數說明

參數

說明

loose_oss_outfile_buffer_size

每個oss outfile線程可以占用的內存大小。取值范圍:102400~536870912。默認值為134217728。單位:Byte。一般占用內存越大,導出速度越快。

loose_max_oss_outfile_threads

PolarDB可以同時啟動的oss outfile線程數量。取值范圍:1~100。默認值為1。單位:個。

您可以使用SHOW STATUS LIKE "Oss_outfile_threads_running";命令查看當前集群正在運行的OSS outfile線程數量。

說明

集群版本為PolarDB MySQL版8.0.1.1.38及以上的版本時,該參數已失效。

說明

使用OSSOUTFILE功能導出CSV格式的數據文件到OSS引擎過程中占用集群最大的總內存為:

loose_max_oss_outfile_threads * loose_oss_outfile_buffer_size

盡量不要使OSSOUTFILE功能占用的總內存超過節點內存的5%,否則可能會影響當前節點上的其他業務。

使用說明

語法

SELECT * FROM table_name INTO OSSOUTFILE 'outfile_path' COLUMNS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' NULL_MARKER BY 'NULL' LINES TERMINATED BY '\n';
說明
  • COLUMNS TERMINATED BY:表示每個字段之間的分隔符。

  • OPTIONALLY ENCLOSED BY:表示字段兩端的標識符,加上OPTIONALLY后,只會在字符串類型的字段兩端加標識符,否則會在所有類型的字段兩端加標識符。

  • NULL_MARKER BY:表示NULL值輸出到文本的字符。NULL的輸出值有如下三種定義方式,優先級從高到低:

    • NULL_MARKER:直接定義NULL的輸出值,NULL_MARKER可以定義為任意值,優先級最高。

    • ESCAPED BY:只能寫單字符,NULL的輸出值為字符+N。例如,ESCAPED BY '\',則NULL會被輸出為\N,優先級第二。

    • NULL(默認):如果以上兩者都沒有,則默認NULL的輸出值為字符串“NULL”,優先級最低。NULL的兩端沒有ENCLOSED標識符。

  • LINES TERMINATED BY:每一行之間的分隔符。

詳情請參見MySQL官方文檔

參數說明

參數

說明

outfile_path

主要標識輸出到OSS的文件位置,包含如下幾部分內容:

  • OSS server信息,用來標識當前使用的OSS節點和上傳的基本路徑。詳情請參見通過OSS外表訪問OSS數據

  • (可選)當前任務單獨的路徑

  • 上傳后的文件名。

上述三者之間用/連接。當前任務單獨的路徑中可以包含多個/,表示使用多級路徑。上傳到OSS引擎后,其整體的文件路徑為:OSS server中的路徑+單獨的路徑。outfile_path中必須包含上傳后的文件名,用來說明最后生成的文件名。

table_name

表名稱。

示例

  1. 假設創建OSS server的語句為:

    CREATE SERVER outserver FOREIGN DATA WRAPPER oss OPTIONS ( EXTRA_SERVER_INFO '{"oss_endpoint": "oss-cn-zhangjiakou.aliyuncs.com", "oss_bucket": "polardb", "oss_access_key_id": "*******", "oss_access_key_secret": "********", "oss_prefix":"B_outfile"}');
  2. 將本地的數據文件導出至OSS,以上傳的OSS文件為oss://polardb/B_outfile/tpch/1t/parallel-lineitem.TXT,bucket名稱為polardb,路徑及文件名稱為B_outfile/tpch/1t/parallel-lineitem.TXT為例。示例如下:

    SELECT * FROM lineitem INTO OSSOUTFILE 'outserver/tpch/1t/parallel-lineitem.TXT' COLUMNS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' NULL_MARKER BY 'NULL' LINES TERMINATED BY '\n';

    當集群版本為PolarDB MySQL版8.0.1.1.38及以上版本時,您可以通過以下命令查看當前導出任務實時占用的總內存數和總線程數。

    • 查看導出任務實時占用的總內存數,單位為字節。

      SHOW STATUS LIKE "%Oss_outfile_memory_used%";
    • 查看導出任務實時占用的總線程數。

      SHOW STATUS LIKE "%Oss_outfile_threads_running%";
    說明

    當您連接集群地址執行導出任務時,必須保證SHOW STATUS命令和導出命令在同一個節點執行,才能查詢當前節點中導出命令占用的內存資源信息。

錯誤說明

若出現錯誤ERROR 1086 (HY000): File 'xxxx' already exists,說明當前OSS上存在同名文件。

有如下兩種解決方法:

  • 手動刪除OSS上對應的文件,再重新執行select into ossoutfile語句。

  • 使用OSS_REPLACE_EXISTED_FILE()的hint來強制覆蓋同名文件。格式如下:

    SELECT /*+ OSS_REPLACE_EXISTED_FILE() */ * FROM lineitem INTO OSSOUTFILE 'outserver/tpch/1t/parallel-lineitem.TXT' COLUMNS TERMINATED BY '|@|' OPTIONALLY ENCLOSED BY '"' NULL_MARKER BY "" LINES TERMINATED BY '\n';
    說明
    • 使用該hint語法會強制覆蓋OSS上的同名文件,覆蓋后未開啟OSS多版本功能時文件無法找回,請慎重考慮。開啟OSS多版本功能請參見版本控制概述

    • hint語法所需的PolarDB集群需為如下版本之一:

      • PolarDB MySQL版8.0.2版本且Revision version為8.0.2.2.9或以上。

      • PolarDB MySQL版8.0.1版本且Revision version為8.0.1.1.31或以上。