建议收藏 | 可视化ETL平台--Kettle

news2024/12/23 15:26:14

Kettle的介绍

学习目标

  • 知道什么是ETL及Kettel是开源的ETL工具

  • 了解kettle环境的安装流程

1.ETL介绍

ETL(Extract-Transform-Load的缩写,即数据==抽取、转换、装载==的过程),对于企业或行业应用来说,我们经常会遇到各种数据的处理,转换,迁移,所以了解并掌握一种etl工具的使用,必不可少的,Kettle就是强大的ETL工具。

Kettle是一款国外开源的ETL工具。

2.Kettle介绍

kettle 是纯 java 开发,开源的 ETL工具,用于数据库间的数据迁移 。可以在 Linux、windows、unix 中运行。有图形界面,也有命令脚本还可以二次开发。

Kettle 中文名称叫水壶,该项目的主程序员MATT 希望把各种数据放到一个壶里,然后以一种指定的格式流出。

kettle 的官网是 https://community.hitachivantara.com/docs/DOC-1009855

github 地址是 https://github.com/pentaho/pentaho-kettle

3.Kettle环境搭建

==这边以 windows 下的配置为例,linux 下配置类似。==

jdk版本:jdk1.8.0版本 kettle版本:pdi-ce-9.0版本 MySQL版本:MySQL-8.0

3.1. jdk 安装

由于 kettle 是基于 java 的,因此需要安装 java 环境,并配置 JAVA_HOME 环境变量。

注意:

  • 建议安装 JDK1.8 及以上,7.0以后版本的 kettle 不支持低版本 JDK。

  • Java官网:Java Downloads | Oracle

  • 课程以jdk-8u241-windows-x64版本为例。

步骤如下:

(1)找到资料/安装包中的jdk软件安装包,双击打开。

(2)点击 「下一步」按钮

(3)将路径修改为 c:\opt\jdk1.8.0_241,点击「确定」按钮

(4)点击「下一步」,等待进度条完成。

(5)在新弹出的窗口中,点击「更改」按钮,将JRE的安装路径修改为 c:/opt/jre1.8.0_241。

注意:碰到以下错误可以忽略(是因为机器名中包含了一些JDK不识别的支付)

(6)点击「关闭」完成安装。

3.2环境变量添加

我们需要给计算机配置环境变量JAVA_HOME。

作用:它指向jdk的安装目录,Eclipse/NetBeans/Tomcat等软件就是通过搜索JAVA_HOME变量来找到并使用安装好的jdk。

配置方法:在系统变量里点击新建,变量名填写JAVA_HOME,变量值填写JDK的安装路径。

步骤如下:

(1)找到jdk的安装目录,复制其路径,如果不清楚自己安装的位置,可以采用如下方式:

在搜索栏搜索java.exe,找到并且定位到java.exe文件,将地址栏内容进行复制。

jdk的安装路径即为bin目录之前的目录结构:D:\development\java

(2)找到此电脑右键点击选择属性,弹出如下界面,选择高级系统设置,不同版本系统位置可能不太一样,耐心寻找一下。

(3)进入高级系统设置之后,点击环境变量按钮,即可进入环境变量配置界面。

(4)找到系统变量,选择新建,将JAVA_HOME填写到变量名中,将刚才的复制的jdk安装路径粘贴到变量值内,点击确定完成环境变量添加。

(5)在系统变量里找到Path变量,这是系统自带的,不用新建。双击Path,由于原来的变量值已经存在,故应在已有的变量后加上:

%JAVA_HOME%\bin

%JAVA_HOME%\jre\bin

(6) 检测环境变量是否配置成功,在底部搜索栏输入cmd,按Enter键唤出终端窗口。

输入java,输出如下内容则配置成功。

3.2kettle安装

kettle官网下载地址:Home - Hitachi Vantara

kettle也可以到可以到https://sourceforge.net/projects/pentaho/files/下载

安装步骤如下:

(1)先将kettle下载到本地。

(2)解压Kettle(解压到非中文目录)

(3)进入解压后的文件夹data-integration,双击Spoon.bat,启动kettle。

注意:

  • 由于 kettle 需要连接数据库,因此需要下载对应的数据库驱动。

  • 例如:MySQL 数据库需要下载 mysql-connector-java.jar(在Windows中安装MySQL时已经自动安装)

  • ==课程基于 pdi-ce-9.0.0.0-423 版本进行介绍==,低版本可能有区别。

