Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
MaxKey单点登录官方
Blazer
提交
0ff06897
B
Blazer
项目概览
MaxKey单点登录官方
/
Blazer
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
B
Blazer
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
0ff06897
编写于
4月 09, 2019
作者:
MaxKey单点登录官方
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
README
上级
d0070ad3
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
200 addition
and
15 deletion
+200
-15
README.md
README.md
+200
-15
未找到文件。
README.md
浏览文件 @
0ff06897
#Blazer/数据传播者
#
Blazer/数据传播者
Blazer意为
**传播者**
,主要实现不同数据库之间的数据同步,导出数据库表结构创建语句。
1.
导出数据库表数据到txt/CSV文件(多线程)或者excel(.xlsx/.xls);
...
...
@@ -118,7 +118,7 @@ ${JAVA_EXEC} ${JAVA_OPTS} -classpath ${JAVA_CLASSPATH} ${JAVA_MAINCLASS} --confi
echo
run finished
```
实现Oracle到greenplum数据同步
###### 实现Oracle到greenplum数据同步pipeLine
```
xml
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns=
"http://www.springframework.org/schema/beans"
...
...
@@ -133,7 +133,7 @@ echo run finished
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util.xsd"
>
<!-- Application properties configs
-->
<!-- Application properties configs 应用程序属性配置文件
-->
<bean
id=
"propertySourcesPlaceholderConfigurer"
class=
"org.springframework.context.support.PropertySourcesPlaceholderConfigurer"
>
<property
name=
"locations"
>
<list>
...
...
@@ -148,9 +148,7 @@ echo run finished
<!-- Datastore configuration /数据源配置 -->
<import
resource=
"database.xml"
/>
<!-- FULL 在插入前进行删除,默认 -->
<!-- INCREMENT 先清除条件相关数据,然后按照条件进行增量插入 -->
<bean
id=
"transData"
class=
"com.blazer.trans.TransData"
>
<!--源数据库-->
<property
name=
"sourceDataSource"
ref=
"datasource_oracle"
/>
...
...
@@ -160,35 +158,222 @@ echo run finished
<property
name=
"targetDataSource"
ref=
"datasource_greenplum"
/>
<property
name=
"toUrl"
value=
"${datasource_greenplum.url}"
/>
<property
name=
"toUser"
value=
"${datasource_greenplum.username}"
/>
<!--
全量
-->
<!-- FULL 在插入前进行删除,默认 -->
<!--
INCREMENT 先清除条件相关数据,然后按照条件进行增量插入
-->
<property
name=
"transType"
value=
"FULL"
/>
<property
name=
"tablesList"
>
<util:list
list-class=
"java.util.ArrayList"
>
<bean
class=
"com.db.TableDescribe"
>
<!--源表名-->
<property
name=
"tableName"
value=
"S
IGNAL
"
/>
<property
name=
"tableName"
value=
"S
TUDENT
"
/>
<!--目标表名-->
<property
name=
"targetTableName"
value=
"S
IGNAL
"
/>
<property
name=
"targetTableName"
value=
"S
TUDENT
"
/>
<!--筛选条件-->
<property
name=
"whereSqlString"
value=
"
name='TEST
'"
/>
<property
name=
"whereSqlString"
value=
"
CLASSES='2020
'"
/>
</bean>
<bean
class=
"com.db.TableDescribe"
>
<property
name=
"tableName"
value=
"CALENDAR"
/>
<property
name=
"targetTableName"
value=
"M_CALENDAR"
/>
</bean>
</util:list>
</property>
</bean>
<!-- 配置执行的任务列表 -->
<util:list
id=
"pipeLineTask"
list-class=
"java.util.ArrayList"
>
<ref
bean=
"transData"
/>
</util:list>
</beans>
```
######数据库数据导出到文件(csv,xlsx,xls)pipeLine
```
xml
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns=
"http://www.springframework.org/schema/beans"
xmlns:context=
"http://www.springframework.org/schema/context"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xmlns:util=
"http://www.springframework.org/schema/util"
xsi:schemaLocation=
"
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util.xsd"
>
<!-- Application properties configs 应用程序属性配置文件-->
<bean
id=
"propertySourcesPlaceholderConfigurer"
class=
"org.springframework.context.support.PropertySourcesPlaceholderConfigurer"
>
<property
name=
"locations"
>
<list>
<value>
/pipeline/config/applicationConfig.properties
</value>
</list>
</property>
<property
name=
"ignoreUnresolvablePlaceholders"
value=
"true"
/>
</bean>
<!-- Datastore configuration /数据源配置 -->
<import
resource=
"database.xml"
/>
<!--基本配置-->
<bean
id=
"exportBasicConfigure"
class=
"com.blazer.export.file.BasicConfigure"
>
<property
name=
"sourceDataSource"
ref=
"datasource_oracle"
/>
<property
name=
"fromUrl"
value=
"${datasource_oracle.url}"
/>
<property
name=
"fromUser"
value=
"${datasource_oracle.username}"
/>
<!--每次写条数-->
<property
name=
"commitNumber"
value=
"400"
/>
<!--导出线程-->
<property
name=
"threadSize"
value=
"1"
/>
<!--导出文件格式 csv/xlsx/xls-->
<property
name=
"fileType"
value=
"csv"
/>
<!--导出文件路径-->
<property
name=
"exportFilePath"
value=
"D:/dmp/"
/>
<!--导出文件后缀 csv(.txt,.csv)/xlsx(.xlsx)/xls(.xls) -->
<property
name=
"fileNameSuffix"
value=
".txt"
/>
<!--导出文件字段分割-->
<property
name=
"terminatedString"
value=
"|+|"
/>
</bean>
<!--导出基本配置-->
<bean
id=
"transDataExport_STUD"
class=
"com.blazer.export.file.TransDataExport"
>
<property
name=
"sourceDataSource"
ref=
"datasource_oracle"
/>
<property
name=
"fromUrl"
value=
"${datasource_oracle.url}"
/>
<property
name=
"fromUser"
value=
"${datasource_oracle.username}"
/>
<!--导出表名-->
<property
name=
"tableName"
value=
"STUDENT"
/>
<!--导出文件名,其中{yyyyMMdd}为日期格式-->
<property
name=
"outFileName"
value=
"STUDENT_{yyyyMMdd}_000_000"
/>
<!--每次写条数-->
<property
name=
"commitNumber"
value=
"400"
/>
<!--导出线程-->
<property
name=
"threadSize"
value=
"1"
/>
<!--导出文件格式 csv/xlsx/xls-->
<property
name=
"fileType"
value=
"csv"
/>
<!--导出文件路径-->
<property
name=
"exportFilePath"
value=
"D:/dmp/"
/>
<!--导出文件后缀 csv(.txt,.csv)/xlsx(.xlsx)/xls(.xls) -->
<property
name=
"fileNameSuffix"
value=
".txt"
/>
<!--导出文件字段分割-->
<property
name=
"terminatedString"
value=
"|+|"
/>
<!--导出表数据过滤条件-->
<!--
<property name="whereSqlString" value="where length(body)>10000 and length(body)<50000" and FLAG='_EXPORT_ETL_DATE_'/>-->
<property
name=
"whereSqlString"
value=
""
/>
<!--导出字段,如果是*则全表导出-->
<property
name=
"selectFieldsString"
value=
"
STUD_NAME ,
STUD_SEX
"
/>
</bean>
<!-- 配置执行的任务列表 -->
<util:list
id=
"pipeLineTask"
list-class=
"java.util.ArrayList"
>
<ref
bean=
"transDataExport_STUD"
/>
</util:list>
</beans>
```
###### 数据文件导入到数据库
```
xml
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns=
"http://www.springframework.org/schema/beans"
xmlns:context=
"http://www.springframework.org/schema/context"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xmlns:util=
"http://www.springframework.org/schema/util"
xsi:schemaLocation=
"
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util.xsd"
>
<!-- Application properties configs 应用程序属性配置文件-->
<bean
id=
"propertySourcesPlaceholderConfigurer"
class=
"org.springframework.context.support.PropertySourcesPlaceholderConfigurer"
>
<property
name=
"locations"
>
<list>
<value>
/pipeline/config/applicationConfig.properties
</value>
</list>
</property>
<property
name=
"ignoreUnresolvablePlaceholders"
value=
"true"
/>
</bean>
<!-- Datastore configuration /数据源配置 -->
<import
resource=
"database.xml"
/>
<bean
id=
"transDataLoad_STUD"
class=
"com.blazer.load.file.runner.TransDataLoadFile"
>
<!--导入数据源-->
<property
name=
"sourceDataSource"
ref=
"datasource_oracle"
/>
<!--每次提交数据量-->
<property
name=
"commitNumber"
value=
"100"
/>
<!--字段最长限制-->
<property
name=
"limitTextSize"
value=
"0"
/>
<!--导入目标表名-->
<property
name=
"tableName"
value=
"STUDENT"
/>
<!--导入文件名-->
<property
name=
"loadFileName"
value=
"student_2020"
/>
<!--导入文件扩展名类型 csv/xlsx/xls-->
<property
name=
"fileType"
value=
"xls"
/>
<!--导入文件路径-->
<property
name=
"loadFilePath"
value=
"D:/dmp/"
/>
<!--是否跳过首行 true是跳过,false不跳过,默认为false-->
<property
name=
"skipFirstRow"
value=
"true"
/>
<!--导入文件后缀-->
<property
name=
"fileNameSuffix"
value=
".xls"
/>
<!--导入csv类型文件分隔符-->
<property
name=
"terminatedString"
value=
"|+|"
/>
<!--导入字段列表-->
<property
name=
"listTableColumns"
>
<util:list
list-class=
"java.util.ArrayList"
>
<bean
class=
"com.db.TableColumns"
>
<!--导入字段名-->
<property
name=
"columnName"
value=
"STUD_NAME"
/>
<!--导入字段类型-->
<property
name=
"dataType"
value=
"VARCHAR"
/>
<!--导入字段是否跳过-->
<property
name=
"skip"
value=
"false"
/>
<!--导入字段为固定值-->
<property
name=
"fixed"
value=
"false"
/>
<!--导入字段默认值,配合fixed使用-->
<property
name=
"defaultValue"
value=
""
/>
</bean>
<bean
class=
"com.db.TableColumns"
>
<property
name=
"columnName"
value=
"STUD_SEX"
/>
<property
name=
"dataType"
value=
"VARCHAR"
/>
<!--导入字段基于javascript转换脚本-->
<property
name=
"convert"
value=
"
if(dataValue=='M'){
returnValue='男';
}else if(columns[1]=='男'){
returnValue='男';
}
if(dataValue=='F'){
returnValue='女';
}
"
/>
</bean>
</util:list>
</property>
</bean>
<bean
id=
"transDataLoad"
class=
"com.blazer.load.file.TransDataLoad"
>
<!--默认数据源-->
<property
name=
"sourceDataSource"
ref=
"datasource_oracle"
/>
<property
name=
"fromUrl"
value=
"${datasource_oracle.url}"
/>
<property
name=
"fromUser"
value=
"${datasource_oracle.username}"
/>
<!--默认导入线程数-->
<property
name=
"threadSize"
value=
"10"
/>
<!--默认导入文件路径-->
<property
name=
"loadFilePath"
value=
"D:/dmp/"
/>
<!--导入任务列表-->
<property
name=
"transDataLoadFileList"
>
<util:list
list-class=
"java.util.ArrayList"
>
<ref
bean=
"transDataLoad_STUD"
/>
</util:list>
</property>
</bean>
<!-- 配置执行的任务列表 -->
<util:list
id=
"pipeLineTask"
list-class=
"java.util.ArrayList"
>
<ref
bean=
"transDataLoad"
/>
</util:list>
</beans>
```
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录