当前位置: 首页 > news >正文

【数据库开发】DataX开发环境的安装部署(Python、Java)

文章目录

  • 1、简介
    • 1.1 DataX简介
    • 1.2 DataX功能
    • 1.3 支持的数据通道
  • 2、DataX安装配置
    • 2.1 DataX
    • 2.2 Java
    • 2.3 Python
  • 3、DataX Web安装配置
    • 3.1 mysql
    • 3.2 DataX Web
      • 3.2.1 简介
      • 3.2.2 架构图
      • 3.2.3 依赖环境
      • 3.2.4 安装
  • 4、入门使用
    • 4.1 DataX自带打印示例测试
    • 4.2 DataX生成任务模板文件
    • 4.3 DataX-Web创建任务
  • 5、FAQ
    • 5.1 DataX-Web连接不上MySQL
    • 5.2 在有总bps限速条件下,单个channel的bps值不能为空,也不能为非正数?
    • 5.3 触发任务报错Cannot run program "python": error=2, No such file or directory
    • 5.4 基于代码重新打包DataX
  • 结语

1、简介

DataX是阿里云DataWorks数据集成的开源版本。下载即可用,支持linux和windows,只需要短短几步骤就可以完成数据的传输。

官网地址:
https://github.com/alibaba/DataX

在这里插入图片描述

1.1 DataX简介

DataX 是阿里云 DataWorks数据集成 的开源版本,在阿里巴巴集团内被广泛使用的离线数据同步工具/平台。DataX 实现了包括 MySQL、Oracle、OceanBase、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、Hologres、DRDS, databend 等各种异构数据源之间高效的数据同步功能。
在这里插入图片描述

1.2 DataX功能

DataX本身作为数据同步框架,将不同数据源的同步抽象为从源头数据源读取数据的Reader插件,以及向目标端写入数据的Writer插件,理论上DataX框架可以支持任意数据源类型的数据同步工作。同时DataX插件体系作为一套生态系统, 每接入一套新数据源该新加入的数据源即可实现和现有的数据源互通。
在这里插入图片描述
DataX本身作为离线数据同步框架,采用Framework + plugin架构构建。将数据源读取和写入抽象成为Reader/Writer插件,纳入到整个同步框架中。

  • Reader:Reader为数据采集模块,负责采集数据源的数据,将数据发送给Framework。
  • Writer: Writer为数据写入模块,负责不断向Framework取数据,并将数据写入到目的端。
  • Framework:Framework用于连接reader和writer,作为两者的数据传输通道,并处理缓冲,流控,并发,数据转换等核心技术问题。

1.3 支持的数据通道

DataX目前支持数据如下:

类型数据源Reader(读)Writer(写)文档
RDBMS 关系型数据库MySQL读 、写
Oracle读 、写
OceanBase读 、写
SQLServer读 、写
PostgreSQL读 、写
DRDS读 、写
Kingbase读 、写
通用RDBMS(支持所有关系型数据库)读 、写
阿里云数仓数据存储ODPS读 、写
ADB
ADS
OSS读 、写
OCS
Hologres
AnalyticDB For PostgreSQL
阿里云中间件datahub读 、写
SLS读 、写
图数据库阿里云 GDB读 、写
Neo4j
NoSQL数据存储OTS读 、写
Hbase0.94读 、写
Hbase1.1读 、写
Phoenix4.x读 、写
Phoenix5.x读 、写
MongoDB读 、写
Cassandra读 、写
数仓数据存储StarRocks读 、写
ApacheDoris
ClickHouse读 、写
Databend
Hive读 、写
kudu
selectdb
无结构化数据存储TxtFile读 、写
FTP读 、写
HDFS读 、写
Elasticsearch
时间序列数据库OpenTSDB
TSDB读 、写
TDengine读 、写

2、DataX安装配置

https://github.com/alibaba/DataX/blob/master/userGuid.md

2.1 DataX

  • 下载DataX的源代码进行编译
wget https://codeload.github.com/alibaba/DataX/zip/master
git clone git@github.com:alibaba/DataX.git

或者

  • 下载DataX的二进制安装包(本文采用的方法)
# wget http://datax-opensource.oss-cn-hangzhou.aliyuncs.com/datax.tar.gz
wget https://datax-opensource.oss-cn-hangzhou.aliyuncs.com/202309/datax.tar.gz

