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

实训笔记8.23

8.23笔记

  • 8.23笔记
    • 一、Hive中函数
      • 1.1 Hive中内置函数
        • 1.1.1 数学函数
        • 1.1.2 字符串函数
        • 1.1.3 日期函数
        • 1.1.4 条件函数
        • 1.1.5 特殊函数
      • 1.2 Hive的自定义函数
        • 1.2.1 自定义UDF
        • 1.2.2 自定义UDTF
    • 二、Hive的压缩机制
    • 三、数据同步工具Sqoop的安装和使用
      • 3.1 sqoop的概念
      • 3.2 sqoop的核心功能
        • 3.2.1 数据导入import
        • 3.2.2 数据导出export
      • 3.3 sqoop的底层实现
      • 3.4 sqoop的安装和部署
        • 3.4.1 sqoop软件安装三部曲
      • 3.5 sqoop的基本操作
      • 3.6 sqoop的核心功能操作
        • 3.6.1 数据导入import
        • 3.6.2 数据导出
    • 四、相关代码

8.23笔记

一、Hive中函数

Hive主要是用来做统计分析的,函数就是把一些常用的复杂的计算逻辑封装,Hive之所以可以实现统计分析,很大一部分取决于Hive中函数的概念

1.1 Hive中内置函数

1.1.1 数学函数

abs/pow/sqrt/…

1.1.2 字符串函数

  1. concat/concat_ws

  2. split

1.1.3 日期函数

  1. current_date()
  2. date_format(date,format)
  3. datediff(date,date)
  4. date_add(date,day)
  5. date_sub(date,day)

1.1.4 条件函数

  1. if
  2. case

1.1.5 特殊函数

  1. 字符串有关的特殊函数:解析URL类型的字符串的

    1. parse_url
    2. parse_url_tuple
  2. 数组/集合类型有关的函数

    1. array(T...) | map(string key,string value,string key,string value.....)
    2. explode(array/map)---UDTF
    3. collect_set/collect_list(col) --UDAF
    4. split/concat_ws
  3. 侧视图函数lateral view

侧视图函数都是要和UDTF函数结合使用的

lateral view udtf(x...) tableAlias as columnAlias

侧视图的作用就是将普通列的数据和UDTF函数执行完成之后的多行多列的数据做笛卡尔乘积,实现一些普通HQL无法实现的功能

select xxxx from tableA lateral view udtf(x...) tableAlias as columnAlias

  1. 开窗函数

    1. over(partition by 字段 order by 字段 asc|desc rows between 上边界 and 下边界)

      开窗函数的作用就是把表中的数据构建出多个虚拟窗口(窗口其实就是分组),查询表中数据的时候,会识别到数据属于哪个窗口,得到这个窗口相关的一些信息和普通数据列一些返回。

      partition by 的作用就是用来规定以哪个字段进行分组(开窗)

      order by的作用就是对划分的窗口的以指定的字段进行排序

      rows between的作用是为了划分窗口的边界的,每一个窗口默认的边界是 分组中的所有数据,但是窗口也可以是分组的部分行数据。 默认情况下 我们不写边界,默认边界(默认无上边界也无下边界)就是一个组中的所有数据

    2. 开窗函数不能单独使用,开窗函数需要集成一些特殊函数一起使用

      1. first_value(col),last_value(col)

        获取一个窗口中某一列的第一个值或者最后一个值

      2. 排名函数

        1. row_number()

        2. rank()

        3. dense_rank()

          根据当前行数据在窗口的排名 赋予一个排名编号

      3. 聚合函数:

        sum/avg/count/max/min——————获取一个窗口的一个聚合值

    3. 【注意】开窗函数要和一些其他函数结合使用,而其他函数在使用的时候,大部分函数默认的边界都是无上边界和无下边界,而有少部分函数如果没有写窗口边界默认不是无边界,而是有边界的 所以以后大家在使用窗口函数的时候,建议大家最好把窗口边界也给声明上。

1.2 Hive的自定义函数

1.2.1 自定义UDF

1.2.2 自定义UDTF

二、Hive的压缩机制

Hive底层会转换成为MapReduce运行,MapReduce阶段中间都是可以进行压缩的。因此Hive也支持设置压缩机制(也是设置转换的MR程序底层是Map阶段压缩 还是reduce阶段压缩)