Mac OS系统安装请参考:《Mac版本kettle环境安装》

4.小结

  • ETL即数据==抽取、转换、装载==的过程。

  • kettle 是纯 java 开发,开源的 ETL工具,用于数据库间的数据迁移 。

  • 安装kettle前需要先安装jdk以及配置环境变量

kettle数据转换

学习目标

  • 知道什么是kettle的数据转换

在开发中,数据不是单一形式的,我们常见的数据形式有很多,比如:Excel,TXT,CSV等本地数据,以及Mysql数据库,Oracle,HIVE,redis,等服务其数据。

那么我们为了能够让数据在同一个空间或平台上进行运算,处理,统计,分析,预测等工作,就需要频繁的对数据进行转换,而kettle就为我们提供了这样一种快速,可靠的可视化转换形式。

ketlle可以在多种数据源之间进行快速转换。

Kettle的基本开发步骤

  • 新建转换

  • 构建Kettle的数据流图

  • 配置数据流图中的各个组件

  • 保存并启动执行

txt数据转换Excel数据

学习目标

  • 熟悉使用kettle将txt数据转换为Excel数据的操作步骤。

1.需求

小A现在有一个txt文件,文件内容如下:

 
 

id,name,age,gender,province,city,region,phone,birthday,hobby,register_date
392456197008193000,张三,20,0,北京市,昌平区,回龙观,18589407692,1970-8-19,美食;篮球;足球,2018-8-6 9:44
267456198006210000,李四,25,1,河南省,郑州市,郑东新区,18681109672,1980-6-21,音乐;阅读;旅游,2017-4-7 9:14
892456199007203000,王五,24,1,湖北省,武汉市,汉阳区,18798009102,1990-7-20,写代码;读代码;算法,2016-6-8 7:34
492456198712198000,赵六,26,2,陕西省,西安市,莲湖区,18189189195,1987-12-19,购物;旅游,2016-1-9 19:15
392456197008193000,张三,20,0,北京市,昌平区,回龙观,18589407692,1970-8-19,美食;篮球;足球,2018-8-6 9:44
392456197008193000,张三,20,0,北京市,昌平区,回龙观,18589407692,1970-8-19,美食;篮球;足球,2018-8-6 9:44

我们需要使用Kettle将这个文件中的数据抽取出来,然后装载到Excel中。

2.新建转换

想要进行数据转换,我们首先要做的事情就是新建一个转换文件,我们点击窗口上的文件>>新建>>转换。

然后将需要的转换方式拖拽到右侧面板并运行即可完成转换

==也可以直接使用快捷键创建:Ctrl + N==

3.构建Kettle的数据流图

要使用Kettle来进行数据处理,首先要做的是构建Kettle的数据流图,也就是用可视化操作像排积木的方式,把要做的事情排列出来。

(1)将左边的核心对象中的输入文件夹下的文本文件输入 拖拽到中间空白区域。

(2)从输出文件夹中将Excel输出 组件拖拽到中间空白区域。

(3)按住Shift键点击 文本文件输入组件,移动鼠标到Excel输出,然后释放鼠标,这样就可以将两个组件连接到一起。

4.配置数据流图中的各个组件

现在数据流的转换方式与转换方向已经确定,接下来要做的就是,配置每个组件,微调参数。

4.1 配置文件文本输入组件

(1)双击文本文件输入组件,在弹出窗口中点击「浏览」按钮。

(2)选择 资料/测试数据 中的 user.txt 文件。

(3)点击「增加」按钮,将文件加入到要抽取的数据中来。注意:不点添加按钮,将不会抽取数据。

(4)点击「内容」选项卡,将分隔符修改为逗号(注意是英文状态的逗号),将编码方式修改为:UTF-8。

(5)点击「字段」选项卡,再点击「获取字段」按钮,可以读取到txt文件中的所有字段。

(6)点击「预览记录」按钮,查看Kettle是否能够读取到 user.txt 中的数据。

显示预览内容:

(7)点击「确定」按钮保存,文本文件输入组件配置完成。

4.2 配置Excel输出组件

(1)双击 Excel输出组件,在弹出窗口中点击「浏览」按钮。

(2)点击「内容」选项卡,设置要将Excel文件输出到哪儿的路径,然后点击确定,再删除文件后缀xls。

