一、DeepOps的ETL小笔记-kettle/pentaho(pdi)简介

说到ETL 是英文Extract-Transform-Load的缩写 ,它是用来描述从数据源端抽取,对其进行转换,然后将数据加载到目标端的一些列过程。

很多系统之间都存在一定的批量数据的交互。然而一个好的ETL工具,在开发和使用维护上可以让我们事半功倍。

目前工作的原因用到的比较多的ETL工具就是Kettle(后期这个改名为pentaho data integration)。下载地址:https://community.hitachivantara.com/s/article/data-integration-kettle

目前最新版本pdi-ce-8.3.0.0-371(虽然页面上显示的是8.2 stable)

kettle 是水壶的意思, 很形象的拟物命名方式,让人感受到,把原料放在水壶里,料理完之后,再将数据倒入目标系统。其他的一些工具也是pan、 kitchen 可视化工具是spoon。

spoon允许通过图形界面来设计ETL转换( transformation )和任务(job)。

pan :批量调用运行transformation。 kitchen 也是一个后台运行的程序

kitchen:批量调用运行job。 kitchen 也是一个后台运行的程序。一般情况使用定时任务启动kitchen去运行job

kettle的文件类型分为两种kjb、ktr。

kjb:就是job,可以用来控制 transformation 的运行流程,可以顺序执行或者并发运行;或者脚本;或者设置变量;传输文件;运行shell等;

ktr:就是transform,转换。具体的数据处理步骤,一般情况包含一个input和一个output。在input和output之间可以执行各式各样的转换操作。

kettle解压之后,配置好与kettle版本匹配的jre环境就可以运行。linux、windows、macos有的还需要根据不同的发行版本,安装一下依赖环境。具体可以参照“ How to get PDI up and running ”,我已经把内容copy了出来。

How to get PDI up and running
Linux
Ubuntu 12.04 and later:
The libwebkitgtk package needs to be installed. This can be done by running apt-get install libwebkitgtk-1.0.0
Unzip the downloaded file. Run spoon.sh file, it should be under /data-integration.
On some installations of Ubuntu 14.04, Unity doesn’t display the menu bar. In order to fix that, spoon.sh has a setting to disable this integration, export UBUNTU_MENUPROXY=0 You can try to remove that setting if you wish to see if it works propery on your machine
CentOS 6 Desktop:
The libwebkitgtk package needs to be installed. This can be done by running yum install libwebkitgtk
Unzip the downloaded file and run spoon.sh, it should be under /data-integration.
Windows
After unzipping the downloaded file, you can launch Spoon by navigating to the folder /data-integration and double clicking Spoon.bat
If you are using Infobright, make sure to copy the following files to your Windows system path (for example %WINDIR%/System32/):
libswt/win32/infobright_jni_64bit.dll (Windows 64-bit)
libswt/win32/infobright_jni.dll (Windows 32-bit)

Rename the file to: infobright_jni.dll, then run Spoon.bat to launch Spoon.
Mac OS
After unzipping the downloaded file, you can launch Spoon by navigating to the folder /data-integration and double clicking on the “Data Integration” application icon.

解压目录下samples文件夹内:transformations、jobs、db里面分别有一些可以参考的例子。

后面我会再一步一步的介绍如何配置一个简单的transformation、job等内容。

一、DeepOps的Hadoop小笔记-初识Hadoop

  • 1. Hadoop是干什么的
  • 2. Hadoop主要组件及其生态圈
  • 3. Hadoop的历史

1. Hadoop是干什么?

2. Hadoop主要组件及其生态圈

3. Hadoop的历史


参考资料:

1、Hadoop权威指南(第四版)

DeepOps的flutter小笔记-学习资料索引

学习flutter之前先了解点Dart:https://www.dartcn.com/guides/get-started 中文文档很不错

如果不想配置dart环境可以使用https://dartpad.cn/,里面有不少demo,还有flutter的小例子,在页面右上角切换

flutter实战 : https://book.flutterchina.club/
source code : https://github.com/wendux/flutter_in_action_source_code

flutter startup : https://flutterchina.club/get-started/install/

官方文档 : https://flutter.dev/docs

官方Tutorials : https://flutter.dev/docs/reference/tutorials

A curated list of samples : https://github.com/flutter/samples/blob/master/INDEX.md

Overview: the Dart language : https://dart.dev/guides/language

awesome flutter : https://github.com/Solido/awesome-flutter

Youtube Tensor Programming 的视频教程 :
https://www.youtube.com/watch?v=b2fgMCeSNpY&list=PLJbE2Yu2zumDqr_-hqpAN0nIr6m14TAsd&index=1

flutter pub site : https://pub.dartlang.org/ 会跳转到新网址 https://pub.dev/

极客时间的课程 :

DeepOps的小笔记-linux软硬连接ln命令

https://www.cnblogs.com/pingzhe/p/8462350.html

参考网址

一、介绍
ln命令用于将一个文件创建链接,链接分为软链接(类似于windows系统中的快捷方式)和硬链接(相当于对源文件copy,程序或命令对该文件block的另一个访问路口),命令默认使用硬链接。

二、使用方法
语法:ln [选项][文件]
选项:-s 对源文件创建软链接

三、案例:
1.对文件创建软链接
$ ln -s /root/student.sql /root/db/ln.sql
$ ls -lh db/ln.sql
2.对目录创建软链接
$ ln -s db data
$ ll -h data/
lrwxrwxrwx 1 root root 17 2月 23 15:31 ln.sql -> /root/student.sql
$ ln student.sql db/
3.对文件创建硬链接
$ ln student.sql db/
$ ls -lh db/

软链接:不可以删除源文件,删除源文件导致链接文件找不到,出现文件红色闪烁
硬链接:可以删除源文件,链接文件可以正常打开

DeepOps的python小笔记-整型数字转换为2进制 8进制 16进制

1 将 其它进制 转换为 整型

>>> int('10101', 2) #2进制
21
>>> int('17',8) # 8进制
15
>>> int('ef',16) # 16进制
239
>>> int('14' ,7 ) # 7进制的不支持,不能瞎输
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 7: '7'
>>> int(0b10101) #2进制数字前加0b
21
>>> int(0o17) # 8进制数字前加0o
15
>>> int(0xef) # 16进制数字前加0x
239

2 将整型 转换为 其它进制的

#bin(整型) #二进制
#oct(整型) #八进制
#hex(整型) #十六进制

>>> bin(90)
'0b1011010'
>>> oct(90)
'0o132'
>>> hex(90)
'0x5a'

3 ASCII码的转换

>>>chr(66) 
'B' 
>>>ord('D') 
68