Hive底层也可以转换成为Spark或者TEZ程序运行,Spark和TEZ的压缩和Mapreduce的压缩是不一样的。

三、数据同步工具Sqoop的安装和使用

3.1 sqoop的概念

在大部分常见的软件中,比如淘宝、拼多多…,网站都会产生大量的数据 电商网站:订单数据、商品数据、分类数据、用户信息数据、用户行为数据等等 课程网站:订单数据、视频数据、课程数据、用户信息数据等等 … 虽然说不同领域的数据格式和数据含义不一样,但是他们都有一个公共点:数据大部分都是在RDBMS关系型数据库进行存放的。如果我们要对某一个领域的数据进行大数据的统计分析,首先我们必须先把数据从非大数据环境同步到大数据环境中。 大部分数据都是在RDBMS存放的,大数据环境大部分都是HDFS、Hive、HBase。我们需要把RDBMS的数据同步到大数据环境中。

SQOOP软件是Apache开源的顶尖项目,sqoop 被设计用来在RDBMS和Hadoop(Hive、HDFS、HBase)之间进行数据传输的工具 因此sqoop的适用场景限制就非常大,因此这个技术基本很少更新了。软件基本已经从apache退役

3.2 sqoop的核心功能

3.2.1 数据导入import

指的是将数据从RDBMS(MySQL\ORACLE\SQL SERVER)导入到Hadoop环境(HDFS、HBASE、Hive)中

导入的作用就是将数据从非大数据环境导入到大数据环境通过大数据技术做统计分析的

3.2.2 数据导出export

指的是将数据从Hadoop环境(HDFS、Hive、HBase)导出到RDBMS中

将数据统计分析完成得到结果指标,指标在大数据环境存放的,如果对指标做可视化展示,数据在大数据环境下很难进行可视化展示的,因此我们需要把数据从大数据环境导出到非大数据环境RDBMS中进行可视化展示等后续操作

3.3 sqoop的底层实现

sqoop技术也是Hadoop生态的一部分,因为Sqoop进行导入和导出数据时,需要编写针对的导入和导出命令,但是这个命令底层也会转换成为MapReduce程序进行运行。

SQOOP运行基于MapReduce和YARN进行运行

3.4 sqoop的安装和部署

因此sqoop底层是基于Hadoop的,因此sqoop也是安装一个单节点的即可,sqoop也是提供了一个可以导入和导出数据的命令行客户端

3.4.1 sqoop软件安装三部曲

  1. 上传解压
  2. 配置环境变量
  3. 修改软件的配置文件——————sqoop-env.sh文件
  4. sqoop的特殊配置
    1. sqoop可以数据把数据在大数据和非大数据环境之间进行迁移的,非大数据环境主要是RDBMS关系型数据库
    2. sqoop连接RDBMS 底层也是基于JDBC进行连接的,因此如果要使用sqoop连接rdbms,我们需要把对应数据库的jdbc驱动程序jar包放到sqoop的lib目录下
    3. 需要把mysql-connector-java,jar 放到sqoop的lib目录下即可

3.5 sqoop的基本操作

  1. sqoop查看RDBMS中有哪些数据库 sqoop list-databases
  2. sqoop查看某一个数据库下有哪些数据表 sqoop list-tables
  3. 还可以通过sqoop执行sql语句 sqoop eval --query "sql"

需要跟数据库的连接参数
–connect jdbcurl
–username 用户名
–password 密码

3.6 sqoop的核心功能操作

3.6.1 数据导入import

