关于加载的配置参数都是使用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 '\t'
​
    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 数据的更多相关文章

  1. python加载csv数据

    入门机器学习时,一些测试数据是网络上的csv文件.这里总结了两种加载csv文件的方式: 1 通过numpy.urllib2加载 import numpy as np import urllib2 ur ...

  2. ANTLR4加载csv数据

    实现功能: 编写一个自定义的监听器,将逗号分隔符文件(csv)中的数据加载到一种数据结构--“由Map组成的List”中. antlr4文件: grammar CSV; file : hdr row+ ...

  3. Learning Spark中文版--第五章--加载保存数据(1)

      开发工程师和数据科学家都会受益于本章的部分内容.工程师可能希望探索更多的输出格式,看看有没有一些适合他们下游用户的格式.数据科学家可能会更关注他们已经使用的数据格式. Motivation   我 ...

  4. ios网络学习------4 UIWebView的加载本地数据的三种方式

    ios网络学习------4 UIWebView的加载本地数据的三种方式 分类: IOS2014-06-27 12:56 959人阅读 评论(0) 收藏 举报 UIWebView是IOS内置的浏览器, ...

  5. D3.js加载csv和json数据

    1.加载数据的基本命令 D3提供了方法可以对不同的数据类型进行加载,比如d3.text(), d3.xml(), d3.json(), d3.csv(), 和d3.html(). <!DOCTY ...

  6. D3学习-加载本地数据

    在加载本地数据时,弄了很久都无法显示出来,后来才知道是要把数据文件和html文件都加载到服务器上面 这样就可以显示出来了,

  7. Python爬虫爬取异步加载的数据

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理.作者:努力努力再努力 爬取qq音乐歌手数据接口数据 https://y.qq ...

  8. hive加载json数据解决方案

    hive官方并不支持json格式的数据加载,默认支持csv格式文件加载,如何在不依赖外部jar包的情况下实现json数据格式解析,本编博客着重介绍此问题解决方案 首先创建元数据表: create EX ...

  9. cesium 学习(五) 加载场景模型

    cesium 学习(五) 加载场景模型 一.前言 现在开始实际的看看效果,目前我所接触到基本上都是使用Cesium加载模型这个内容,以及在模型上进行操作.So,现在进行一些加载模型的学习,数据的话可以 ...

随机推荐

  1. 函数this指向哪个对象?

    函数的this指向是根据函数调用时所处的执行环境来确定的. this指向对象的情况有四种: 1.使用new关键字时:this会绑定构造函数所创建的对象. function Foo(){ this.a ...

  2. 软件测试人员必备的Python知识图库

    UI自动化测试(Python+Selenium等) 接口测试(Python requests等) 性能测试(Python Locust等) 安全性测试(Python Scapy等) 兼容性测试(Pyt ...

  3. 【1】TOPK最小的K个数(多种方法比较)

    (头条) 最小的第K个数也是和这题topK一样的思路 1.全排序  时间复杂度O(nlogn) 2.Partiton思想 时间复杂度O(n)  (因为不需要像快排一样对所有的分段都两两Partitio ...

  4. (转)数据库_不懂数据库索引的底层原理?那是因为你心里没点BTree

    原文地址:https://www.cnblogs.com/sujing/p/11110292.html 要了解数据库索引的底层原理,我们就得先了解一种叫树的数据结构,而树中很经典的一种数据结构就是二叉 ...

  5. docker下安装mysql数据库

    因为用了.net core 所以想学习下使用docker: 项目中刚好要用到mysql数据库,所用用docker来安装一次,我使用的是5.6版本: 1.拉取官方镜像 docker pull mysql ...

  6. docker 安装redis mysql rabbitmq

    docker redis mysql rabbitmq 基本命令 安装redis 安装mysql 安装rabbitmq 基本命令 命令格式: docker 命令 [镜像/容器]名字 常用命令: sea ...

  7. Vue父子,子父,非父子组件之间传值

    Vue组件基础 纯属随笔记录,具体详细教程,请查阅vue.js网站 子组件给父组件传值: <body> <div id="app"> <my-app& ...

  8. mysql的yearweek 和 weekofyear函数

    1.MySQL 的 YEARWEEK 是获取年份和周数的一个函数,函数形式为 YEARWEEK(date[,mode]) 例如 2010-3-14 ,礼拜天 SELECT YEARWEEK('2010 ...

  9. 【转载】Linux磁盘管理:LVM逻辑卷管理

    Linux学习之CentOS(二十五)--Linux磁盘管理:LVM逻辑卷基本概念及LVM的工作原理 这篇随笔将详细讲解Linux磁盘管理机制中的LVM逻辑卷的基本概念以及LVM的工作原理!!! 一. ...

  10. Load Balancing in gRPC

    背景 基于每次调用的负载均衡 需要注意的是,gRPC的负载均衡发生在每次调用时,而不是每次连接时.换句话说,就算所有的请求来自于同一个客户,我们也希望可以将它们负载均衡到所有的服务器. 负载均衡的方法 ...