全部產品
Search
文件中心

:OSS Foreign Table最佳實務

更新時間:Aug 13, 2024

本文介紹OSS Foreign Table相關的提示,例如查看執行計畫、收集統計資訊、切分大檔案以及查看OSS檔案資訊。

查看執行計畫

AnalyticDB PostgreSQL版支援通過EXPLAIN查看OSS Foreign Table查詢語句的執行計畫。查看執行計畫的樣本語句如下:

EXPLAIN SELECT COUNT(*) FROM oss_lineitem_orc WHERE l_orderkey > 14062498;

收集統計資訊

OSS Foreign Table的資料實際儲存在OSS上,AnalyticDB PostgreSQL版預設不會自動收集資料的統計資訊。在複雜情境下的查詢SQL(例如多張表關聯操作),如果不存在統計資訊或統計資訊過時,最佳化器可能會產生低效的查詢計劃。AnalyticDB PostgreSQL版支援使用ANALYZE語句更新OSS Foreign Table的統計資訊,使用方法如下:

  1. 執行EXPLAIN語句查看當前的執行計畫。

    EXPLAIN <table_name>;
  2. 執行ANALYZE語句收集統計資訊。

    ANALYZE <table_name>;
  3. 執行EXPLAIN語句查看ANALYZE後的執行計畫。

    EXPLAIN <table_name>;

切分大檔案

OSS Foreign Table支援多節點並行掃描。當源檔案數量較少時,推薦拆分成多個源檔案,以便於多節點並行掃描。

以下步驟以Linux系統為例,介紹如何切分大檔案:

  1. 擷取當前大檔案的行數。

    wc -l <csv_file>
  2. 按照指定行數切分成多個小檔案,N表示切分後的小檔案中的行數。

    split -l N <csv_file>
    說明

    切分後的小檔案需要保證行的完整性,即同一行記錄只允許存在同一個檔案內,不允許跨檔案存放。通過上述方法切分大檔案即可保證同一行記錄存放在同一檔案中。

查看OSS檔案資訊

您可以執行如下操作,擷取OSS Foreign Table的OSS檔案資訊:

SELECT * FROM get_oss_table_meta('<OSS FOREIGN TABLE>');

相關文檔