指的是将数据从RDBMS关系型数据库导入到Hadoop环境中(HDFS、Hive、HBase)

  1. 将RDBMS的数据导入到HDFS中 不常用

    1. HDFS导入时连接的RDBMS的参数

      参数说明
      –driver
      –connect
      –username
      –password
      [–table]导入哪张数据表的数据
      [–columns]导入指定数据表的指定列的数据
      [–query]根据查询语句的结果导入数据
      [–where]筛选条件,根据指定的条件导入数据
    2. HDFS导入的参数

      参数名说明
      –target-dir导入到HDFS上的路径
      –delete-target-dir如果HDFS的路径存在 提前删除
      [–as-textfile|sequencefile…]导入到HDFS上的文件的格式
      –num-mappers指定导入的时候底层MapReduce启动多少个Map Task运行
      –fields-terminated-by指定导入的文件列和列的分隔符
      –lines-terminated-by指定导入的文件的行和行的分割符
    3. 导入数据表的所有数据到HDFS:

      sqoop import --driver com.mysql.cj.jdbc.Driver --connect 'jdbc:mysql://single:3306/demo?serverTimezone=UTC&useUnicode=true&characterEncoding=UTF-8' --username root --password Root123456.. --table student --target-dir /import --delete-target-dir --fields-terminated-by '=' --num-mappers 1 --as-sequencefile
      
    4. 导入数据表的指定列的数据到HDFS:

       sqoop import --driver com.mysql.cj.jdbc.Driver --connect 'jdbc:mysql://single:3306/demo?serverTimezone=UTC&useUnicode=true&characterEncoding=UTF-8' --username root --password Root123456.. --table student --columns student_name,student_age --target-dir /import --delete-target-dir  --fields-terminated-by ',' --num-mappers 1 --as-textfile
      
    5. 根据查询语句导入指定的数据到HDFS:

      1. --table table_name --where "条件" 只能导入一张表的数据

        sqoop import --driver com.mysql.cj.jdbc.Driver --connect 'jdbc:mysql://single:3306/demo?serverTimezone=UTC&useUnicode=true&characterEncoding=UTF-8' --username root --password Root123456.. --table student --columns student_name,student_age --where "student_age<40"  --target-dir /import --delete-target-dir  --fields-terminated-by ',' --num-mappers 1 --as-textfile
        
      2. --query "" 可以通过连接查询同时导入多张表的数据

        sqoop import --driver com.mysql.cj.jdbc.Driver --connect 'jdbc:mysql://single:3306/demo?serverTimezone=UTC&useUnicode=true&characterEncoding=UTF-8' --username root --password Root123456.. --query 'select * from student where student_age<40 and $CONDITIONS'  --target-dir /import --delete-target-dir  --fields-terminated-by ',' --num-mappers 1 --as-textfile
        
  2. 将RDBMS的数据导入到Hive数据表中常用

    1. 导入参数

      1. HDFS导入时连接的RDBMS的参数

        参数名说明
        –driver
        –connect
        –username
        –password
        [–table]导入哪张数据表的数据
        [–columns]导入指定数据表的指定列的数据
        [–query]根据查询语句的结果导入数据
        [–where]筛选条件,根据指定的条件导入数据
      2. 导入到Hive中的参数

        参数名说明
        –hive-import指定将数据导入到Hive的数据表,而非HDFS或者HBase
        –hive-database指定将数据导入到Hive的哪个数据库中
        –hive-table指定将数据导入到Hive的哪个数据表中
        –create-hive-table如果Hive表没有提前存在,那么这个选项必须添加,会根据导入的数据自动推断创建Hive数据表,但是如果Hive中的数据表已经存在,那么这个参数一定不能添加
      3. 如果我们将RDBMS中的数据导入到Hive中,有两种导入模式

        1. 全量导入

          第一次导入RDBMS的数据到Hive中

          1. 将RDBMS对应的数据表中的数据全部导入Hive中
          2. --hive-overwrite 将上述指定的数据全部到Hive对应的数据表,数据表会清空
        2. 增量导入 非第一次导入RDBMS数据到Hive

          1. 将RDBMS数据表对应增加的新的数据导入到Hive中

          2. 增量导入又分为两种方式:一种根据自增id导入,第二种根据一个时间戳增量导入

          3. 根据RDBMS数据表的自增id导入:

            参数名说明
            –check-column rdbms数据表的自增列名
            –incremental append
            –last-value上一次导入的自增的值的最后一个
          4. 根据RDBMS数据表的一个时间字段导入:

            参数名说明
            –check-column rdbms数据表的时间列
            –incremental lastmodified
            –last-value“上一次导入的最后一条数据的时间戳”
    2. 全量导入

      如果要做全量导入,Hive的数据表可以不用提前存在,使用create-hive-table自动创建即可

      sqoop import --driver com.mysql.cj.jdbc.Driver --connect 'jdbc:mysql://single:3306/demo?serverTimezone=UTC&useUnicode=true&characterEncoding=UTF-8' --username root --password Root123456.. --table student --hive-import --hive-database test --hive-table student --create-hive-table
      
    3. 增量导入如果要做增量导入,Hive数据表必须提前存在,而且还具备RDBMS对应数据表的历史数据

      1. 按照自增id增量导入

        sqoop import --driver com.mysql.cj.jdbc.Driver --connect 'jdbc:mysql://single:3306/demo?serverTimezone=UTC&useUnicode=true&characterEncoding=UTF-8' --username root --password Root123456.. --table student --hive-import --hive-database test --hive-table student --check-column student_id  --incremental append --last-value 5
        
      2. 按照创建时间增量导入hive-import目前还不支持时间戳增量的方式

    4. 注意:如果将数据导入到Hive中,sqoop一共做了两步操作:

      1、先通过MR程序把数据上传到HDFS上

      2、使用hive的load装载命令将上传到HDFS上的数据文件加载到数据表中 sqoop操作Hive的时候,需要Hive的依赖,但是sqoop默认是没有hive的编程依赖的,因此sqoop迁移数据到hive会报错,如果不想报错,那么我们需要把hive-common.jar包复制到sqoop的lib目录下。