在这里插入图片描述
解压如下:

tar -zxvf datax.tar.gz

在这里插入图片描述
查看文件夹/home/tomcat如下:
在这里插入图片描述
查看文件夹/home/tomcat/datax/bin如下:
在这里插入图片描述
查看文件夹/home/tomcat/datax/job如下:
在这里插入图片描述

2.2 Java

输入命令检查java是否已安装。

java -version

在这里插入图片描述
说明java没有安装。
安装java环境,输入如下代码如下:

apt-get install openjdk-11-jre-headless openjdk-11-jdk-headless

在这里插入图片描述
在这里插入图片描述

2.3 Python

输入命令检查python是否已安装。

python -v

在这里插入图片描述

python3 -v

在这里插入图片描述

3、DataX Web安装配置

3.1 mysql

下载mysql数据库的安装包:

mkdir mysql
cd mysql
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-server_5.7.31-1ubuntu18.04_amd64.deb-bundle.tar

在这里插入图片描述
解压mysql数据库的安装包:

tar xvf mysql-server_5.7.31-1ubuntu18.04_amd64.deb-bundle.tar

在这里插入图片描述

依次安装如下文件:

 libmysqlclient20_5.7.31-1ubuntu18.04_amd64.deblibmysqlclient-dev_5.7.31-1ubuntu18.04_amd64.deblibmysqld-dev_5.7.31-1ubuntu18.04_amd64.debmysql-client_5.7.31-1ubuntu18.04_amd64.debmysql-common_5.7.31-1ubuntu18.04_amd64.debmysql-community-client_5.7.31-1ubuntu18.04_amd64.debmysql-community-server_5.7.31-1ubuntu18.04_amd64.debmysql-community-source_5.7.31-1ubuntu18.04_amd64.debmysql-server_5.7.31-1ubuntu18.04_amd64.deb#mysql-testsuite_5.7.31-1ubuntu18.04_amd64.deb#mysql-community-test_5.7.31-1ubuntu18.04_amd64.deb

比如命令如下:

sudo apt-get install ./mysql-server_5.7.31-1ubuntu18.04_amd64.deb

在这里插入图片描述

测试是否安装成功如下:

mysql -V

在这里插入图片描述
安装完成后查看mysql服务:

netstat -tap | grep mysql

在这里插入图片描述

修改 root 密码和 host:

mysql
use mysql
update user set host = '%' where user = 'root' 
SET PASSWORD FOR 'root'@'%' = PASSWORD('XXXXXXXX');
FLUSH PRIVILEGES;
select user,host from user;
FLUSH PRIVILEGES;

在这里插入图片描述
测试mysql是否能登录成功。
在这里插入图片描述
查看mysql数据库情况:

show databases;

在这里插入图片描述

use dataweb;
show tables;

在这里插入图片描述
执行如下操作,使得远程可以连接mysql数据库。

