BigQuery Clustered Table 简介 - 聚簇表

news2025/1/14 17:58:55

Clustered Table的定义

聚簇可以提高某些类型的查询(例如,使用过滤条件子句的查询和聚合数据的查询)的性能。当通过查询作业或加载作业将数据写入聚簇表时,BigQuery 会使用聚簇列中的值对这些数据进行排序。这些值用于将数据整理到 BigQuery 存储的多个块中。当您提交的查询包含基于聚簇列过滤数据的子句时,BigQuery 会使用已排序的块来避免扫描不必要的数据。 如果表或分区低于 1 GB,则聚簇表和未聚簇表之间的查询性能可能不会有显著差异。

以下是创建聚簇表的示例:

CREATE TABLE dataset.clustered_table
(
  column1 INT64,
  column2 STRING,
  column3 DATE,
  ...
)
CLUSTER BY column1;

在上面的示例中,通过将column1列指定为聚簇键,dataset.clustered_table将按照column1的值进行排序和分组。

值得注意的是,创建聚簇表是一个一次性的操作,无法在表创建后更改聚簇键。如果需要更改聚簇键,您需要创建一个新的聚簇表并将数据导入其中。

通俗点来讲, Clustered表就是存放数据会已 设定的 字段来排序, 这样以这个字段来做filter 就不用全表扫描了(2分法?), 跟索引的原理类似。

还有 Clustered 表和分区表 并不冲突, 1张表既可以分区 也可以 Cluster , 不过如何分区和Cluster 都是同1个列的我觉得意义不大, 如果是两个不同的field的话代表查询时要同时加上这个两个field的filter, 总之看实际需求!




准备测试数据

本码农发文从不只发定义, 既然上面说了大数量量才有效果, 我们就准备个大的

[gateman@manjaro-x13 chapter-02]$ ls -lh 
total 401M
-rw-r--r-- 1 gateman gateman 401M Dec 24 01:24 automobiles.csv
-rwxrwxrwx 1 gateman gateman 2.7K May  5  2022 chapter-02-steps.sql
-rwxrwxrwx 1 gateman gateman  250 May  5  2022 link_to_automobiles_dataset.txt
[gateman@manjaro-x13 chapter-02]$ head automobiles.csv 
maker,model,mileage,manufacture_year,engine_displacement,engine_power,body_type,color_slug,stk_year,transmission,door_count,seat_count,fuel_type,date_created,date_last_seen,price_eur
ford,galaxy,151000,2011,2000,103,,,None,man,5,7,diesel,2015-11-14 18:10:06.838319+00,2016-01-27 20:40:15.46361+00,10584.75
skoda,octavia,143476,2012,2000,81,,,None,man,5,5,diesel,2015-11-14 18:10:06.853411+00,2016-01-27 20:40:15.46361+00,8882.31
bmw,,97676,2010,1995,85,,,None,man,5,5,diesel,2015-11-14 18:10:06.861792+00,2016-01-27 20:40:15.46361+00,12065.06
skoda,fabia,111970,2004,1200,47,,,None,man,5,5,gasoline,2015-11-14 18:10:06.872313+00,2016-01-27 20:40:15.46361+00,2960.77
skoda,fabia,128886,2004,1200,47,,,None,man,5,5,gasoline,2015-11-14 18:10:06.880335+00,2016-01-27 20:40:15.46361+00,2738.71
skoda,fabia,140932,2003,1200,40,,,None,man,5,5,gasoline,2015-11-14 18:10:06.894643+00,2016-01-27 20:40:15.46361+00,1628.42
skoda,fabia,167220,2001,1400,74,,,None,man,5,5,gasoline,2015-11-14 18:10:06.915376+00,2016-01-27 20:40:15.46361+00,2072.54
bmw,,148500,2009,2000,130,,,None,auto,5,5,diesel,2015-11-14 18:10:06.924123+00,2016-01-27 20:40:15.46361+00,10547.74
skoda,octavia,105389,2003,1900,81,,,None,man,5,5,diesel,2015-11-14 18:10:06.936239+00,2016-01-27 20:40:15.46361+00,4293.12
[gateman@manjaro-x13 chapter-02]$ wc -l automobiles.csv 
3552913 automobiles.csv
[gateman@manjaro-x13 chapter-02]$

