一、文件的输入
(1)CSV文件输入
CSV:CSV文件是一种带有固定格式的文本文件。

(2)文本文件输入
文本文件:提取日志信息的数据是开发常见的操作,日志信息基本都是文本类型。

可以在内容中限定分隔符
(3)Excel文件输入

可以通过获取头部字段,来查看对应的内容

(4)多文件合并

(5)Get data from XML
XML 指可扩展标记语言(EXtensible Markup Language), XML 被设计用来传输和存储数据。

XPath即为XML****路径语言(XML Path Language),它是一种用来确定XML文档中某部分位置的语言。
XPath基于XML****的树状结构,提供在数据结构树中找寻节点的能力。
语法:选取节点XPath 使用路径表达式在 XML 文档中选取节点。节点是通过沿着路径或者 step 来选取的。

比如以下
获取:testDescription、rowID、v1、v2
XPath路径
testDescription:../../@testDescription
rowID:../@rowID
v1:v1
v2:v2
XML
<AllRows testDescription="1 - simple functionality test">
<Rows rowID="1">
first row chunk of data
<Row>
<v1>1.1.1</v1>
<v2>1.1.2</v2>
</Row>
<Row>
<v1>1.2.1</v1>
<v2>1.2.2</v2>
</Row>
</Rows>
<Rows rowID="2">
second row chunk of data
<Row>
<v1>2.1.1</v1>
<v2>2.1.2</v2>
</Row>
<Row>
<v1>2.2.1</v1>
<v2>2.2.2</v2>
</Row>
</Rows>
<Rows rowID="3">
third row chunk of data
<Row>
<v1>3.1.1</v1>
<v2>3.1.2</v2>
</Row>
<Row>
<v1>3.2.1</v1>
<v2>3.2.2</v2>
</Row>
</Rows>
</AllRows>

(6)JSON Input
JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。
JSON核心概念:数组、对象、属性
数组:[ ]
对象:{ }
属性:key:value
JSON Path
JSONPath类似于****XPath在xml文档中的定位,JsonPath表达式通常是用来路径检索或设置Json的。
其表达式可以接受"dot--notation"(点记法)和"bracket--notation"(括号记法)格式
点记法:$.store.book[0].title
括号记法:$['store']['book'][0]['title']




比如:从json文件提取id、field和value数据
javascript
{
"status": "ok",
"response": {
"submissions": [
{
"id": "59434767",
"timestamp": "2011-11-21 09:21:53",
"user_agent": "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:8.0) Gecko/20100101 Firefox/8.0",
"remote_addr": "192.168.1.1",
"payment_status": "",
"data": [
{
"field": "13776121",
"value": "Baylor Dallas"
},
{
"field": "13776401",
"value": "CHF"
},
{
"field": "13777966",
"value": "John Doe"
},
{
"field": "13780027",
"value": "9999"
},
{
"field": "13778165",
"value": "None of the above"
},
{
"field": "13778985",
"value": "Yes"
},
{
"field": "13778280",
"value": "Yes"
},
{
"field": "13778424",
"value": "Yes"
},
{
"field": "13778290",
"value": "Yes"
},
{
"field": "13778324",
"value": "Yes"
},
{
"field": "13778864",
"value": "Yes"
}
]
},
{
"id": "59474875",
"timestamp": "2011-11-21 17:01:22",
"user_agent": "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:8.0) Gecko/20100101 Firefox/8.0",
"remote_addr": "192.168.1.1",
"payment_status": "",
"data": [
{
"field": "13776121",
"value": "Healthsouth,"
},
{
"field": "13776401",
"value": "Pneumonia"
},
{
"field": "13777966",
"value": "Jane Doe"
},
{
"field": "13780027",
"value": "390"
},
{
"field": "13778165",
"value": "Experienced a fall?"
},
{
"field": "13861153",
"value": "Yes"
},
{
"field": "13780018",
"value": "Yes"
},
{
"field": "13780006",
"value": "No"
},
{
"field": "13780023",
"value": "Yes"
},
{
"field": "13780024",
"value": "Yes"
}
]
}
],
"total": 2,
"pages": 1
}
}
先抽取:id、data
id:$.response.submissions..id
data:$.response.submissions..data
在从data中抽取field和value
field:$..field
value:$..value
(7)生成记录
静态数据
数据仓库中绝大多数的数据都是业务系统生成的动态数据,但是其中一部分维度数据不是动态的,比如:日期维度。
静态维度数据就可以提前生成。

(8)表输入
我们先了一个概念:数据库驱动
数据库驱动是不同数据库开发商(比如oracle mysql等)为了某一种开发语言环境(比如java)能够实现统一的数据库调用而开发的一个程序,他的作用相当于一个翻译人员。
一般驱动的位置放在\pdi-ce-8.2.0.0-342\data-integration\lib目录
以下是以mysql数据库为例,拉入表输入,新建数据库连接,获取SQL查询语句


二、文件的输出
(1)excel输出
微软的excel一般分为两类:xls 和 exls
xls : 2007年之前
exls : 2007年之后


(2)文本文件输出
数据操作常见的格式是:TXT和CSV


(3)SQL文件输出
SQL文件输出可以导出数据库表的结构和数据。
会根据表内容,输出对应的SQL语句

(4)表输出
表输出就是把数据写入到指定的表!

(5)更新
更新就是把数据库已经存在的记录与数据流里面的记录进行比对,如果不同就进行更新。
注意:如果记录不存在,则会出现错误!

(6)插入更新
插入****更新就是把数据库已经存在的记录与数据流里面的记录进行比对,如果不同就进行更新。
如果记录不存在,则会插入数据!

(7)删除
删除就是删除数据库表中指定条件的数据。