3.6.2 数据导出

四、相关代码

-- 时间日期函数
select date_sub("2022-10-1",2);create table student_score(student_id int,student_name string,student_class int,student_score double
);insert into student_score values(1,"zs",1,80.0),(2,"ls",1,90.0),(3,"ww",1,100.0),(4,"ml",1,85.0),(5,"zsf",2,80.0),(6,"zwj",2,70.0),(7,"qf",2,60.0);
select * from student_score;
-- 查询每一个学生的成绩,并且还要获取同一个班级的学生和前一个学生的成绩的差值
select a.*,abs(a.student_score-a.front_score) as score_diff 
from(select *, first_value(student_score) over(partition by student_class order by student_id asc rows between 1 preceding and current row) as front_scorefrom student_score
) as a-- 查询每一个学生的成绩,同时还要获取同一个班级每一个学生和班级最高分的差值。
-- 对于这个案例,窗口的边界是一组中的所有数据,而非一个组中的部分数据。
-- 如果窗口的边界是族中的所有数据,那么我们需要设置窗口的上边界和下边界都是无边界状态
select * ,abs(student_score-(max(student_score) over(partition by student_class rows between UNBOUNDED PRECEDING and UNBOUNDED FOLLOWING)))  as score_diff
from student_score;select * ,last_value(student_score) over(partition by student_class rows between UNBOUNDED PRECEDING and UNBOUNDED FOLLOWING)  as score_diff
from student_score;

相关文章:

实训笔记8.23

8.23笔记 8.23笔记一、Hive中函数1.1 Hive中内置函数1.1.1 数学函数1.1.2 字符串函数1.1.3 日期函数1.1.4 条件函数1.1.5 特殊函数 1.2 Hive的自定义函数1.2.1 自定义UDF1.2.2 自定义UDTF 二、Hive的压缩机制三、数据同步工具Sqoop的安装和使用3.1 sqoop的概念3.2 sqoop的核心功…...

2023年菏泽市中职学校技能大赛“网络安全”赛项规程

2023年菏泽市中职学校技能大赛 “网络安全”赛项规程 一、赛项名称 赛项名称&#xff1a;网络安全 赛项所属专业大类&#xff1a;信息技术类 二、竞赛目的 通过竞赛&#xff0c;检验参赛选手对网络、服务器系统等网络空间中各个信息系统的安全防护能力&#xff0c;以及分析…...

Android 13 - Media框架(6)- NuPlayer

上一节我们通过 NuPlayerDriver 了解了 NuPlayer 的使用方式&#xff0c;这一节我们一起来学习 NuPlayer 的部分实现细节。 ps&#xff1a;之前用 NuPlayer 播放本地视频很多都无法播放&#xff0c;所以觉得它不太行&#xff0c;这两天重新阅读发现它的功能其实很全面&#xff…...

机器学习|DBSCAN 算法的数学原理及代码解析

机器学习&#xff5c;DBSCAN 算法的数学原理及代码解析 引言 聚类是机器学习领域中一项重要的任务&#xff0c;它可以将数据集中相似的样本归为一类。DBSCAN&#xff08;Density-Based Spatial Clustering of Applications with Noise&#xff09;是一种是一种经典的密度聚类…...

用NUXT.JS,轻松搞定SEO!