如上图, 有个automobile.csv 的测试数据集
400 多MB
355万行

用libreOffice 打开这个csv 直接提示数据函数超过了1,048,576的上限(2的20次方), 只能打开1,048,576 部分的数据。
别笑, 微软的Excel也是这个上限, 而且LibreOffice 还能对这个1,048,576 正常作处理。

在这里插入图片描述

LibreOffice 的确神器, 相比之下另1个office 软件 OnlyOffice 直接报错内存不够。




上传数据表到BigQuery

[gateman@manjaro-x13 chapter-02]$ bq load --autodetect --source_format=CSV DS2.automobile_o automobiles.csv 


Updates are available for some Google Cloud CLI components.  To install them,
please run:
  $ gcloud components update

/home/gateman/devtools/google-cloud-sdk/platform/bq/bq.py:17: DeprecationWarning: 'pipes' is deprecated and slated for removal in Python 3.13
  import pipes
Upload complete.
Waiting on bqjob_r3a61ac818de36f56_0000018c97cbb415_1 ... (12s) Current status: DONE   
[gateman@manjaro-x13 chapter-02]$ bq show DS2.automobile_o
/home/gateman/devtools/google-cloud-sdk/platform/bq/bq.py:17: DeprecationWarning: 'pipes' is deprecated and slated for removal in Python 3.13
  import pipes
Table jason-hsbc:DS2.automobile_o

   Last modified                Schema                Total Rows   Total Bytes   Expiration   Time Partitioning   Clustered Fields   Total Logical Bytes   Total Physical Bytes   Labels  
 ----------------- --------------------------------- ------------ ------------- ------------ ------------------- ------------------ --------------------- ---------------------- -------- 
  24 Dec 01:51:31   |- maker: string                  3552912      305423773                                                         305423773             71803365                       
                    |- model: string                                                                                                                                                      
                    |- mileage: integer                                                                                                                                                   
                    |- manufacture_year: integer                                                                                                                                          
                    |- engine_displacement: integer                                                                                                                                       
                    |- engine_power: integer                                                                                                                                              
                    |- body_type: string                                                                                                                                                  
                    |- color_slug: string                                                                                                                                                 
                    |- stk_year: string                                                                                                                                                   
                    |- transmission: string                                                                                                                                               
                    |- door_count: string                                                                                                                                                 
                    |- seat_count: string                                                                                                                                                 
                    |- fuel_type: string                                                                                                                                                  
                    |- date_created: timestamp                                                                                                                                            
                    |- date_last_seen: timestamp                                                                                                                                          
                    |- price_eur: float                                                                                                                                                   


这样我们就得到1个355万行的非分区和非clustered的表. 表名: automobile_o




创建1个具有相同数据的Cluster表

需求是, 我想这个Clustered表的是按maker, manufacture_year (厂家和生产年份) 来排序存储的.

方法1: 使用bq command 上传多次, 但是加上–clustering_fileds 的参数

[gateman@manjaro-x13 chapter-02]$ bq load --autodetect --source_format=CSV --clustering_fields=maker,manufacture_year DS2.automobile_c automobiles.csv
/home/gateman/devtools/google-cloud-sdk/platform/bq/bq.py:17: DeprecationWarning: 'pipes' is deprecated and slated for removal in Python 3.13
  import pipes
Upload complete.
Waiting on bqjob_r1b1de085f8ee2e04_0000018c982d988a_1 ... (10s) Current status: DONE   
[gateman@manjaro-x13 chapter-02]$ bq show DS2.automobile_c
/home/gateman/devtools/google-cloud-sdk/platform/bq/bq.py:17: DeprecationWarning: 'pipes' is deprecated and slated for removal in Python 3.13
  import pipes