# 查看监听
netstat -an |grep 3306
# 前监听的是本地回环地址:tcp 0 0 127.0.0.1:3306  0.0.0.0:* LISTEN 
# 远程客户端无法访问# 修改MySQL的本地监听地址
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf修改bind-address 的值为 bind-address = 0.0.0.0保存退出。
也可以修改为本机ip,例如:bind-address = 192.168.111.10# 重启mysql数据库
sudo service mysql restart# 在远程客户端机器上测试下网络,telnet成功说明网络没问题
telnet 192.168.111.10 3306# 注意:阿里云服务器有端口限制,需要去配置下端口访问规则开放3306端口
网址:[https://homenew.console.aliyun.com/](https://homenew.console.aliyun.com/)

在这里插入图片描述
数据库的基本操作命令:

# 直接登陆mysql
mysql -u用户名 -p密码 数据库名
# 例如: 
mysql -uroot -p123456 mysql# 先登陆后面再输入密码和选择数据库
mysql -u root -p
Enter password:  “root用户密码”
mysql> use mysql # 选择要操作的数据库# 切换数据库
use 数据库名;# 查看所有数据库
show databases;  # 查看登陆数据库中所有的表
show tables;  # 查看数据表结构
desc 表名;# 查看登陆用户名 
select user();  # 查看登陆数据库库名
select database();# 查看版本
select version();# 显示当前时间
select now();# 查看所有用户的 用户名、可登陆主机、身份验证插件、密码  
select user,host,plugin,authentication_string from user;# 查看当前登录用户权限
show grants;# 查看任意用户权限(后面说权限的具体含义)
show grants for root@localhost;

数据库的备份及恢复:

# 备份所有数据库:
mysqldump -uroot -p --all-databases > all.db# 备份指定数据库:
mysqldump -uroot -p pydb > test1.db# 备份指定数据库的某些表
mysqldump -uroot -p pydb 表名1 表名2 表名n > test2.db# 备份指定数据库排除某些表(排除表1 和 表2)
mysqldump -uroot -p pydb --ignore-table=pydb.表1 --ignore-table=pydb.表2 > test3.db# 创建test数据库
create database test charset=utf8; # 恢复备份数据,导入的数据库必须存在
mysql -u root -p test < test1.db

卸载mysql:

# 卸载mysql:
1.sudo apt-get autoremove mysql* --purge
2.sudo apt-get remove mysql-server
3.sudo apt-get remove mysql-common# 清理残留数据 
sudo dpkg -l |grep mysql|awk '{print $2}' |sudo xargs dpkg -P 
sudo rm -rf /etc/mysql/ 
sudo rm -rf /var/lib/mysql# 检查是否删除完毕
whereis mysql
sudo find / -name mysql

3.2 DataX Web

https://github.com/WeiYe-Jing/datax-web

3.2.1 简介

DataX集成可视化页面,选择数据源即可一键生成数据同步任务,支持RDBMS、Hive、HBase、ClickHouse、MongoDB等数据源,批量创建RDBMS数据同步任务,集成开源调度系统,支持分布式、增量同步数据、实时查看运行日志、监控执行器资源、KILL运行进程、数据源信息加密等。

3.2.2 架构图

在这里插入图片描述

3.2.3 依赖环境

  • Language: Java 8(jdk版本建议1.8.201以上)
  • Python2.7(支持Python3需要修改替换datax/bin下面的三个python文件,替换文件在doc/datax-web/datax-python3下)
  • Environment: MacOS, Windows,Linux
  • Database: Mysql5.7

3.2.4 安装

https://github.com/WeiYe-Jing/datax-web/blob/master/doc/datax-web/datax-web-deploy.md
在这里插入图片描述

https://pan.baidu.com/s/13yoqhGpD00I82K4lOYtQhg
提取码:cpsk
  • 1)解压安装包
    在选定的安装目录,解压安装包
tar -zxvf datax-web-{VERSION}.tar.gz
  • 2)执行一键安装脚本
    进入解压后的目录,找到bin目录下面的install.sh文件,如果选择交互式的安装,则直接执行
./bin/install.sh
  • 3)数据库初始化
    如果你的服务上安装有mysql命令,在执行安装脚本的过程中则会出现以下提醒:
Scan out mysql command, so begin to initalize the database
Do you want to initalize database with sql: [{INSTALL_PATH}/bin/db/datax-web.sql]? (Y/N)y
Please input the db host(default: 127.0.0.1): 
Please input the db port(default: 3306): 
Please input the db username(default: root): 
Please input the db password(default: ): 
Please input the db name(default: exchangis)
    1. 配置
      在项目目录下/modules/datax-execute/bin/env.properties 指定PYTHON_PATH的路径
vi ./modules/{module_name}/bin/env.properties### 执行datax的python脚本地址
PYTHON_PATH=### 保持和datax-admin服务的端口一致;默认是9527,如果没改datax-admin的端口,可以忽略
DATAX_ADMIN_PORT=

此文件中包括一些默认配置参数,例如:executor.port,json.path,data.path等,具体请查看文件。

检查文件bootstrap.properties:

cd ./datax-web
vi ./modules/datax-admin/conf/bootstrap.properties

在这里插入图片描述
datax-web-server分为2模块:admin 、executor。
检查admin配置修改:

cd ./datax-web
sudo vi ./modules/datax-admin/bin/env.properties
# 修改server port、邮件、java_home等信息

在这里插入图片描述
检查executor 配置修改:


cd ./datax-web
sudo vi ./modules/datax-executor/bin/env.properties

在这里插入图片描述

  • 5)启动服务
    运行bin目录下start-all.sh (或者分别启动admin、executor)。
    一键启动所有服务
./bin/start-all.sh

一键取消所有服务

./bin/stop-all.sh

汇总命令如下:

./bin/start-all.sh # 启动
./bin/stop-all.sh # 停止# 启动后jps,可以看到admin和executor进程
jps
  • 6)查看服务
    在Linux环境下使用JPS命令,查看是否出现DataXAdminApplication和DataXExecutorApplication进程,如果存在这表示项目运行成功;
    如果项目启动失败,请检查启动日志:modules/datax-admin/bin/console.out或者modules/datax-executor/bin/console.out;
    在这里插入图片描述

  • 7)运行
    部署完成后,在浏览器中输入 http://ip:port/index.html 就可以访问对应的主界面(ip为datax-admin部署所在服务器ip,port为为datax-admin 指定的运行端口);

http://192.168.1.123:9527/index.html

输入用户名 admin 密码 123456 就可以直接访问系统;

在这里插入图片描述

4、入门使用

4.1 DataX自带打印示例测试

输入DataX的测试命令如下:

python3 datax.py ../job/job.json

在这里插入图片描述
命令行结果输出:
在这里插入图片描述
初步测试成功。

4.2 DataX生成任务模板文件

通过命令生成datax任务的模板json文件。

cd  ./datax/bin/
python datax.py -r mysqlreader -w mysqlwriter > mysql2mysql.json

在这里插入图片描述
查看文件mysql2mysql.json如下:
在这里插入图片描述

cat mysql2mysql.json

准备数据表如下:
t_user:
在这里插入图片描述
t_user2:
在这里插入图片描述

根据各自需求,按照模板修改文件mysql2mysql.json:

{"job": {"content": [{"reader": {"name":"mysqlreader","parameter": {"column": ["user_id"],"connection": [{"jdbcUrl": ["jdbc:mysql://192.168.36.130:3306/test?useSSL=false"],"table": ["t_user"]}],"password":"123456","username":"root"}},"writer": {"name":"mysqlwriter","parameter": {"column": ["user_id"],"connection": [{"jdbcUrl":"jdbc:mysql://192.168.36.130:3306/test?useSSL=false","table": ["t_user2"]}],"password":"123456","username":"root","writeMode":"insert"}}}],"setting": {"speed": {"channel":"1"}}}
}

①select中字段个数和writer节点上“column”的个数需保持一致,如果能确保 select中的字段与目标表保持一致,可在writer节点的配置上去掉“column”相关配置。
②writer节点的jdbcUrl,不可以同reader节点那样用“[]”括起来。

启动datax同步任务:

python ./datax.py ./mysql2mysql.json

在这里插入图片描述
在这里插入图片描述
修改mysql2mysql.json中的字段数据如下:

"column": ["user_id", "name"],

再次执行命令如下:

python ./datax.py ./mysql2mysql.json

数据表结果更新如下:
在这里插入图片描述

4.3 DataX-Web创建任务

  • 创建项目
    在这里插入图片描述

  • 创建执行器
    在这里插入图片描述

  • 创建数据源
    在这里插入图片描述

  • 创建任务模板
    此步骤是主要是为了后边构建任务的时候,为任务指定执行器。
    在这里插入图片描述

  • 创建任务
    在这里插入图片描述

  • 生成任务json文件
    在这里插入图片描述

  • 管理任务,执行任务
    在这里插入图片描述

  • 查看日志
    在这里插入图片描述

5、FAQ

5.1 DataX-Web连接不上MySQL

在这里插入图片描述

  • 问题:
    Code:[MYSQLErrCode-02], Description:[数据库服务的IP地址或者Port错误,请检查填写的IP地址和Port或者联系DBA确认IP地址和Port是否正确。如果是同步中心用户请联系DBA确认idb上录入的IP和PORT信息和数据库的当前实际信息是一致的]. - 具体错误信息为:com.mysql.jdbc.excep

  • 回答:
    不建议在没有服务器身份验证的情况下建立SSL连接,根据MySQL 5.5.45+、5.6.26+和5.7.6+的要求,如果没有设置显式选项,则必须默认建立SSL连接。为了符合不使用SSL的现有应用程序,verifyServerCertificate属性被设置为“false”。您需要通过设置useSSL=false显式禁用SSL,或者设置useSSL=true并为服务器证书验证提供信任存储。

