• 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

  • 相关阅读:
    hbase Compaction
    hadoop集群 动态添加或删除节点
    Hadoop节点迁移
    Spark程序运行常见错误解决方法以及优化
    用python执行sql来验证数据是否准时导入了目标库
    kylin2.3版本启用jdbc数据源(可以直接通过sql生成hive表,省去手动导数据到hive,并建hive表的麻烦)
    phoenix 二级索引使用实践
    jenkins任务失败,发送邮件通知
    Coolite学习
    MySql连接和授权命令
  • 原文地址:https://www.cnblogs.com/rongfengliang/p/11019259.html
Copyright © 2020-2023  润新知