Table jason-hsbc:DS2.automobile_c

   Last modified                Schema                Total Rows   Total Bytes   Expiration   Time Partitioning      Clustered Fields       Total Logical Bytes   Total Physical Bytes   Labels  
 ----------------- --------------------------------- ------------ ------------- ------------ ------------------- ------------------------- --------------------- ---------------------- -------- 
  24 Dec 03:38:30   |- maker: string                  3552912      305423773                                      maker, manufacture_year   305423773                                            
                    |- model: string                                                                                                                                                             
                    |- mileage: integer                                                                                                                                                          
                    |- manufacture_year: integer                                                                                                                                                 
                    |- engine_displacement: integer                                                                                                                                              
                    |- engine_power: integer                                                                                                                                                     
                    |- body_type: string                                                                                                                                                         
                    |- color_slug: string                                                                                                                                                        
                    |- stk_year: string                                                                                                                                                          
                    |- transmission: string                                                                                                                                                      
                    |- door_count: string                                                                                                                                                        
                    |- seat_count: string                                                                                                                                                        
                    |- fuel_type: string                                                                                                                                                         
                    |- date_created: timestamp                                                                                                                                                   
                    |- date_last_seen: timestamp                                                                                                                                                 
                    |- price_eur: float   

方法2: 用sql 基于已存在的表创建

create table DS2.automobile_c2
cluster by maker, manufacture_year
as 
select * from DS2.automobile_o

效果是一样的

[gateman@manjaro-x13 chapter-02]$ bq show DS2.automobile_c2
/home/gateman/devtools/google-cloud-sdk/platform/bq/bq.py:17: DeprecationWarning: 'pipes' is deprecated and slated for removal in Python 3.13
  import pipes
Table jason-hsbc:DS2.automobile_c2

   Last modified                Schema                Total Rows   Total Bytes   Expiration   Time Partitioning      Clustered Fields       Total Logical Bytes   Total Physical Bytes   Labels  
 ----------------- --------------------------------- ------------ ------------- ------------ ------------------- ------------------------- --------------------- ---------------------- -------- 
  24 Dec 03:38:04   |- maker: string                  3552912      305423773                                      maker, manufacture_year   305423773                                            
                    |- model: string                                                                                                                                                             
                    |- mileage: integer                                                                                                                                                          
                    |- manufacture_year: integer                                                                                                                                                 
                    |- engine_displacement: integer                                                                                                                                              
                    |- engine_power: integer                                                                                                                                                     
                    |- body_type: string                                                                                                                                                         
                    |- color_slug: string                                                                                                                                                        
                    |- stk_year: string                                                                                                                                                          
                    |- transmission: string                                                                                                                                                      
                    |- door_count: string                                                                                                                                                        
                    |- seat_count: string                                                                                                                                                        
                    |- fuel_type: string                                                                                                                                                         
                    |- date_created: timestamp                                                                                                                                                   
                    |- date_last_seen: timestamp                                                                                                                                                 
                    |- price_eur: float                                                                                                                                                          





比较查询性能

我们已经同时具有 一般表 automobile_o 和 clustered 表automobile_c 接下来就是比较查询性能了
当然国际管理, 查询之前都必须禁用cache !
在这里插入图片描述







首先先检查表大小

[gateman@manjaro-x13 chapter-02]$ bq show DS2.automobile_o
/home/gateman/devtools/google-cloud-sdk/platform/bq/bq.py:17: DeprecationWarning: 'pipes' is deprecated and slated for removal in Python 3.13
  import pipes
Table jason-hsbc:DS2.automobile_o

   Last modified                Schema                Total Rows   Total Bytes   Expiration   Time Partitioning   Clustered Fields   Total Logical Bytes   Total Physical Bytes   Labels  
 ----------------- --------------------------------- ------------ ------------- ------------ ------------------- ------------------ --------------------- ---------------------- -------- 
  24 Dec 01:51:31   |- maker: string                  3552912      305423773                                                         305423773             71803365                       
                    |- model: string                                                                                                                                                      
                    |- mileage: integer                                                                                                                                                   
                    |- manufacture_year: integer                                                                                                                                          
                    |- engine_displacement: integer                                                                                                                                       
                    |- engine_power: integer                                                                                                                                              
                    |- body_type: string                                                                                                                                                  
                    |- color_slug: string                                                                                                                                                 
                    |- stk_year: string                                                                                                                                                   
                    |- transmission: string                                                                                                                                               
                    |- door_count: string                                                                                                                                                 
                    |- seat_count: string                                                                                                                                                 
                    |- fuel_type: string                                                                                                                                                  
                    |- date_created: timestamp                                                                                                                                            
                    |- date_last_seen: timestamp                                                                                                                                          
                    |- price_eur: float                                                                                                                                                   