很简单,在连接数据库的url后面加上参数即可,例如:

jdbc:mysql://localhost:3306/testdb?useSSL=false

使用上述标红的URL,即可解决该警告,标红参数前面为你数据库连接URL,如果有多个参数记得用&连接,例如:

jdbc:mysql://localhost:3306/testdb?characterEncoding=utf-8&useSSL=false

在这里插入图片描述

5.2 在有总bps限速条件下,单个channel的bps值不能为空,也不能为非正数?

解决办法:
修改文件datax/conf/core.json:

"core": {"dataXServer": {"address": "http://localhost:7001/api","timeout": 10000,"reportDataxLog": false,"reportPerfLog": false},"transport": {"channel": {"class": "com.alibaba.datax.core.transport.channel.memory.MemoryChannel","speed": {"byte": 2000000,"record": -1},"flowControlInterval": 20,"capacity": 512,"byteCapacity": 67108864},"exchanger": {"class": "com.alibaba.datax.core.plugin.BufferedRecordExchanger","bufferSize": 32}},
}

修改core -> transport -> channel -> speed -> “byte”: 2000000,将单个channel的大小改为2MB即可。
在这里插入图片描述

5.3 触发任务报错Cannot run program “python”: error=2, No such file or directory

解决办法:
因为Ubuntu自带的python没有/usr/bin/python该目录,data-web源码中默认调用/usr/bin/python,解决方法可以搭建软连接

ln -s /usr/bin/python3 /usr/bin/python

或者若安装了python2也可以

ln -s /usr/bin/python2 /usr/bin/python

5.4 基于代码重新打包DataX

  • 代码下载地址
    https://github.com/taosdata/DataX

datax和datax web可以使用maven进行编译源码和打包,因此需要先安装maven。
在Linux系统中,可以使用以下命令安装maven:

sudo apt-get install maven

在这里插入图片描述

mvn -v

在这里插入图片描述

进入datax源代码目录,执行以下命令进行编译:

mvn clean package assembly:assembly -Dmaven.test.skip=true 