(3)点击「字段」选项卡,再点击「获取字段」,将age的格式设置为0,表示只输出不带小数点的数字。

5.保存并启动执行

(1)点击工具条上方的保存按钮,或者按快捷键Ctrl + s。

(2)Kettle会提示让我们保存该数据流图(转换),我们保存到一个指定位置即可,然后点击「保存」按钮即可。

 

(3)点击工具栏上的播放按钮启动执行。

执行完成后,组件右上角有一个绿色的对勾。

(4)执行完后,我们可以到指定的位置,发现Excel文件已经生成,可以看到里面的内容。

6.小结

  • txt转换Excel数据使用到的组件为:

  • 文件文本输入

  • Excel输出

  • 操作步骤为:

  • 新建转换

  • 构建kettle的数据流图

  • 配置数据流图中的各个组件

  • 保存并启动执行

Excel数据转换MySQL数据

学习目标

  • 熟悉使用kettle将Excel数据转换MySQL数据的操作步骤。

1.提取需求

公司来了有个漂亮的程序员小姐姐叫小花,她刚大学毕业,项目经理安排她这样一项工作:

有这样一个Excel文件:user.xls,这个文件内容是这样的。

项目经理想要让她将这些数据导入到MySQL中来。小花刚来,急得团团转,不知所措,机会来了。

最终需求:

需要从Excel中将这些用户的数据,使用Kettle抽取到MySQL中

2.准备工作

为了完成本案例,我们需要准备以下几件工作:

2.1 找到小花的Excel文件

在input文件夹中可以找到user.xlsx文件

2.2 在MySQL数据库中创建数据库

为了方便将Excel文件中的数据抽取到MySQL中,我们必须要创建一个名字叫kettle_demo的数据库,后续Excel中的数据会装载到该数据库的表中。

(1)在DataGrip中右键点击MySQL连接,选择New>>Query Console

(2)在Datagrip中书写SQL语句并运行,我们可以看到kettle_demo数据库名称就已经创建好了。

 
 

# 创建新的数据库,数据库名称为kettle_demo,字符集为utf8
CREATE DATABASE kettle_demo CHARACTER SET utf8;

(3)在kettle中加载MySQL驱动。

Kettle要想连接到MySQL,必须要安装一个MySQL的驱动,就好比我们装完操作系统要安装显卡驱动一样。加载MySQL驱动只需以下三步:

  • 将资料中的 MySQL jdbc 驱动包mysql-connector-java-8.0.13.jar导入到 data-integration/lib中。

  • 找到 data-integration\simple-jndi\jdbc.properties 文件编辑,在末尾加上连接信息:

 
 

MYSQL_DB/type=javax.sql.DataSource
MYSQL_DB/driver=com.mysql.cj.jdbc.Driver
MYSQL_DB/url=jdbc:mysql://localhost:3306/kettle_demo?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT
MYSQL_DB/user=root
MYSQL_DB/password=123456

注意:==账号,密码以及数据库名称根据实际情况进行更改。==

  • 重启Kettle即可。

3.新建转换

想要进行数据转换,我们首先要做的事情就是新建一个转换文件,我们点击窗口上的文件>>新建>>转换。

然后将需要的转换方式拖拽到右侧面板并运行即可完成转换

==也可以直接使用快捷键创建:Ctrl + N==

4.构建Kettle的数据流图

要使用Kettle来进行数据处理,首先要做的是构建Kettle的数据流图,也就是用可视化操作像排积木的方式,把要做的事情排列出来。

(1) 从左边的核心对象中,分别拖入「输入/Excel输入」、「输出/表输出」两个组件到中间区域

(2)然后按住Shift键,在 「Excel输入」组件上点击鼠标左键,拖动到「表输出」组件上,连接两个组件,这样数据流图就构建好了

5.配置数据流图中的各个组件

刚刚已经把数据流图构建好了,那么Kettle就可以将Excel文件中的数据抽取到MySQL中吗?

显然是不行的。Kettle根本不知道要将哪个Excel文件中的数据,抽取到哪个MySQL中。我们需要配置这两个组件,告诉Kettle从哪个Excel文件中抽取,以及将数据装载到哪个MySQL中。

5.1 配置Excel输入组件

(1)双击Excel输入组件,会弹出一个对话框,我们可以再该对话框中配置该组件。