[gateman@manjaro-x13 chapter-02]$ bq show DS2.automobile_c
/home/gateman/devtools/google-cloud-sdk/platform/bq/bq.py:17: DeprecationWarning: 'pipes' is deprecated and slated for removal in Python 3.13
  import pipes
Table jason-hsbc:DS2.automobile_c

   Last modified                Schema                Total Rows   Total Bytes   Expiration   Time Partitioning      Clustered Fields       Total Logical Bytes   Total Physical Bytes   Labels  
 ----------------- --------------------------------- ------------ ------------- ------------ ------------------- ------------------------- --------------------- ---------------------- -------- 
  24 Dec 03:38:30   |- maker: string                  3552912      305423773                                      maker, manufacture_year   305423773             66970872                       
                    |- model: string                                                                                                                                                             
                    |- mileage: integer                                                                                                                                                          
                    |- manufacture_year: integer                                                                                                                                                 
                    |- engine_displacement: integer                                                                                                                                              
                    |- engine_power: integer                                                                                                                                                     
                    |- body_type: string                                                                                                                                                         
                    |- color_slug: string                                                                                                                                                        
                    |- stk_year: string                                                                                                                                                          
                    |- transmission: string                                                                                                                                                      
                    |- door_count: string                                                                                                                                                        
                    |- seat_count: string                                                                                                                                                        
                    |- fuel_type: string                                                                                                                                                         
                    |- date_created: timestamp                                                                                                                                                   
                    |- date_last_seen: timestamp                                                                                                                                                 
                    |- price_eur: float

可以看出两个表具有相同的schema, 相同的数据行和数据大小, 305423773 bytes = 291.27 MB




先看正常表 automobile_o
无论是select * from DS2.automobile_o 还是 select * from DS2.automobile_o where maker=‘bmw’

的处理数据都是291.27MB (全表处理) , 正常操作, 相当不省钱
在这里插入图片描述

好了, 下面对比查询clustered 表 DS2.automobile_c

在这里插入图片描述

当我们输入sql时, web_ui 预估的will process 数据还是291.27MB? 这是因为跟分区表不一样, bigquery在查询之前并不能准确预估clustered 表的预估数据。

因为分区表可以明白地根据查询条件得到sql 将在那几个表分区里查询, 而分区表存在多少个分区, 每个分区的数据行这些元数据BigQuery是清楚的, 其他无关表分区可以忽略

但是, clustered表的原理是数据按照某个or若干列的排序存放。

例如上面的sql条件是maker=‘bmw’, 在clustered表中的 所有bmw 的数据都应该存放一起, 但是BigQuery并没有这些数据的元数据, 例如bmw的数据有多少行, 大概占全表的什么位置, 这些数据都要执行知道才知道, 所以这里预估的will process就是全表了

但是,当我们执行这条数据后, 在真正的query信息得到实际处理的data 量是99 MB, Clustered 生效!

在这里插入图片描述

宝马毕竟是大厂, 如果查询条件换成冷门豪车阿士顿马田, 数据处理量会更加少
在这里插入图片描述

下一条sql
select * from DS2.automobile_c where manufacture_year<1994
在这里插入图片描述

结果还是全表扫描

因为虽然manufacture_year 也是clustered列的一部分, 但是存储排序是先拍maker 再排 manufacture_year, 如果只查询manufacture_year, 还是会导致全表扫描, 跟索引的最左原则一样。




结下来
两个列一齐查
在这里插入图片描述
跟只差maker 的处理数据量居然一样, 可能我的测试数据样本还不足够大的原因。




分区表和Clustered 一齐上

既然要查两个field
那么我就建1个 用manufacture_year 来分区, maker来cluster的表, 作为对比

首先查出 这个表的manufacture_year 的上下限
在这里插入图片描述

0 到2017

然后我们用下面的sql来建一张分区和clustered表 DS2.automobile_pc

create table DS2.automobile_pc
partition by 
 	Range_bucket(manufacture_year, generate_array(0,2017,10))
cluster by maker
as 
select * from DS2.automobile_o

在这里插入图片描述