nuxt.js 是什么&#xff1f; 如果你正在准备开发一个SEO友好的新项目&#xff0c;而且准备用 vue 开发&#xff0c;那么恭喜你&#xff0c;用 nuxt 是一个成本和效率都比较优秀的方案。 官方文档 知识中心案例 简单介绍下背景&#xff0c;这是一个专门为氚云低代码平台引流…...

什么是电商RPA?电商RPA能解决什么问题?电商RPA实施难点在哪里?

RPA机器人可以应用于各个行业和领域&#xff0c;例如金融、保险、制造、物流、电商等。它可以减少人工错误和重复工作&#xff0c;提高效率和生产力。RPA还可以在处理大量数据时加快处理速度&#xff0c;提供更准确和可靠的结果。此外&#xff0c;RPA还可以为员工提供更有价值的…...

【BUG】Docker启动MySQL报错

个人主页&#xff1a;金鳞踏雨 个人简介&#xff1a;大家好&#xff0c;我是金鳞&#xff0c;一个初出茅庐的Java小白 目前状况&#xff1a;22届普通本科毕业生&#xff0c;几经波折了&#xff0c;现在任职于一家国内大型知名日化公司&#xff0c;从事Java开发工作 我的博客&am…...

Spring Boot通过企业邮箱发件被Gmail退回的解决方法

这两天给我们开发的Chrome插件&#xff1a;Youtube中文配音 增加了账户注册和登录功能&#xff0c;其中有一步是邮箱验证&#xff0c;所以这边会在Spring Boot后台给用户的邮箱发个验证信息。如何发邮件在之前的文章教程里就有&#xff0c;这里就不说了&#xff0c;着重说说这两…...

Windows使用MobaXterm远程访问ubuntu20.04桌面

参考ubuntu 2020.4 安装vnc 一、脚本文件 remote_setup.sh脚本文件内容&#xff1a; #! /bin/bash #参考链接&#xff1a;https://blog.csdn.net/hailangdeyingzi/article/details/124507304 sudo apt update sudo apt install x11vnc -y sudo x11vnc -storepasswd telpo.12…...

C++注释风格

1. 文件头注释 每个文件都应该开始于一个注释块&#xff0c;描述文件的目的、作者、创建日期和版权信息。 /** FileName: MyClass.cpp* Purpose: Provides functionality for XYZ operations.* Author: [Your Name]* Creation Date: YYYY-MM-DD* Last Updated: YYYY-MM-DD* C…...

Linux 编译内核模块出现--Unknown symbol mcount

文章目录 Linux suse&#xff1a; # cat /etc/os-release NAME"SLES" VERSION"12-SP2" VERSION_ID"12.2" PRETTY_NAME"SUSE Linux Enterprise Server 12 SP2" ID"sles" ANSI_COLOR"0;32" CPE_NAME"cpe:/o:s…...

Pywin32 Cookbook by Eric

Writing Prompt 现在你是一名专业的Python工程师&#xff0c;请你根据"Pywin32_Funtion"函数的功能&#xff0c;为其编写一个清晰的文档说明Functions win32gui.GetWindowDC(hwnd) 描述 win32gui.GetWindowDC()函数用于获取指定窗口的设备上下文&#xff08;Devi…...

indexDB入门到精通

前言 由于开发3D可视化项目经常用到模型&#xff0c;而一个模型通常是几m甚至是几十m的大小对于一般的服务器来讲加载速度真的十分的慢&#xff0c;为了解决这个加载速度的问题&#xff0c;我想到了几个本地存储的。 首先是cookie,cookie肯定是不行的&#xff0c;因为最多以只…...

Ubuntu 20.04配置静态ip

ip配置文件 cd /etc/netplan配置 根据需求增加 # Let NetworkManager manage all devices on this system network:version: 2renderer: NetworkManager # 管理 不是必须ethernets:enp4s0: #网卡名dhcp4: no #关闭ipv4动态分配ip地址dhcp6: no #关闭ipv6动态分配…...

Tushare入门小册

Tushare入门小册 一、Tushare平台介绍 Pro版数据更稳定质量更好了&#xff0c;我们提供的不再是直接从互联网抓取&#xff0c;而是通过社区的采集和整理存入数据库经过质量控制后再提供给用户。但Pro依然是个开放的&#xff0c;免费的平台&#xff0c;不带任何商业性质和目的…...