(2)因为此处要抽取的Excel文件为Excel 2007版本,所以指定表格类型为Excel 2007 XLSX (Apache POI)。

(3)随后我们需要找到要抽取的那个Excel文件,点击「浏览」按钮,找到 「资料/测试数据/user.xlsx」文件。

(4)再点击旁边的「增加」按钮,切记:一定要点击增加按钮哦!否则没有效果!

(5)在弹出菜单中,点击「Sheet1」工作簿,并点击 「>」 按钮移动到右边。

(6)点击「字段」选项卡,点击「获取来自头部数据的字段...」按钮,Kettle会从Excel中读取第一行字段名称。

(7)将 age 字段的格式设置为#,register_date的格式设置为 yyyy-MM-dd HH:mm:ss。

(8)点击「预览记录」按钮查看抽取到的数据。

(9)点击「确定」按钮保存。

5.2 配置MySQL组件

要使用Kettle操作MySQL,必须要建立Kettle与MySQL的连接,否则Kettle也不知道操作哪个MySQL库。

(1)双击「表输入」组件,会自动弹出配置窗口,点击「新建」按钮。

(2)配置MySQL连接

  • 输入连接名称,此处用mysql_开头,数据库名称kettle_demo为结尾

  • 在连接类型列表中,选择MySQL

  • 输入连接方式:JNDI

  • JNDI名称填写:MYSQL_DB

(3)点击测试按钮,测试Kettle是否能够正确连接到MySQL

(4)点击确认保存,到这里数据库连接就应该创建好了。

5.3 使用Kettle在MySQL中自动创建表

要保存数据到MySQL,必须先要创建好表。那么,我们是否需要自己手动在MySQL中创建一个表,用来保存Excel中抽取过来的数据呢?

答案是:不需要。Kettke可以自动为我们在MySQL中创建表。

(1)输入目标表的名称为:t_user,后续Kettle将在MySQL中创建一张名为 t_user 的表格。

(2)点击下方的「SQL」按钮,可以看到Kettle会自动帮助我们生成MySQL创建表的SQL语句,我们将age和gender字段的数据类型改为INT类型。

(3)点击执行按钮。Kettle将会让MySQL执行该SQL脚本。执行完后,可以在DataGrip中刷新在数据库,可以查看到Kettle帮助我们创建的t_user表。

(4)点击「确定」按钮,保存配置。

6.保存并启动执行Kettle转换

(1)点击保存按钮保存转换。

(2)点击工具栏上的播放按钮启动执行。

(3)执行成功后,可以看到以下界面。组件上都显示了绿色的对号,执行结果中可以看到:转换完成!日志,说明Kettle的转换已经执行成功!!

7.确认执行结果

Kettle是否已经帮助我们将Excel中的数据抽取并装载到MySQL呢?

我们需要到MySQL中看一看,t_user表中是否有数据呢。

在DataGrip中双击 t_user 表格,可以看到Excel中的数据都已经抽取到了MySQL。

 

到这里,恭喜你,程序员小姐姐小花的问题你已经帮她解决了,晚上让她请你吃个饭吧。

8.小结

  • Excel数据转换MySQL数据使用到的组件为:

  • Excel输入

  • 表输出

  • 操作步骤为:

  • 新建转换

  • 构建kettle的数据流图

  • 配置数据流图中的各个组件

  • 保存并启动执行

  • 使用kettle连接MySQL需要先下载驱动并配置数据

  • 连接MySQL后,可以使用Kettle在MySQL中自动创建表

Excel数据转换MySQL数据

学习目标

  • 熟悉使用kettle将Excel数据转换MySQL数据的操作步骤。

1.提取需求

公司来了有个漂亮的程序员小姐姐叫小花,她刚大学毕业,项目经理安排她这样一项工作:

有这样一个Excel文件:user.xls,这个文件内容是这样的。

 

项目经理想要让她将这些数据导入到MySQL中来。小花刚来,急得团团转,不知所措,机会来了。

最终需求:

需要从Excel中将这些用户的数据,使用Kettle抽取到MySQL中

2.准备工作

为了完成本案例,我们需要准备以下几件工作:

2.1 找到小花的Excel文件

在input文件夹中可以找到user.xlsx文件

2.2 在MySQL数据库中创建数据库