这时 当我们输入sql时, bq 已经能预估分区后的will process数据是51.52MB了, 但是在这些分区, 相同maker的数据还是黏在一齐的, 也就是将bq不必要扫描每个完整表分区
在这里插入图片描述
我们执行它
在这里插入图片描述
可以看出最终只process了 37MB数据比预估的要少, 看来如果固定用两个field来查询的话, 用分区 + clustered 表的确很暴力有效!!

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

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

相关文章

【Linux】进程管理

ps&#xff1a;报告当前进程快照。top&#xff1a;显示任务。kill&#xff1a;给一个进程发送信号。shutdown&#xff1a;关机或重启系统。 一个程序可以发动另一个程序被表述为一个父进程可以产生一个子进程&#xff0c;内核维护每个进程的信息&#xff0c;以此来保持事情有序…

小白也能搞定的Python选择排序

更多Python学习内容&#xff1a;ipengtao.com 大家好&#xff0c;我是彭涛&#xff0c;今天为大家分享 小白也能搞定的Python选择排序。全文3300字&#xff0c;阅读大约10分钟 选择排序&#xff08;Selection Sort&#xff09;是一种简单但有效的排序算法&#xff0c;它通过逐步…

正则表达式与bs4选择器筛选论文数准确率之比较

一、正则爬取论文网首页论文标题的示例 import requests import re from bs4 import BeautifulSoupheaders {User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36}def get_html(url):try:res…

Hadoop入门学习笔记——二、在虚拟机里部署HDFS集群

视频课程地址&#xff1a;https://www.bilibili.com/video/BV1WY4y197g7 课程资料链接&#xff1a;https://pan.baidu.com/s/15KpnWeKpvExpKmOC8xjmtQ?pwd5ay8 Hadoop入门学习笔记&#xff08;汇总&#xff09; 目录 二、在虚拟机里部署HDFS集群2.1. 部署node1虚拟机2.2. 部…

Vue如何请求接口——axios请求

1、安装axios 在cmd或powershell打开文件后&#xff0c;输入下面的命令 npm install axios 可在项目框架中的package.json中查看是否&#xff1a; 二、引用axios import axios from axios 在需要使用的页面中引用 三、get方式使用 get请求使用params传参,本文只列举常用参数…

基于 Sentry 的前端监控系统搭建(Linux)

一、前言 随着技术这几年的发展与沉淀&#xff0c;线上数据指标监控也变得尤为重要&#xff0c;研发人员和运营人员需要对线上的产品指标有所感知&#xff0c;同时风险也需要及时暴露&#xff0c;很多公司开始自建监控系统&#xff0c;但对于一些定制化要求不是特别高的团队&a…

LV.13 D6 Linux内核安装及交叉编译 学习笔记

一、tftp加载Linux内核及rootfs 1.1 uboot内核启动命令 bootm 启动指定内存地址上的Linux内核并为内核传递参数 bootm kernel-addr ramdisk-addr dtb-addr 注: kernel-addr: 内核的下载地址 ramdisk-addr: 根文件系统的下载地址 …

蓝牙物联网室内定位系统解决方案

目前国内外室内定位技术较多&#xff0c;常见的有无线局域网(Wireless Fidelity,WiFi)、射频识别(Radio FrequencyIdentification,RFID)、蓝牙低功耗(Bletooth Low EnergyBLE)、超宽带(Ultra Wide BandUWB)技术等。近几年智能设备的迅速发展和蓝牙设备的生产制造成本越来越低&a…

单元测试(超详细整理)

前言 为什么我们需要测试&#xff1f; 让产品可以快速迭代&#xff0c;同时还能保持高质量 对于一些相对稳定的系统级别页面&#xff0c;自动化测试在提高测试的效率的方面起到非常重要的作用。前端的自动化测试主要包括&#xff1a;浏览器测试和单元测试。Vue官方脚手架自带…

Unity中Shader观察空间推导(在Shader中实现)

文章目录 前言一、观察空间矩阵推导1、求观察空间基向量2、求观察空间的基向量在世界空间中的矩阵 的 逆矩阵2、求平移变换矩阵3、相乘得出 观察空间转化矩阵4、得到顶点的世界空间坐标&#xff0c;然后转化到观察空间5、把观察空间坐标转化为齐次裁剪坐标输出到屏幕 二、最终效…