<c++开发>通信工具 -之-SOME/IP移植部署 第一篇文章

&#xff1c;c开发&#xff1e;通信工具 -之-SOME/IP移植ubuntu部署 第一篇文章 一 前言 SOME/IP (Scalable service-Oriented MiddlewarE over IP) 是一种通信协议&#xff0c;主要用于嵌入式系统和车载网络中的服务导向通信。SOME/IP是AUTOSAR&#xff08;AUTomotive Open …...

权威的软件测试服务供应商分享,怎么获得软件安全检测报告?

我们深知在如今的数字化时代&#xff0c;软件安全对于企业和个人来说具有极其重要的意义。然而&#xff0c;许多用户对于软件安全测试报告的概念还不够清晰&#xff0c;也不知道如何获得这样的报告。在本文中&#xff0c;小编将为您简析什么是安全测试报告以及如何获取这样的报…...

管理类联考——逻辑——真题篇——按知识分类——汇总篇——二、论证逻辑——假设——第二节——搭桥假设

文章目录 第二节 假设-分类1-搭桥假设-当题干推理存在明显断点,常见形式比如:“因为A→B,C→D,所以A→D”,则正确选项为“B→C”真题(2014-39)-假设-分类1-题干推理存在明显断点-搭桥假设-建模搭桥-“因为A→B,所以A→C”,搭桥假设为“B→C”真题(2019-44)-假设-分…...

百度云BOS云存储的图片如何在访问时,同时进行格式转换、缩放等处理

前言 之前做了一个图片格式转换和压缩的服务&#xff0c;结果太占内存。后来查到在访问图片链接时&#xff0c;支持进行图片压缩和格式转换&#xff0c;本来想着先格式转换、压缩图片再上传到BOS&#xff0c;现在变成了上传后&#xff0c;访问时进行压缩和格式转换。想了想&am…...

go生成文件md5、sha1摘要简单示例

备注 go官方文档 https://pkg.go.dev/crypto/md5 已经给出如何使用该package生成文件或者字节数组的摘要值&#xff0c; 参照即可。 摘要值不是对文内容的加密&#xff0c;它主要用来进行checksum&#xff0c;就是验证两个文件内容是否一致&#xff0c;是否被篡改或者变化了。…...

Docker容器:docker数据管理、镜像的创建及dockerfile案例

文章目录 一、docker数据管理1.为何需要docker数据管理2.数据管理类型3.数据卷4.数据卷容器5.容器的互联 二.docker镜像的三种创建方法1.基于现有镜像创建1.1 启动镜像1.2 生成新镜像 2.基于本地模板创建2.1 OPENVZ 下载模板2.2 导入容器生成镜像 3.基于dockerfile创建3.1 dock…...

Ajax fetch Axios 的区别

AJAX&#xff1a;一种创建交互式网页应用的网页执行交互技术 通过在后台与服务器进行少量数据交换&#xff0c;Ajax可以使网页实现异步更新。意味着&#xff1a;在不重新加载整个网页 的情况下&#xff0c;对网页某部分进行更新。 缺点&#xff1a; 针对MVC编程&#xff0c;…...

数据库结构差异对比工具

简介 前几年写了一个数据库对比工具&#xff0c;但是由于实现方式的原因&#xff0c;数据库支持有限&#xff0c;所以重新设计了一下&#xff0c;便于支持多种数据库&#xff0c;并且更新了UI。 新版地址&#xff1a;https://gitee.com/xgpxg/db-diff 旧版地址&#xff1a;h…...

Shell编程学习之breakcontinuereturn的应用

Shell编程中的break关键字&#xff1a;break关键字&#xff1a;退出最近的循环&#xff0c;后续循环不再执行&#xff1b;break关键字用法&#xff1a; break #结束本层循环 break 数字n #结束n层循环测试代码1&#xff1a; #!/bin/bashfor((i1;i<6;i)) dofor((…...

有趣的数学 数学建模入门二 一些理论基础

一、什么是数学建模? 现实世界中混乱的问题可以用数学来解决&#xff0c;从而产生一系列可能的解决方案来帮助指导决策。大多数人对数学建模的概念感到不舒服&#xff0c;因为它是如此开放。如此多的未知信息似乎令人望而却步。哪些因素最相关&#xff1f;但正是现实世界问题的…...