为了方便将Excel文件中的数据抽取到MySQL中,我们必须要创建一个名字叫kettle_demo的数据库,后续Excel中的数据会装载到该数据库的表中。

(1)在DataGrip中右键点击MySQL连接,选择New>>Query Console

(2)在Datagrip中书写SQL语句并运行,我们可以看到kettle_demo数据库名称就已经创建好了。

 
 

# 创建新的数据库,数据库名称为kettle_demo,字符集为utf8
CREATE DATABASE kettle_demo CHARACTER SET utf8;

(3)在kettle中加载MySQL驱动。

Kettle要想连接到MySQL,必须要安装一个MySQL的驱动,就好比我们装完操作系统要安装显卡驱动一样。加载MySQL驱动只需以下三步:

  • 将资料中的 MySQL jdbc 驱动包mysql-connector-java-8.0.13.jar导入到 data-integration/lib中。

  • 找到 data-integration\simple-jndi\jdbc.properties 文件编辑,在末尾加上连接信息:

 
 

MYSQL_DB/type=javax.sql.DataSource
MYSQL_DB/driver=com.mysql.cj.jdbc.Driver
MYSQL_DB/url=jdbc:mysql://localhost:3306/kettle_demo?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT
MYSQL_DB/user=root
MYSQL_DB/password=123456

注意:==账号,密码以及数据库名称根据实际情况进行更改。==

  • 重启Kettle即可。

3.新建转换

想要进行数据转换,我们首先要做的事情就是新建一个转换文件,我们点击窗口上的文件>>新建>>转换。

然后将需要的转换方式拖拽到右侧面板并运行即可完成转换

==也可以直接使用快捷键创建:Ctrl + N==

4.构建Kettle的数据流图

要使用Kettle来进行数据处理,首先要做的是构建Kettle的数据流图,也就是用可视化操作像排积木的方式,把要做的事情排列出来。

(1) 从左边的核心对象中,分别拖入「输入/Excel输入」、「输出/表输出」两个组件到中间区域

(2)然后按住Shift键,在 「Excel输入」组件上点击鼠标左键,拖动到「表输出」组件上,连接两个组件,这样数据流图就构建好了

5.配置数据流图中的各个组件

刚刚已经把数据流图构建好了,那么Kettle就可以将Excel文件中的数据抽取到MySQL中吗?

显然是不行的。Kettle根本不知道要将哪个Excel文件中的数据,抽取到哪个MySQL中。我们需要配置这两个组件,告诉Kettle从哪个Excel文件中抽取,以及将数据装载到哪个MySQL中。

5.1 配置Excel输入组件

(1)双击Excel输入组件,会弹出一个对话框,我们可以再该对话框中配置该组件。

(2)因为此处要抽取的Excel文件为Excel 2007版本,所以指定表格类型为Excel 2007 XLSX (Apache POI)。

(3)随后我们需要找到要抽取的那个Excel文件,点击「浏览」按钮,找到 「资料/测试数据/user.xlsx」文件。

(4)再点击旁边的「增加」按钮,切记:一定要点击增加按钮哦!否则没有效果!

(5)在弹出菜单中,点击「Sheet1」工作簿,并点击 「>」 按钮移动到右边。

(6)点击「字段」选项卡,点击「获取来自头部数据的字段...」按钮,Kettle会从Excel中读取第一行字段名称。

(7)将 age 字段的格式设置为#,register_date的格式设置为 yyyy-MM-dd HH:mm:ss。

(8)点击「预览记录」按钮查看抽取到的数据。

(9)点击「确定」按钮保存。

5.2 配置MySQL组件

要使用Kettle操作MySQL,必须要建立Kettle与MySQL的连接,否则Kettle也不知道操作哪个MySQL库。

(1)双击「表输入」组件,会自动弹出配置窗口,点击「新建」按钮。

(2)配置MySQL连接

  • 输入连接名称,此处用mysql_开头,数据库名称kettle_demo为结尾

  • 在连接类型列表中,选择MySQL

  • 输入连接方式:JNDI

  • JNDI名称填写:MYSQL_DB

(3)点击测试按钮,测试Kettle是否能够正确连接到MySQL

(4)点击确认保存,到这里数据库连接就应该创建好了。

5.3 使用Kettle在MySQL中自动创建表

要保存数据到MySQL,必须先要创建好表。那么,我们是否需要自己手动在MySQL中创建一个表,用来保存Excel中抽取过来的数据呢?