Python入门学习篇(五)——列表字典

1 列表 1.1 定义 ①有序可重复的元素集合 ②可以存放不同类型的数据 ③个人理解:类似于java中的数组1.2 相关方法 1.2.1 获取列表长度 a 语法 len(列表名)b 示例代码 list2 [1, 2, "hello", 4] print(len(list2))c 运行结果 1.2.2 获取列表值 a 语法 列表名…

STM32实现三个小灯亮

led.c #include"led.h"void Led_Init(void) {GPIO_InitTypeDef GPIO_VALUE; //???RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);//???GPIO_VALUE.GPIO_ModeGPIO_Mode_Out_PP;//???? ????GPIO_VALUE.GPIO_PinGPIO_Pin_1|GPIO_Pin_2|GPIO_P…

深度学习中的池化

1 深度学习池化概述 1.1 什么是池化 池化层是卷积神经网络中常用的一个组件&#xff0c;池化层经常用在卷积层后边&#xff0c;通过池化来降低卷积层输出的特征向量&#xff0c;避免出现过拟合的情况。池化的基本思想就是对不同位置的特征进行聚合统计。池化层主要是模仿人的…

Openwrt AP 发射 WiFi 信号

问题 想一次把 OpenWrt 路由器 wifi 问题给解决&#xff0c;完全取代路由器。 使用 倍控的 N5105 设备&#xff0c;有 mPCIe 接口&#xff0c;使用了 intel AX200 无线网卡&#xff0c;支持 2.4G 与 5G。 设置步骤 OpenWrt 镜像 第一次使用的镜像不支持 wifi&#xff0c;在…

Docker知识总结

Docker 学习目标&#xff1a; 掌握Docker基础知识&#xff0c;能够理解Docker镜像与容器的概念 完成Docker安装与启动 掌握Docker镜像与容器相关命令 掌握Tomcat Nginx 等软件的常用应用的安装 掌握docker迁移与备份相关命令 能够运用Dockerfile编写创建容器的脚本 能够…

51单片机拆字程序实验

一、实验内容 1.基本要求 熟悉51仿真系统&#xff1b;设计并单步调试&#xff0c;实现将R5中数值&#xff08;初值为本人学号后两位&#xff09;拆分成两位独立的数据分别存于R6,R7中&#xff1b; 2.扩展要求 将R6,R7中的被拆出来的一位HEX数据转换为可显示的ASCII编码&…

Python算法例27 对称数

1. 问题描述 对称数是一个旋转180后&#xff08;倒过来&#xff09;看起来与原数相同的数&#xff0c;找到所有长度为n的对称数。 2. 问题示例 给出n2&#xff0c;返回[&#xff02;11&#xff02;&#xff0c;&#xff02;69&#xff02;&#xff0c;&#xff02;88&#x…

docker构建镜像及项目部署

文章目录 练习资料下载一、docker基础1. 基本概念2. docker常见命令3. 命令别名4. 数据卷 二、docker自定义镜像1. 了解镜像结构2. 了解Dockerfile3. 构建Dockerfile文件&#xff0c;完成自定义镜像 三、网络1. docker常见网络命令2. docker自带虚拟网络3. 自定义网络 四、dock…

Web前端 ---- 【Vue】vue路由守卫(全局前置路由守卫、全局后置路由守卫、局部路由path守卫、局部路由component守卫)

目录 前言 全局前置路由守卫 全局后置路由守卫 局部路由守卫之path守卫 局部路由守卫之component守卫 前言 本文介绍Vue2最后的知识点&#xff0c;关于vue的路由守卫。也就是鉴权&#xff0c;不是所有的组件任何人都可以访问到的&#xff0c;需要权限&#xff0c;而根据权限…

simulinkveristandlabview联合仿真——模型导入搭建人机界面

目录 1.软件版本 2.搭建simulink仿真模型 编译错误 3.导入veristand并建立工程 4.veristand导入labview labview显示veristand工程数据 labview设置veristand工程数据 运行labview工程 1.软件版本 matlab2020a&#xff0c;veristand2020 R4&#xff0c;labview2020 SP…