pgloader 學習(六) 加載csv 數據

關於加載的配置參數都是使用comand filehtml

command file 參考格式

LOAD CSV
   FROM 'GeoLiteCity-Blocks.csv' WITH ENCODING iso-646-us
        HAVING FIELDS
        (
           startIpNum, endIpNum, locId
        )
   INTO postgresql://user@localhost:54393/dbname
        TARGET TABLE geolite.blocks
        TARGET COLUMNS
        (
           iprange ip4r using (ip-range startIpNum endIpNum),
           locId
        )
   WITH truncate,
        skip header = 2,
        fields optionally enclosed by '"',
        fields escaped by backslash-quote,
        fields terminated by '\t'
    SET work_mem to '32 MB', maintenance_work_mem to '64 MB';

csv 源指南:FROM

指定文件名從何處加載數據,接受encoding 選項
文件名能夠用單引號擴起來,能夠是如下特殊值之一:git

  • inline 在解析命令結束後找到數據,在命令的結尾和數據的開頭之間接受任意數量的空行
  • 標準輸入 從標準輸入中讀取數據
  • filenames matching
    匹配必須符合之前規則
 
[ ALL FILENAMES | [ FIRST ] FILENAME ]
MATCHING regexp
[ IN DIRECTORY '...' ]

fields 指南

該FROM選項還支持可選的逗號分隔的列表字段 描述什麼是預計在名稱CSV數據文件,經過可選的HAVING FIELDS
每一個字段名只能是一個名稱,也能夠是後面帶有該字段的特定讀卡器選項的名稱,用方括號括起來,每一個字段讀卡器
選項支持逗號分隔。sql

  • terminated by
  • 時間格式
    支持的格式
 
- YYYY, YYY, YY for the year part
- MM for the numeric month part
- DD for the numeric day part
- HH, HH12, HH24 for the hour part
- am, AM, a.m., A.M.
- pm, PM, p.m., P.M.
- MI for the minutes part
- SS for the seconds part
- MS for the milliseconds part (4 digits)
- US for the microseconds part (6 digits)
- unparsed punctuation signs: - . * # @ T / and space
 

一個簡單的demopost

column-name [date format 'YYYY-MM-DD HH24-MI-SS.US']
  • null if
    此選項接受一個參數,該參數能夠是關鍵字空格,或者是雙引號字符串
  • trim both whitespace, trim left whitespace, trim right whitespace
    此選項容許從數據的兩側修建讀取數據中的空白

csv 加載選項

  • truncate
    在加載數據以前先執行TRUNCATE
  • drop indexes
    在拷貝數據以前先刪除目標表的index,而後在數據加載完成以後進行create index
  • disable triggers
    當此選項禁用pgloader 在數據加載以前先執行ALTER TABLE … DISABLE TRIGGER ALL,數據
    加載完成以後執行ALTER TABLE … ENABLE TRIGGER ALL
  • skip header
    一個數值,指示pgloader在輸入文件的開頭跳過多少行
  • csv header
    將跳過標題後讀取的第一行作爲字段名稱列表
  • trim unquoted blanks
    在csv 文件中讀取未加引號的值時,請刪除分隔符和值之間的空白
  • keep unquoted blanks
    在讀取未加引號的值時,在分隔符和值之間保留空白
  • fields optionally enclosed by
    將單個字符作爲參數,必須在單引號內找到
  • fields not enclosed
    默認狀況下,pgloader將使用雙引號字符做爲封閉字符。若是您有一個CSV文件,其中未包含字段而且使用雙引號做爲預期的普通字符,
    則使用未包含在CSV解析器中的選項字段來接受這些值
  • fields escaped by
    採用特殊值反斜槓引用或雙引號,或由選項終止的字段支持的任何值(見下文)。當在數據字段自己中找到轉義字段分隔符時,
    此值用於識別轉義字段分隔符。默認爲雙引號。
  • csv escape mode
    採用特殊值引用(默認值)或後續值, 並容許CSV解析器在使用如下值時僅解析轉義字段分隔符或任何字符(包括CSV數據
  • fields terminated by
    將單個字符做爲參數,必須在單引號內找到,而且能夠做爲可打印字符自己給出,特殊值t表示製表字符,或者0x而後是十六進制值,
    讀取爲字符的ASCII代碼。讀取CSV數據時, 此字符用做字段分隔符
  • lines terminated by
    將單個字符做爲參數,必須在單引號內找到,而且能夠做爲可打印字符自己給出,特殊值t表示製表字符,或者0x而後是十六進制值,
    讀取爲字符的ASCII代碼。該字符用於在讀取CSV數據時識別行尾條件

說明

csv 加載的控制選項仍是不少的,也比較靈活spa

參考資料

https://pgloader.readthedocs.io/en/latest/ref/csv.htmlpostgresql

相關文章
相關標籤/搜索