pgloader 学习(六) 加载csv 数据

摘要:
ENABLETRIGGERALLskipheader是一个数字值,指示pgloader在输入文件开头跳过了多少行。csvheader将跳过头后面读取的第一行作为字段名列表。trimnotedbanks读取csv文件中未加引号的值时,请删除分隔符和值之间的空格。keepunquotedbanks读取未加引号的值时,在分隔符和值之间留一个空格。fieldsonationalincluded将单个字符作为参数。您必须发现fieldsnootene在单引号内闭合。默认情况下,pgloader将使用双引号字符作为结束字符。

关于加载的配置参数都是使用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

免责声明:文章转载自《pgloader 学习(六) 加载csv 数据》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇SpringCloud2.0 Zuul 网关路由 基础教程(十)用java api 实现查询 Hive 数据下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Linux下vi命令大全

进入vi的命令 vi filename :打开或新建文件,并将光标置于第一行首 vi +n filename :打开文件,并将光标置于第n行首 vi + filename :打开文件,并将光标置于最后一行首 vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处 vi -r filename :在上次正用vi编辑...

jmeter系列(10)-CSV 数据文件设置

配置元件-》CSV数据文件设置 一、用,默认的设置,跑一下看看,引用的 txt文件,放在和 脚本文件 jmx文件在同一个目录下面,所以用相对路径 ./ 虽然是csv配置文件,最好用txt文件格式,csv格式文件还带有格式,不太好编辑 test.txt文件中,有7行数据,如下   忽略首行 False:一般首行都是字段名字,比如 username,a...

01. SELECT显示和PRINT打印超长的字符

从SQL Server 2005开始,引入了varchar(max) / nvarchar(max) 数据类型,表中可不使用LOB数据类型,从而突破单列8000 / 4000字符的限制,动态SQL也可以拼接得更长;但查看这类字符的时候,在某些地方,字符长度的限制仍然存在,比如: 1. 单列:SSMS里所返回的列值; 2. 动态SQL:print命令打印字符...

nmon:linux性能监控工具

nmon开源性能监控工具,用于监控linux系统的资源消耗信息,并能把结果输出到文件中,然后通过nmon_analyser工具产生数据文件与图形化结果。 一、安装软件 下载nmon安装包:http://nmon.sourceforge.net/pmwiki.php?n=Site.Download选择适合自己系统的版本centos7_x86_64适合的最新...

编一程序,将两个字符串连接起来,不要用strcat函数

编一程序,将两个字符串连接起来,不要用strcat函数 【答案解析】 直接将s2中的字符逐个拷贝到s1的末尾即可,用户需要保证s1中能存的下s2中的字符 获取s1末尾的位置 将s2中的字符逐个拷贝到s1中 【代码实现】 #include<stdio.h> int main() { char s1[100] = {0}; char s2...

lua 分割字符串

-- 参数:待分割的字符串,分割字符   -- 返回:子串表.(含有空串)   function split(str, split_char)           local sub_str_tab = {}     while true do                   local pos = string.find(str, split_cha...