答案是:不需要。Kettke可以自动为我们在MySQL中创建表。

(1)输入目标表的名称为:t_user,后续Kettle将在MySQL中创建一张名为 t_user 的表格。

(2)点击下方的「SQL」按钮,可以看到Kettle会自动帮助我们生成MySQL创建表的SQL语句,我们将age和gender字段的数据类型改为INT类型。

(3)点击执行按钮。Kettle将会让MySQL执行该SQL脚本。执行完后,可以在DataGrip中刷新在数据库,可以查看到Kettle帮助我们创建的t_user表。

(4)点击「确定」按钮,保存配置。

6.保存并启动执行Kettle转换

(1)点击保存按钮保存转换。

(2)点击工具栏上的播放按钮启动执行。

 

(3)执行成功后,可以看到以下界面。组件上都显示了绿色的对号,执行结果中可以看到:转换完成!日志,说明Kettle的转换已经执行成功!!

7.确认执行结果

Kettle是否已经帮助我们将Excel中的数据抽取并装载到MySQL呢?

我们需要到MySQL中看一看,t_user表中是否有数据呢。

在DataGrip中双击 t_user 表格,可以看到Excel中的数据都已经抽取到了MySQL。

到这里,恭喜你,程序员小姐姐小花的问题你已经帮她解决了,晚上让她请你吃个饭吧。

8.小结

  • Excel数据转换MySQL数据使用到的组件为:

  • Excel输入

  • 表输出

  • 操作步骤为:

  • 新建转换

  • 构建kettle的数据流图

  • 配置数据流图中的各个组件

  • 保存并启动执行

  • 使用kettle连接MySQL需要先下载驱动并配置数据

  • 连接MySQL后,可以使用Kettle在MySQL中自动创建表

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/748434.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

redis可视化工具 Another Redis Desktop Manager

Redis API 官方文档:Redis 命令参考 — Redis 命令参考 Redis 可视化工具下载: Releases qishibo/AnotherRedisDesktopManager GitHub(github) 使用: 1、新建连接 点击 新建连接 创建新的连接 切换语言 地址&a…

前端Vue自定义商品订单星级评分 爱心评分组件

随着技术的发展,开发的复杂度也越来越高,传统开发方式将一个系统做成了整块应用,经常出现的情况就是一个小小的改动或者一个小功能的增加可能会引起整体逻辑的修改,造成牵一发而动全身。 通过组件化开发,可以有效实现…

数据分类分级的概念、方法、标准及行业实践

数据战略上升为国家战略,数据资产成为国家各行各业的核心资产。在数字化时代,数据分类分级成为数据资产管理的重要组成部分。 通过数据分类分级管理,可有效使用和保护数据,使数据更易于定位和检索,满足数据风险管理、…

领略大数据分析的魅力:迈向FineBI的世界

版权声明:本文为 小异常 原创文章,非商用自由转载-保持署名-注明出处,谢谢! 本文网址:https://sunkuan.blog.csdn.net/article/details/131698171 文章目录 一、FineBI介绍(6.0版本)1、使用人群…

高并发的哲学原理(三)-- 基础设施并发:虚拟机与 Kubernetes(k8s)

上篇文章说到,Apache 无法处理海量用户的 TCP 连接,那要是由于宇宙时空所限,你的系统就是无法离开 Apache,该怎么承接高并发呢?有办法:既然单机不行,那就把单机虚拟化成多个 Linux 机器&#xf…

关于typescript的类型推断一些理解

