zoukankan      html  css  js  c++  java
  • pgloader 学习(六) 加载csv 数据

    关于加载的配置参数都是使用comand file

    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 '	'
        SET work_mem to '32 MB', maintenance_work_mem to '64 MB';

    csv 源指南:FROM

    指定文件名从何处加载数据,接受encoding 选项
    文件名可以用单引号扩起来,可以是以下特殊值之一:

    • inline 在解析命令结束后找到数据,在命令的结尾和数据的开头之间接受任意数量的空行
    • 标准输入 从标准输入中读取数据
    • filenames matching
      匹配必须符合以前规则
     
    [ ALL FILENAMES | [ FIRST ] FILENAME ]
    MATCHING regexp
    [ IN DIRECTORY '...' ]

    fields 指南

    该FROM选项还支持可选的逗号分隔的列表字段 描述什么是预计在名称CSV数据文件,通过可选的HAVING FIELDS
    每个字段名只能是一个名称,也可以是后面带有该字段的特定读卡器选项的名称,用方括号括起来,每个字段读卡器
    选项支持逗号分隔。

    • 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
     

    一个简单的demo

    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 加载的控制选项还是很多的,也比较灵活

    参考资料

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

  • 相关阅读:
    mysql命令集锦
    linux 删除文件名带括号的文件
    linux下的cron定时任务
    struts2文件下载的实现
    贴一贴自己写的文件监控代码python
    Service Unavailable on IIS6 Win2003 x64
    'style.cssText' is null or not an object
    "the current fsmo could not be contacted" when change rid role
    远程激活程序
    新浪图片病毒
  • 原文地址:https://www.cnblogs.com/rongfengliang/p/11019259.html
Copyright © 2011-2022 走看看