Spring复习:(55)ApplicationContext中BeanFactoryPostProcessor是怎么添加到容器的?

容器创建时会调用AbstractApplicationContext的refresh方法&#xff0c;其中会调用invokeBeanFactoryPostProcessor方法&#xff0c;如下图 invokeBeanFactoryPostProcessors代码如下&#xff1a; 其中调用的PostProcessorRegistrationDelegate的invokeBeanFactoryPostProcess…...

给wordpress添加关键词与描述

Wordpress网站的关键字及网页描述关系网站对搜索引擎的友好程度&#xff0c;如果自己手动加显然太折腾了&#xff0c;那如何让WordPress博客自动为每篇文章自动关键字及网页描述。每篇文章的内容不同&#xff0c;我们该如何让wordpress自动添加文章描述和关键词呢&#xff1f;下…...

Verilog 入门

Verilog 入门 本内容来自 牛客网Verilog入门特别版 1、一个没有输入和一个输出常数1的输出的电路&#xff0c;输出信号为one module top_module(one);output wire one;assign one 1b1; endmodule2、创建一个具有一个输入和一个输出的模块&#xff0c;其行为类似于电路上的连…...

shell 简单且常用的几种

目录 一、配置环境的shell脚本 二、系统资源脚本 一、要求 二、脚本内容 三、脚本解析 四、赋权并验证 三、查看当前内存的总大小、实际使用大小、剩余大小、显示使用率百分比的脚本 一、第一种方法 二、验证 三、第二种方法 四、验证 四、查看网卡实时流量脚本 一…...

redis基本介绍以及在node中使用

文章目录 引言一、什么是redis1. redis简介2. redis的特点3. redis的应用场景 二、redis在windows下安装1. 下载安装2.验证是否安装成功3. 配置环境变量 三、redis-cli常用命令介绍1. redis-cli2. keys *3. set key value4. get key5. exists key6. del key7. info8. flushdb9.…...

wordpress4模板函数/googleplay安卓版下载

在IIS7.5选择要开启GZip压缩的网站&#xff0c;在功能视图中找到并双击"压缩"图标&#xff0c;在压缩界面中钩选"启用静态内容压缩"和"启用动态内容压缩"&#xff0c;应用即可&#xff1a; 静态内容压缩和动态内容压缩的区别静态内容压缩&#x…...

创新的网站建设/百度快速查询

问题现象 有个flink实时任务&#xff0c;读kafka和redis&#xff0c;中间有复杂的逻辑处理过程&#xff0c;最终结果写redis。flink实时任务运行一段时间后阻塞了&#xff0c;有时是几个小时后&#xff0c;有时是一两天后。 任务看起来正常是正常的&#xff0c;但kafka消费已…...

重庆城乡建设部网站首页/百度电脑网页版入口

css很强大&#xff0c;jQuery也很强大&#xff0c;两者结合在一起就是无比强大。这里要介绍的这个单击文字或图片内容放大居中显示的效果就是这两者结合的产物。 先来介绍css和jQuery各自发挥了什么作用吧&#xff1a; css&#xff1a;自适应圆角投影效果好吧&#xff0c;我承认…...

互联虚拟主机/福建seo网站

目录4281 Problem A GoGo向前冲4282 Problem B 密码解析&#xff08;正确&#xff09;4283 Problem C 三体4284 Problem D 请不要用sort&#xff08;正确&#xff09;4287 Problem E 数字根2&#xff08;正确&#xff09;4285 Problem F Ackermann function4286 Problem G 消失…...

茂县建设局网站/自制网页

自从软件业诞生后&#xff0c;虚拟世界得以与真实世界并行&#xff0c;二者互相依存&#xff0c;生生不息。软件有一些特殊的属性&#xff0c;与真实世界中的物质的属性不同&#xff0c;有些甚至完全相反&#xff0c;比如&#xff1a; 一. 软件无新旧 在真实世界中&#xff0c;…...

wordpress4.2.15漏洞/网上开店如何推广自己的网店

数据从业者常在多种工具之间跳来跳去&#xff0c;这种碎片化导致了协作、共享和生产力方面的问题。 企业云数据量的增加以及数据转换、模型构建和可视化工具的出现&#xff0c;推动了现代数据堆栈的崛起。大部分公司都在加大对数据团队的投入&#xff0c;以适应不断变化的需求…...