其中,-Dmaven.test.skip=true表示跳过测试。
(1)找不到依赖包:
[ERROR] Failed to execute goal on project hdfsreader: Could not resolve dependencies for project com.alibaba.datax:hdfsreader:jar:0.0.1-SNAPSHOT: Could not find artifact org.pentaho:pentaho-aggdesigner-algorithm:jar:5.1.5-jhyde in nexus-aliyun (https://maven.aliyun.com/repository/central) -> [Help 1]

解决方法:从提示上看,是hdfsreader的包缺失,相应的hdfswriter也应该是不行的。因为我用不到这两个组件,于是在pom.xml中注释掉。
在这里插入图片描述
(2)问题:提示disk空间too little,实际空间有很大?
解决方法:实际是/tmp目录小于默认的1G,设置小一点就好了。配置文件minimalTmpDirGB设置小一点就正常了。
logdir datadir tmpdir 都有自己的min value,在/etc/taos/taos.cfg指定。
然后重启一下涛思服务。

启动服务进程: systemctl start taosd
停止服务进程: systemctl stop taosd
重启服务进程: systemctl restart taosd
查看服务状态: systemctl status taosd

编译完成后,会在target目录下生成datax.tar.gz文件。
将datax.tar.gz文件解压到任意目录,例如/home/datax:

tar -zxvf datax.tar.gz -C /home/

进入datax目录,编辑job目录下的job.json文件,配置datax的运行参数。

安装maven并切换阿里镜像源。不然编译的时候会找不到第三方依赖项。
修改为国内阿里镜像源,找到/usr/share/maven/conf/settings.xml文件,打开并修改以下:

<mirror><id>aliyunmaven</id><mirrorOf>*</mirrorOf><name>阿里云公共仓库</name><url>https://maven.aliyun.com/repository/public</url>
</mirror>

settings.xml文件可能会显示只读。需要修改下权限再保存它。

sudo chmod 777 /usr/share/maven/conf/settings.xml

打包成功后的DataX包位于 {DataX_source_code_home}/target/datax/datax/ 。
在这里插入图片描述

结语

如果您觉得该方法或代码有一点点用处,可以给作者点个赞,或打赏杯咖啡;╮( ̄▽ ̄)╭
如果您感觉方法或代码不咋地//(ㄒoㄒ)//,就在评论处留言,作者继续改进;o_O???
如果您需要相关功能的代码定制化开发,可以留言私信作者;(✿◡‿◡)
感谢各位大佬童鞋们的支持!( ´ ▽´ )ノ ( ´ ▽´)っ!!!

相关文章:

【数据库开发】DataX开发环境的安装部署(Python、Java)

文章目录 1、简介1.1 DataX简介1.2 DataX功能1.3 支持的数据通道 2、DataX安装配置2.1 DataX2.2 Java2.3 Python 3、DataX Web安装配置3.1 mysql3.2 DataX Web3.2.1 简介3.2.2 架构图3.2.3 依赖环境3.2.4 安装 4、入门使用4.1 DataX自带打印示例测试4.2 DataX生成任务模板文件4…...

Flutter实践一:package组织

1.架构概览 为了降低Flutter工程里lib的复杂度&#xff0c;应尽量拆分一些代码成为独立的package。如图&#xff1a; 我们将通用的组件、领域模型、API、features、存储、repository等抽取成了单独的package。这时lib只剩下多国语言、基本的页面、路由等代码了&#xff1a; 这…...

SpringCloud微服务:Ribbon负载均衡

目录 负载均衡策略&#xff1a; 负载均衡的两种方式&#xff1a; 饥饿加载 1. Ribbon负载均衡规则 规则接口是IRule 默认实现是ZoneAvoidanceRule&#xff0c;根据zone选择服务列表&#xff0c;然后轮询 2&#xff0e;负载均衡自定义方式 代码方式:配置灵活&#xff0c;但修…...

【教程】大气化学在线耦合模式WRF/Chem

查看原文>>>区域气象-大气化学在线耦合模式&#xff08;WRF/Chem&#xff09;在大气环境领域实践 随着我国经济快速发展&#xff0c;我国面临着日益严重的大气污染问题。近年来&#xff0c;严重的大气污染问题已经明显影响国计民生&#xff0c;引起政府、学界和人们越…...

GDS 命令的使用 srvctl service TAF application continuity

文档中prim and stdy在同一台机器上&#xff0c;不同机器需要添加address list TAF ENABLED GLOBAL SERVICE in GDS ENVIRONMNET 12C. (Doc ID 2283193.1)​编辑To Bottom In this Document Goal Solution APPLIES TO: Oracle Database - Enterprise Edition - Version 12.1.…...

go 语言之 select

在 Go 语言中&#xff0c;select 是一种用于处理多个通道操作的控制结构。它可以用于在多个通道之间进行非阻塞的选择操作&#xff0c;从而实现并发控制和通信。 select 语句的基本语法如下&#xff1a; go select { case <-channel1:// 当 channel1 可读时执行的代码 cas…...

23款奔驰GLC260L升级小柏林音响 全新15个扬声器

2023年款奔驰GLC260 GLC300升级小柏林之声 3D音效系统 升级小柏林之声音响之后&#xff0c;全车一共有15个喇叭&#xff0c;1台功放&#xff0c;每一首音乐都能在车内掀起激情的音浪&#xff0c;感受纯粹的音乐享受&#xff0c;低频震撼澎湃&#xff0c;让你的心跳与音乐完美契…...

ssh 免密码登录

ssh 免密码登录 1. 原理 1.1 密码登录的通俗解释 把服务器当作一个凤凰社&#xff0c;每次进社公干都需要拿特别的门票入场&#xff0c;门票便是服务器上的账户密码&#xff1b; 1.2 免密登录 对于凤凰社的高级会员&#xff0c;会在社内存储一张高级会员身份&#xff08;id_rsa…...

小程序使用腾讯位置插件获取当前位置

1.小程序后台 设置-第三方设置-插件管理-添加插件 2.进入网站 腾讯位置服务 设置对应的额度 mapPickerPlugin(res) {const key ""; //使用在腾讯位置服务申请的keyconst referer "铅锂运营"; //调用插件的app的名称const category "生活服务,娱…...

零基础学Python怎么学习?我来告诉你

对于IT新手来说&#xff0c;零基础学Python的话&#xff0c;之后可选择的职业方向非常多。Python全栈和爬虫一直以来都是市场的最火的就业岗位之一&#xff0c;它们的薪资回报也算是开发岗里面的顶级了。而且随着大数据和人工智能时代的到来&#xff0c;数据处理和人工智能行业…...

开源软件 FFmpeg 生成模型使用图片数据集

本篇文章聊聊&#xff0c;成就了无数视频软件公司、无数在线视频网站、无数 CDN 云服务厂商的开源软件 ffmpeg。 分享下如何使用它将各种视频或电影文件&#xff0c;转换成上万张图片数据集、壁纸集合&#xff0c;来让下一篇文章中的模型程序“有米下锅”&#xff0c;这个方法…...

Linux Shell 通配符 / glob 模式

1、概念 glob 模式&#xff08;globbing&#xff09;也被称之为 shell 通配符&#xff0c;名字的起源来自于 Unix V6 中的 /etc/glob &#xff08;详见 man 文档&#xff09;。glob 是一种特殊的模式匹配&#xff0c;最常见的是通配符拓展&#xff0c;也可以将 glob 模式设为精…...

深入了解域名与SSL证书的关系

在如今数字化的世界里&#xff0c;网络安全成为我们关注的重要议题之一。为了确保数据在网络上传输的安全性&#xff0c;我们通常会采取各种安全措施&#xff0c;其中最常用的就是SSL证书。然而&#xff0c;很多人并不了解SSL证书是如何与域名相互关联的。 首先&#xff0c;我…...

计算属性与watch的区别,fetch与axios在vue中的异步请求,单文本组件使用,使用vite创建vue项目,组件的使用方法

7.计算属性 7-1计算属性-有缓存 模板中的表达式虽然很方便,但是只能做简单的逻辑操作,如果在模版中写太多的js逻辑,会使得模板过于臃肿,不利于维护,因此我们推荐使用计算属性来解决复杂的逻辑 <!DOCTYPE html> <html lang"en"> <head><meta …...

2023.11.14 hivesql的容器,数组与映射

目录 https://blog.csdn.net/m0_49956154/article/details/134365327?spm1001.2014.3001.5501https://blog.csdn.net/m0_49956154/article/details/134365327?spm1001.2014.3001.5501 8.hive的复杂类型 9.array类型: 又叫数组类型,存储同类型的单数据的集合 10.struct类型…...

Android Glide照片宫格RecyclerView,点击SharedElement共享元素动画查看大图,Kotlin(1)

Android Glide照片宫格RecyclerView&#xff0c;点击SharedElement共享元素动画查看大图&#xff0c;Kotlin&#xff08;1&#xff09; <uses-permission android:name"android.permission.READ_EXTERNAL_STORAGE" /><uses-permission android:name"an…...

SELinux零知识学习八、SELinux策略语言之客体类别和许可(2)

接前一篇文章&#xff1a;SELinux零知识学习七、SELinux策略语言之客体类别和许可&#xff08;1&#xff09; 一、SELinux策略语言之客体类别和许可 2. 在SELinux策略中定义客体类别 SELinux策略中必须包括所有SELinux内核支持的客体类别和许可的声明&#xff0c;以及其它客体…...

deepstream-测试发送AMQP

1. 安装库 * glib 2.0 ---------- sudo apt-get install libglib2.0 libglib2.0-dev Install rabbitmq-c library -------------------------- sudo apt-get install librabbitmq-dev If you plan to have AMQP broker installed on your local machine ------------------…...

LLMs可以遵循简单的规则吗?

由于大型语言模型在现实世界中的责任越来越大&#xff0c;因此如何以可靠的方式指定和约束这些系统的行为很重要。一些开发人员希望为模型设置显式规则&#xff0c;例如“不生成滥用内容”&#xff0c;但这种方式可能会被特殊技术规避。评估LLM在面对对抗性输入时遵循开发人员提…...

如何挑选护眼灯?光照均匀度、色温、眩光这3点!

光照环境对我们的生活质量影响深远&#xff0c;尤其在孩子的成长过程中&#xff0c;良好的光照环境对其学习效率、视力保护都至关重要。光照中的很多因素都对视力有着或大或小的影响&#xff0c;本文将从光照均匀度、眩光、色温三个关键点&#xff0c;深入浅出地让消费者了解其…...

python 实验7

姓名&#xff1a;轨迹 学号&#xff1a;6666 专业年级&#xff1a;2021级软件工程 班级&#xff1a; 66 实验的准备阶段 (指导教师填写) 课程名称 Python开发与应用 实验名称 文件异常应用 实验目的 &#xff08;1&#xff09;掌握基本文件读写的方式&#xff1b; …...

日历应用程序 BusyCal mac中文版软件特点

BusyCal mac是一款日历应用程序&#xff0c;它可以帮助用户轻松地管理日程安排、事件提醒、会议安排等。BusyCal 支持 macOS 和 iOS 平台&#xff0c;并且可以与 iCloud、Google 日历、Exchange 等多种日历服务进行同步。 BusyCal mac软件特点 强大的日历功能&#xff1a;Busy…...

软件测试/测试开发丨接口自动化测试,接口鉴权的多种方式

点此获取更多相关资料 本文为霍格沃兹测试开发学社学员学习笔记分享 原文链接&#xff1a;https://ceshiren.com/t/topic/28000 一、后端接口鉴权常用方法 cookie 携带身份信息请求认证之后的每次请求都携带cookie信息&#xff0c;cookie记录在请求头中 token 携带身份信息请求…...

08 robotframework 修改乱码问题

修改[Python目录]\Lib\site-packages\robotide\lib\robot\utils中的encodingsniffer.py if UNIXY: DEFAULT_SYSTEM_ENCODING UTF-8 DEFAULT_OUTPUT_ENCODING UTF-8 else: DEFAULT_SYSTEM_ENCODING cp1252 DEFAULT_OUTPUT_ENCODING cp437 将DEFAUL…...

门店如何设置多个联系电话和营业时间

​小程序中门店信息是非常重要的&#xff0c;通常需要有门店地址、门店电话和营业时间等。采云小程序支持设置多个门店联系电话&#xff0c;避免客户无法联系到门店。而且&#xff0c;也支持设置多个营业时间时段。例如周一到周五早08:00 - 18:00 。客户在周末下单的时候&#…...

第5章 字典和结构化数据

目录 1. 字典数据类型1.1 添加键值对1.2 删除键值对1.3 keys() 方法1.4 values() 方法1.5 items() 方法1.6 检查字典总是否存在键或值1.7 get() 方法1.8 setdefault() 方法 2. 嵌套2.1 在列表中存储字典2.2 在字典中存储列表2.3 在字典中存储字典 1. 字典数据类型 键值对无序 …...

2023年咸阳市《网络建设与运维》赛题

2023年咸阳市职业院校技能大赛 网络建设与运维赛项 赛卷 023年11月 竞赛说明 一、竞赛项目简介 “网络建设与运维”竞赛共分为模块一:网络理论测试;模块二:网络建设与调试;模块三:服务搭建与运维等三个模块。 二、竞赛注意事项 1.禁止携带和使用移动存储设备、计算...

Spring Cloud Netflix微服务组件-Eureka

目录 CAP理论 注册中心对比 为什么注册中心更适合用AP&#xff1f; 分布式系统AP和CP如何取舍&#xff1f; Eureka核心功能点 Euraka server启动的主线流程 总体流程图 EnableEurekaServer 流程图 EurekaServerAutoConfiguration EurekaServerInitializerConfigurat…...

FreeRTOS_任务创建与删除

1. 函数TaskCreate() 2. 函数xTaskDelete() xTaskDelete(NULL) //参数为NULL&#xff0c;为删除当前任务 3.其它相关任务API函数...

什么是Vue的前端微服务架构(Micro Frontends)?

前端微服务架构&#xff08;Micro Frontends&#xff09;是一种借鉴了后端微服务架构思想的新型前端架构风格。它将前端应用程序拆分为多个小型、独立的部分&#xff0c;每个部分都可以独立部署、独立开发和独立运行。这种架构的出现是为了解决庞大的一整块后端服务带来的变更与…...