我们先看一段代码: interface defaultObjType {[key: string]: any; } interface SquareConfig {color?: string | defaultObjType;width?: number; } let obj:SquareConfig {color: {qw:123}, }if(obj.color && obj.color.qw) { // 这里报错&#xff…

【重要】MThings V0.6.0更新要点

我们听到了您的声音并采取了行动!现在为您提供了一次全面的软件升级,让您的体验更加顺畅、稳定和安全。立即更新,畅享新功能! 下载地址: http://gulink.cn/download 01. [新增]支持系统数据、历史数据、告警功能个人版…

Liunx命令大全及基础知识扫盲

文章目录 1,ifconfig命令2,ens10和eth103,查看PCI地址 1,到达最后一行 ctrl end 1,ifconfig命令 ifconfig 是一个用于配置和显示网络接口信息的命令行工具 1,ifconfig这将显示所有网络接口的详细信息,包括接口名称、MAC 地址、IP 地址、子…

2023中国企业绿电国际峰会

会议时间/地点/主办方 2023年11月16-17日,中国上海,ECV International 会议形式 峰会采用“线下线上”的方式同步进行,中英双语同声传译,线上、线下并行进行和实时互动。 峰会背景 当下全球气候问题正在不断显现,对…

conda修改环境保存地址

可以在命令行中通过conda config指令进行修改 如: 添加环境目录envs_dirs conda config --add envs_dirs F:\conda_env\envs 添加pkgs_dirs conda config --add pkgs_dirs F:\conda_env\pkgs 也可以直接进入Anaconda Nacigator进行修改

Java反序列化:URLDNS的反序列化调试分析

URLDNS链子是Java反序列化分析的第0课,网上也有很多优质的分析文章。 笔者作为Java安全初学者,也从0到1调试了一遍,现在给出调试笔记。 一. Java反序列化前置知识 Java原生链序列化:利用Java.io.ObjectInputStream对象输出流的w…

Openlayers实战:加载OpenStreetMap(快速显示无加载不出状态)

Openlayers官方一直演示的都是用Openstreetmap, 但是目前国内使用通用的new OSM(), 是加载不出来OSM地图的。在我们的实战中代码中,不但能够加载出Openstreetmap, 而且速度非常的快,这就涉及到一个曲线救图的处理方式,请参考源代码。 效果图 源代码 /* * @Author: 大剑师…

如何提取音频中的纯人声?分享三个方法给大家!

在处理音频文件时,有时候我们只希望提取其中的纯人声,以便进行后续处理或编辑。本文将介绍三种简单有效的方法,帮助您提取音频中的纯人声。方法一使用记灵在线工具,方法二使用Audacity,方法三则为您补充其他可选方案。…

Linux—实操篇:实用指令

目录 1、指定运行级别 1.1基本介绍 1.2、示例 1.3、CentOS7 后运行级别说明 2、找回root密码 3、帮助指令 3.1、man指令 3.2、help指令 4、文件目录指令 4.1、pwd 指令 4.2、ls 指令 4.3、cd 指令 4.4、mkdir 指令 4.5、rmdir 指令 4.6、touch 指令 4.7、cp 指…

Unified Named Entity Recognition as Word-Word Relation Classification

原文链接:https://arxiv.org/pdf/2112.10070.pdf AAAI 2022 介绍 NER主要包括三种类型:flat、overlap和discontinuous。目前效果最好的模型主要是:span-based和seq2seq,但前者注重于边界的识别,后者可能存在exposure b…

保护用户数据隐私:Web3 技术在电商行业中的应用

电商行业一直是全球经济发展的重要推动力。然而,随着电商行业的不断发展,中心化的支付、物流和数据存储方式逐渐暴露出安全隐患和隐私问题。这时,Web3 技术以其去中心化、安全性和透明性等特点,为电商行业带来了新的解决方案和可能…

关于var、let、const相同与不同

相同:var、let、const都可以声明变量 var milliaA "milliaA" let milliaB "milliaB" const milliaC "milliaC"console.log(milliaA,milliaB,milliaC) 不同: 一、变量提升,var有提升,let、cons…

初识 Redis - 分布式,内存数据存储,缓存

目录 1. 什么是 Redis 1.1 Redis 内存数据存储 1.2 Redis 用作数据库 1.3 Redis 用作缓存 (cache) 1.4 用作消息中间件 1. 什么是 Redis The open source , in-memory data store used by millions of developers as a database, cache, streaming engine, and message br…

使用 Elastic 时间序列数据流探索 Nginx 指标

作者:Lalit Satapathy Elasticsearch 最近发布了用于指标的时间序列数据流。 这不仅为 Elastic Observability 提供了更好的指标支持,而且还有助于降低存储成本。 我们在之前的博客中讨论过这个问题。 在本博客中,我们通过回顾什么是时间序列…

rar文件怎么打开?简单4步,轻松解决!

什么是rar文件? Rar文件是一种专用的文件格式,比较常用于归档打包和数据的压缩,我们可以将原有的文件数据压缩后保存为rar文件格式。其常用于将文件夹或者大型文件压缩为单个文件,以便更方便地传输和存储。 在日常的工作中&…