码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • kettle学习总结(1)


    1,kettle下载

            kettle本身是Java开发的开源项目,由于某种原因,目前官网已经不支持下载了,可到我的CSDN中下载

            下载完后,还需要安装JDK环境以及对应的数据库驱动包,需要注意的是 该kettle的版本较低,如果你是用的 mysql数据库,需要下载 5.4.7以下的驱动包,下载地址参照以下:

    MySQL :: Download Connector/J

    2,一切准备就绪后就可以开始使用啦

    假设现在有一个场景:需要将本地的所有库同步到目标服务器上对应的数据库中

    其中涉及到 数据表的自动创建 以及 数据的自动同步,这里以全量同步为例。

    实现步骤分为三大块:定义一个入口 任务,该任务中涵盖 start、库表初始化(删除表及数据)、全量同步、结束

    3,main 任务脚本内容

    1. "1.0" encoding="UTF-8"?>
    2. main
    3. /
    4. -
    5. 2024/06/03 09:54:18.592
    6. -
    7. 2024/06/03 09:54:18.592
    8. ID_JOB
    9. Y
    10. ID_JOB
    11. CHANNEL_ID
    12. Y
    13. CHANNEL_ID
    14. JOBNAME
    15. Y
    16. JOBNAME
    17. STATUS
    18. Y
    19. STATUS
    20. LINES_READ
    21. Y
    22. LINES_READ
    23. LINES_WRITTEN
    24. Y
    25. LINES_WRITTEN
    26. LINES_UPDATED
    27. Y
    28. LINES_UPDATED
    29. LINES_INPUT
    30. Y
    31. LINES_INPUT
    32. LINES_OUTPUT
    33. Y
    34. LINES_OUTPUT
    35. LINES_REJECTED
    36. Y
    37. LINES_REJECTED
    38. ERRORS
    39. Y
    40. ERRORS
    41. STARTDATE
    42. Y
    43. STARTDATE
    44. ENDDATE
    45. Y
    46. ENDDATE
    47. LOGDATE
    48. Y
    49. LOGDATE
    50. DEPDATE
    51. Y
    52. DEPDATE
    53. REPLAYDATE
    54. Y
    55. REPLAYDATE
    56. LOG_FIELD
    57. Y
    58. LOG_FIELD
    59. EXECUTING_SERVER
    60. N
    61. EXECUTING_SERVER
    62. EXECUTING_USER
    63. N
    64. EXECUTING_USER
    65. START_JOB_ENTRY
    66. N
    67. START_JOB_ENTRY
    68. CLIENT
    69. N
    70. CLIENT
    71. ID_BATCH
    72. Y
    73. ID_BATCH
    74. CHANNEL_ID
    75. Y
    76. CHANNEL_ID
    77. LOG_DATE
    78. Y
    79. LOG_DATE
    80. JOBNAME
    81. Y
    82. TRANSNAME
    83. JOBENTRYNAME
    84. Y
    85. STEPNAME
    86. LINES_READ
    87. Y
    88. LINES_READ
    89. LINES_WRITTEN
    90. Y
    91. LINES_WRITTEN
    92. LINES_UPDATED
    93. Y
    94. LINES_UPDATED
    95. LINES_INPUT
    96. Y
    97. LINES_INPUT
    98. LINES_OUTPUT
    99. Y
    100. LINES_OUTPUT
    101. LINES_REJECTED
    102. Y
    103. LINES_REJECTED
    104. ERRORS
    105. Y
    106. ERRORS
    107. RESULT
    108. Y
    109. RESULT
    110. NR_RESULT_ROWS
    111. Y
    112. NR_RESULT_ROWS
    113. NR_RESULT_FILES
    114. Y
    115. NR_RESULT_FILES
    116. LOG_FIELD
    117. N
    118. LOG_FIELD
    119. COPY_NR
    120. N
    121. COPY_NR
    122. ID_BATCH
    123. Y
    124. ID_BATCH
    125. CHANNEL_ID
    126. Y
    127. CHANNEL_ID
    128. LOG_DATE
    129. Y
    130. LOG_DATE
    131. LOGGING_OBJECT_TYPE
    132. Y
    133. LOGGING_OBJECT_TYPE
    134. OBJECT_NAME
    135. Y
    136. OBJECT_NAME
    137. OBJECT_COPY
    138. Y
    139. OBJECT_COPY
    140. REPOSITORY_DIRECTORY
    141. Y
    142. REPOSITORY_DIRECTORY
    143. FILENAME
    144. Y
    145. FILENAME
    146. OBJECT_ID
    147. Y
    148. OBJECT_ID
    149. OBJECT_REVISION
    150. Y
    151. OBJECT_REVISION
    152. PARENT_CHANNEL_ID
    153. Y
    154. PARENT_CHANNEL_ID
    155. ROOT_CHANNEL_ID
    156. Y
    157. ROOT_CHANNEL_ID
    158. N
    159. START
    160. SPECIAL
    161. Y
    162. N
    163. N
    164. 0
    165. 0
    166. 60
    167. 12
    168. 0
    169. 1
    170. 1
    171. N
    172. Y
    173. 0
    174. 176
    175. 208
    176. 同步aav
    177. TRANS
    178. filename
    179. ${Internal.Entry.Current.Directory}/sync_aav.ktr
    180. N
    181. N
    182. N
    183. N
    184. N
    185. N
    186. N
    187. N
    188. Basic
    189. N
    190. N
    191. Y
    192. N
    193. N
    194. N
    195. Pentaho local
    196. Y
    197. N
    198. Y
    199. 0
    200. 640
    201. 48
    202. 初始化所有表
    203. JOB
    204. filename
    205. ${Internal.Entry.Current.Directory}/init.kjb
    206. N
    207. N
    208. N
    209. N
    210. N
    211. N
    212. Nothing
    213. Y
    214. N
    215. N
    216. N
    217. N
    218. Y
    219. N
    220. N
    221. Y
    222. 0
    223. 352
    224. 208
    225. DUMMY
    226. SPECIAL
    227. N
    228. Y
    229. N
    230. 0
    231. 0
    232. 60
    233. 12
    234. 0
    235. 1
    236. 1
    237. N
    238. Y
    239. 0
    240. 928
    241. 208
    242. 同步aps
    243. TRANS
    244. filename
    245. ${Internal.Entry.Current.Directory}/sync_aps.ktr
    246. N
    247. N
    248. N
    249. N
    250. N
    251. N
    252. N
    253. N
    254. Basic
    255. N
    256. N
    257. Y
    258. N
    259. N
    260. N
    261. Pentaho local
    262. Y
    263. N
    264. Y
    265. 0
    266. 640
    267. 128
    268. 同步douban
    269. TRANS
    270. filename
    271. ${Internal.Entry.Current.Directory}/sync_douban.ktr
    272. N
    273. N
    274. N
    275. N
    276. N
    277. N
    278. N
    279. N
    280. Basic
    281. N
    282. N
    283. Y
    284. N
    285. N
    286. N
    287. Pentaho local
    288. Y
    289. N
    290. Y
    291. 0
    292. 640
    293. 208
    294. 同步sp-dev
    295. TRANS
    296. filename
    297. ${Internal.Entry.Current.Directory}/sync_sp-dev.ktr
    298. N
    299. N
    300. N
    301. N
    302. N
    303. N
    304. N
    305. N
    306. Basic
    307. N
    308. N
    309. Y
    310. N
    311. N
    312. N
    313. Pentaho local
    314. Y
    315. N
    316. Y
    317. 0
    318. 640
    319. 368
    320. 同步lottery
    321. TRANS
    322. filename
    323. ${Internal.Entry.Current.Directory}/sync_lottery.ktr
    324. N
    325. N
    326. N
    327. N
    328. N
    329. N
    330. N
    331. N
    332. Basic
    333. N
    334. N
    335. Y
    336. N
    337. N
    338. N
    339. Pentaho local
    340. Y
    341. N
    342. Y
    343. 0
    344. 640
    345. 288
    346. START
    347. 初始化所有表
    348. 0
    349. 0
    350. Y
    351. Y
    352. Y
    353. 初始化所有表
    354. 同步aav
    355. 0
    356. 0
    357. Y
    358. Y
    359. N
    360. 同步aav
    361. DUMMY
    362. 0
    363. 0
    364. Y
    365. Y
    366. N
    367. 初始化所有表
    368. 同步douban
    369. 0
    370. 0
    371. Y
    372. Y
    373. N
    374. 初始化所有表
    375. 同步lottery
    376. 0
    377. 0
    378. Y
    379. Y
    380. N
    381. 初始化所有表
    382. 同步sp-dev
    383. 0
    384. 0
    385. Y
    386. Y
    387. N
    388. 初始化所有表
    389. 同步aps
    390. 0
    391. 0
    392. Y
    393. Y
    394. N
    395. 同步aps
    396. DUMMY
    397. 0
    398. 0
    399. Y
    400. Y
    401. N
    402. 同步douban
    403. DUMMY
    404. 0
    405. 0
    406. Y
    407. Y
    408. N
    409. 同步lottery
    410. DUMMY
    411. 0
    412. 0
    413. Y
    414. Y
    415. N
    416. 同步sp-dev
    417. DUMMY
    418. 0
    419. 0
    420. Y
    421. Y
    422. N
    423. METASTORE.pentaho
    424. Default Run Configuration
    425. {"namespace":"pentaho","id":"Default Run Configuration","name":"Default Run Configuration","description":"Defines a default run configuration","metaStoreName":null}
    426. {"_":"Embedded MetaStore Elements","namespace":"pentaho","type":"Default Run Configuration"}
    427. Pentaho local
    428. {"children":[{"children":[],"id":"server","value":null},{"children":[],"id":"clustered","value":"N"},{"children":[],"id":"name","value":"Pentaho local"},{"children":[],"id":"description","value":null},{"children":[],"id":"readOnly","value":"Y"},{"children":[],"id":"sendResources","value":"N"},{"children":[],"id":"logRemoteExecutionLocally","value":"N"},{"children":[],"id":"remote","value":"N"},{"children":[],"id":"local","value":"Y"},{"children":[],"id":"showTransformations","value":"N"}],"id":"Pentaho local","value":null,"name":"Pentaho local","owner":null,"ownerPermissionsList":[]}
    429. 4,kettle.properties变量

      1. 名称 值
      2. local_ip localhost
      3. local_user root
      4. password 123456
      5. schemeName_aav aav
      6. schemeName_aav1 aav1
      7. schemeName_aps aps
      8. schemeName_aps1 aps1
      9. schemeName_douban douban
      10. schemeName_douban1 douban1
      11. schemeName_lottery lottery
      12. schemeName_lottery1 lottery1
      13. schemeName_sp-dev sp-dev
      14. schemeName_sp-dev1 sp-dev1

      5,在使用组件时,经常会遇到一个问题:数据库中某个值设置的是非null,在同步数据时,起始源数据库的表字段值为空字符串,在进入到kettle中时会默认编程null,这时直接同步会报错,需要更改kettle的配置变量。

              kettle.properties -》KETTLE_EMPTY_STRING_DIFFERS_FROM_NULL=Y

      更改后需要重启kettle

    430. 相关阅读:
      5、docker mysql安装
      MagnTek·新品 | 车规级高带宽高精度平行磁场感应电流传感器-MT9519系列
      小华HC32F448串口使用
      【safetensor】Debug
      SD卡通常是哪种类型的flash?
      在指定目录下建立conda虚拟环境后发现没有环境名(激活失败)的解决办法
      【ElasticSearch 集群】Linux安装ElasticSearch集群(图文解说详细版)
      playwright: local variable ‘page‘ referenced before assignment
      C语言实现扫雷小游戏
      西南科技大学派森全套作业
    431. 原文地址:https://blog.csdn.net/qq_35255384/article/details/139453105
      • 最新文章
      • 攻防演习之三天拿下官网站群
        数据安全治理学习——前期安全规划和安全管理体系建设
        企业安全 | 企业内一次钓鱼演练准备过程
        内网渗透测试 | Kerberos协议及其部分攻击手法
        0day的产生 | 不懂代码的"代码审计"
        安装scrcpy-client模块av模块异常,环境问题解决方案
        leetcode hot100【LeetCode 279. 完全平方数】java实现
        OpenWrt下安装Mosquitto
        AnatoMask论文汇总
        【AI日记】24.11.01 LangChain、openai api和github copilot
      • 热门文章
      • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
        奉劝各位学弟学妹们,该打造你的技术影响力了!
        五年了,我在 CSDN 的两个一百万。
        Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
        面试官都震惊,你这网络基础可以啊!
        你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
        心情不好的时候,用 Python 画棵樱花树送给自己吧
        通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
        13 万字 C 语言从入门到精通保姆级教程2021 年版
        10行代码集2000张美女图,Python爬虫120例,再上征途
      Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
      正则表达式工具 cron表达式工具 密码生成工具

      京公网安备 11010502049817号