OpenStack-Glance组件

Glance

    • Glance使用
      • 磁盘格式和容器格式
      • 基础配置
      • 镜像转换

Glance 是 OpenStack 的镜像服务,负责存储、发现和管理虚拟机镜像。它允许用户创建和共享镜像,用于启动虚拟机实例。

Glance 的主要功能
(1)虚拟机镜像的管理
支持镜像的上传、下载、删除和更新。
用户可以通过命令行、API 或 OpenStack Dashboard 管理镜像。
(2)多种镜像格式支持
Glance 支持常见的虚拟机镜像格式,包括:

  • RAW:原始磁盘镜像,无压缩。
  • QCOW2:QEMU/KVM 的可扩展镜像格式,支持快照和压缩。
  • VMDK:VMware 的镜像格式。
  • VHD 和 VHDX:Hyper-V 的镜像格式。
  • ISO:光盘镜像,常用于安装系统。

(3)多种存储后端支持
Glance 支持多种存储后端,用于存储镜像数据:
本地文件系统。
分布式存储系统(如 Ceph、Swift)。
对象存储服务(如 Amazon S3)。
数据库存储。
(4)镜像共享和访问控制
私有镜像:仅限拥有者使用。
公共镜像:所有租户都可以使用。
共享镜像:拥有者可以指定其他租户访问。
(5)镜像的元数据管理
每个镜像都可以包含元数据(metadata),如操作系统类型、版本、创建时间等。
用户和管理员可以自定义元数据,用于描述镜像特性。

Glance 的架构
(1)核心组件
Glance 包括以下核心组件:

  • Glance API:
    提供 RESTful API 接口,供用户和服务调用。
    支持镜像的上传、下载、查询和删除等操作。

  • Glance Registry(已弃用):
    旧版本用于存储镜像的元数据和注册信息,现在的元数据通常直接存储在数据库中。

  • 数据库:
    存储镜像的元数据(如镜像的名称、大小、状态、创建时间等)。
    存储后端:

存放镜像文件的实际数据。可以是本地文件系统、对象存储(如 Swift)或块存储(如 Ceph,Cinder等)

工作流程

  • 镜像上传:
    用户通过 CLI 或 API 调用 Glance,将镜像文件上传到 Glance。
    Glance API 接收镜像数据,并存储在指定的存储后端,同时在数据库中记录元数据。
  • 镜像查询:
    用户通过 Glance 查询可用的镜像列表。
    Glance 从数据库中检索镜像元数据,并返回给用户。
  • 镜像下载:
    当 Nova 启动实例时,会从 Glance 下载指定镜像到计算节点。
    Glance API 从存储后端检索镜像文件,并提供给 Nova。

Glance使用

Ubuntu2404server环境,Glance版本4.4.0

glance服务

systemctl status glance-api

日志路径

tail -f /var/log/glance/glance-api.log

glance默认的镜像存储位置为本地,在配置文件glance-api.conf中进行指定

[glance_store]
stores = file,http
default_store = file
filesystem_store_datadir = /var/lib/glance/images/
[image_format]
disk_formats = ami,ari,aki,vhd,vhdx,vmdk,raw,qcow2,vdi,iso,ploop.root-tar

上传cirros测试镜像,web界面也可以上传镜像,但是如果镜像很大则可能失败,这时用命令行界面上传可以成功

Glance的其他命令可参考博文,这里不多概述了

root@controller:~# openstack image create --disk-format qcow2 --container-format bare --file cirros-0.3.4-x86_64-disk.img --progress cirros
[=============================>] 100%
+------------------+-----------------------------------------------------------------------------------------------------------+
| Field            | Value                                                                                                     |
+------------------+-----------------------------------------------------------------------------------------------------------+
| container_format | bare                                                                                                      |
| created_at       | 2024-12-03T08:39:25Z                                                                                      |
| disk_format      | qcow2                                                                                                     |
| file             | /v2/images/500df5b1-45e7-4cf0-acfe-621b2c61ae5b/file                                                      |
| id               | 500df5b1-45e7-4cf0-acfe-621b2c61ae5b                                                                      |
| min_disk         | 0                                                                                                         |
| min_ram          | 0                                                                                                         |
| name             | cirros                                                                                                    |
| owner            | e85a7093d85344378bb1b016fc6a1b1b                                                                          |
| properties       | os_hidden='False', owner_specified.openstack.md5='', owner_specified.openstack.object='images/cirros',    |
|                  | owner_specified.openstack.sha256=''                                                                       |
| protected        | False                                                                                                     |
| schema           | /v2/schemas/image                                                                                         |
| status           | queued                                                                                                    |
| tags             |                                                                                                           |
| updated_at       | 2024-12-03T08:39:25Z                                                                                      |
| visibility       | shared                                                                                                    |
+------------------+-----------------------------------------------------------------------------------------------------------+
root@controller:~# ls /var/lib/glance/images
500df5b1-45e7-4cf0-acfe-621b2c61ae5b

上传的镜像除了存储在本地外,还可以配置cinder,swift,ceph等作为后端存储

  • 镜像状态
    • Glance 中的图像可以处于以下状态之一:
      queued
      图像标识符已为 Glance 注册表中的图像保留。没有图像数据上传到 Glance,并且图像大小在创建时未明确设置为零。
      saving
      表示当前正在将图片的原始数据上传到 Glance。当使用POST /images调用注册图片并且存在x-image-meta-location标头时,该图片永远不会处于保存状态(因为图片数据已在其他位置可用)。
      uploading
      表示已进行导入数据放入调用。在此状态下,不允许调用PUT /file 。(请注意,对排队图像调用PUT /file会使图像进入保存状态。当图像处于保存状态时,不允许调用PUT /stage。因此,无法在同一图像上使用两种上传方法。)
      importing
      表示已进行导入调用但图像尚未准备好使用。
      active
      表示在 Glance 中完全可用的镜像。当上传镜像数据或创建时明确将镜像大小设置为零时,就会发生这种情况。
      deactivated
      表示不允许任何非管理员用户访问图像数据。禁止下载图像还会禁止可能需要图像数据的图像导出和图像克隆等操作。
      killed
      表示上传图像数据时发生错误,图像无法读取。
      deleted
      Glance 保留了有关该镜像的信息,但已不再可用。处于此状态的镜像将在稍后自动删除。
      pending_delete
      这与已删除类似,但是 Glance 尚未删除映像数据。处于此状态的映像不可恢复。

在这里插入图片描述
任务状态

  • Glance 中的任务可以处于以下状态之一:
    pending
    任务标识符已为 Glance 中的任务保留。尚未开始对其进行处理。
    processing
    该任务已被底层执行器接收,并正在使用该任务类型的后端 Glance 执行逻辑运行。
    success
    表示该任务已在 Glance 中成功运行。result 任务字段显示有关结果的更多详细信息。
    failure
    表示在执行任务期间发生错误,无法继续处理。message任务的字段显示错误是什么。

磁盘格式和容器格式

在 OpenStack 的 Glance 服务中,镜像文件需要指定磁盘格式和容器格式。这两个属性决定了镜像文件的组织方式,以及它如何被用作虚拟机实例的磁盘。

  • 磁盘格式(Disk Format)
    磁盘格式描述镜像文件中虚拟磁盘的存储方式。它决定了镜像如何被解码和加载到虚拟机中, 决定了镜像的存储结构,影响性能、存储占用和功能支持。
格式名称描述使用场景
RAW原始磁盘镜像文件,未压缩,未封装。直接复制磁盘的字节内容,效率高但占用空间较大。
QCOW2QEMU/KVM 的磁盘格式,支持动态分配和快照。文件占用空间小,支持压缩。 常用格式,适合 KVM/QEMU。
VMDKVMware 的磁盘格式,兼容 VMware 产品。使用 VMware 虚拟化平台时。
VHDMicrosoft Hyper-V 的磁盘格式,支持动态和固定大小。在 Hyper-V 环境中使用。
ISO光盘镜像格式,通常用于操作系统的安装盘(例如 Ubuntu、CentOS 的安装 ISO)。系统安装或启动时加载 ISO 文件。
AMIAmazon Machine Image,Amazon EC2 使用的镜像格式。使用 Amazon EC2 云的迁移场景。
VDIVirtualBox 的磁盘格式。VirtualBox 用户使用。
PLAIN非特定格式的数据块镜像,类似于 RAW 格式。特殊场景的自定义存储。
  • 容器格式(Container Format)
    容器格式定义了磁盘镜像的封装方式,以及它是否包含额外的元数据(如启动引导信息、分区表等)。决定了镜像的封装方式,影响其在虚拟化平台上的适用性。
格式名称描述使用场景
bare无容器封装的纯磁盘镜像,直接使用磁盘格式(如 RAW、QCOW2)。最常见的容器格式,直接加载磁盘镜像。
ovfOpen Virtualization Format,包含虚拟机描述文件和磁盘镜像。跨虚拟化平台迁移或分发镜像。
ovaOVF 的封装形式,通常打包为单个文件(包含 OVF 描述和磁盘镜像)。分发虚拟机模板。
akiAmazon Kernel Image,封装用于引导的内核镜像。使用 Amazon 相关服务时。
ariAmazon Ramdisk Image,封装用于引导的 ramdisk 镜像。使用 Amazon 相关服务时。
amiAmazon Machine Image,与磁盘格式 AMI 搭配使用,通常是 Amazon 的完整镜像。使用 Amazon 相关服务时。
dockerDocker 容器格式,用于分发和运行容器化应用。容器化场景。
  • 磁盘格式和容器格式的关系
    磁盘格式 和 容器格式 是独立的,但需要配合使用。

例如:
一个 RAW 磁盘镜像通常使用 bare 容器格式,因为它没有额外的封装。
一个 OVF 容器格式的镜像可能使用 QCOW2 或 VMDK 磁盘格式。

如何选择格式

需求磁盘格式容器格式
高性能,简单直接RAWbare
节省存储空间,支持快照QCOW2bare
VMware 平台迁移或集成VMDKovf
Hyper-V 平台VHD/VHDXbare
创建系统安装盘(如 ISO 文件)ISObare

基础配置

官网示例配置文件
官网参数说明

  • glance-api.conf可以在文件中的 部分下放置以下选项[DEFAULT]。它们分别启用 API 服务器的启动和绑定行为。
[DEFAULT]
bind_host=ADDRESS
#绑定到的主机的地址。
#可选。默认值:0.0.0.0
bind_port=PORT
#服务器应绑定到的端口。
#可选。默认值:9292用于 API 服务器
backlog=REQUESTS
#配置套接字的积压请求数。
#可选。默认值:4096
tcp_keepidle=SECONDS
#为每个服务器套接字设置 TCP_KEEPIDLE 的值(以秒为单位)。不支持 OS X。
#可选。默认值:600
client_socket_timeout=SECONDS
#客户端连接套接字操作的超时时间。如果传入连接在此期间处于空闲状态,则它将被关闭。值为0 表示永远等待。
#可选。默认值:900
workers=PROCESSES
#要启动的 Glance API 工作进程数。每个工作进程将侦听同一端口。增加此值可能会提高性能(尤其是在使用启用了压缩的 SSL 时)。通常建议
#每个 CPU 有一个工作进程。值0将阻止创建任何新的工作进程。当data_api设置为 时 glance.db.simple.api,workers必须设置为0或1。
#可选。默认值:默认使用可用的 CPU 数量。
max_request_id_length=LENGTH
#限制记录的 x-openstack-request-id 标头的最大大小。仅当在管道中配置了上下文中间件时才有效。
#可选。默认值:(64受 max_header_line 默认值限制:16384)

image_size_cap=SIZE
#配置 Glance 镜像大小限制
#可通过 Glance API 服务器上传的最大图像大小(以字节为单位)。
#重要提示:只有经过仔细考虑后才能增加此值,并且必须将其设置为低于 8 EB (9223372036854775808) 的值。
#可选。默认值:1099511627776(1 TB)


user_storage_quota=100G
#可选。默认值:0(无限制)。
#配置 Glance 用户存储配额
#此值指定每个用户可以在所有存储系统上使用的最大存储量。可以选择为该值指定单位。值可以以 B、KB、MB、GB 或 TB 为单位,分别表示字节、千字节、兆字节、千兆字节和太字节。默认单位为字节。
  • 配置 Glance 存储后端

使用多个存储配置文件系统存储后端

[glance_store]
stores = file,http
default_store = file
filesystem_store_datadirs = /var/glance/store
filesystem_store_datadirs = /var/glance/store1:100
filesystem_store_datadirs = /var/glance/store2:200

此选项只能在配置文件中指定,并且仅适用于文件系统存储后端。

filesystem_store_datadirs 选项允许管理员配置多个存储目录,以在文件系统存储后端保存 Glance 映像。每个目录都可以与其优先级结合使用。

  • 可以多次指定此选项以指定多个商店。
    必须在 gaze-api.conf 中指定 filesystem_store_datadir 或 filesystem_store_datadirs 选项
    优先级为 200 的商店优先于优先级为 100 的商店。
    如果没有指定优先级,则默认优先级为“0”。
    如果两个文件系统存储具有相同的优先级,则会选择具有最大可用空间的存储来存储图像。
    如果多次指定同一个商店,则会引发 BadStoreConfiguration 异常。

配置cinder为后端存储

[root@controller ~]# vi /etc/glance/glance-api.conf
#show_multiple_locations = false
改为
show_multiple_locations = True

修改
[glance_store]
stores = cinder
default_store=cinder

[root@controller ~]# systemctl restart openstack-glance-*
[root@controller ~]# vi /etc/cinder/cinder.conf
#allowed_direct_url_schemes =
改为
allowed_direct_url_schemes =cinder

#image_upload_use_internal_tenant = false
改为
image_upload_use_internal_tenant = True
#最后重启cinder
[root@controller ~]# systemctl restart *cinder*

swift作为后端存储

[root@controller ~]# vi /etc/glance/glance-api.conf
[glance_store]
stores=glance.store.filesystem.Store,glance.store.swift.Store,glance.store.http.Store
default_store=swift
swift_store_region=RegionOne
swift_store_endpoint_type=internalURL
swift_store_container=chinaskill_glance
swift_store_large_object_size=5120
swift_store_large_object_chunk_size=200
swift_store_create_container_on_put=True
swift_store_multi_tenant=True
swift_store_admin_tenants=service
swift_store_auth_address=http://controller:5000/v3
swift_store_user=glance
swift_store_key=000000

[root@controller ~]# systemctl restart openstack-glance-*

配置 VMware 存储后端

  • vmware_server_host=ADDRESS
    使用 VMware 存储后端时必需。
    只能在配置文件中指定。
    设置 ESX/ESXi 或 vCenter Server 目标系统的地址。该地址可以包含 IP ( 127.0.0.1)、IP 和端口 ( 127.0.0.1:443)、DNS 名称 ( www.my-domain.com) 或 DNS 和端口。
    此选项特定于 VMware 存储后端。
  • vmware_server_username=USERNAME
    使用 VMware 存储后端时必需。
    只能在配置文件中指定。
    用于通过 VMware ESX/ESXi 或 vCenter Server 进行身份验证的用户名。
  • vmware_server_password=PASSWORD
    使用 VMware 存储后端时必需。
    只能在配置文件中指定。
    用于对 VMware ESX/ESXi 或 vCenter Server 进行身份验证的密码。
  • vmware_datastores
    使用 VMware 存储后端时必需。
    此选项只能在配置文件中指定,并且特定于 VMware 存储后端。
  • vmware_datastores 允许管理员配置多个数据存储,以将 Glance 映像保存在 VMware 存储后端。该选项所需的格式为:<datacenter_path>:<datastore_name>:<optional_weight>。
    其中 datacenter_path 是数据存储所在数据中心的清单路径。可以给出可选权重来指定优先级。
  • vmware_api_retry_count=TIMES
    可选。默认值:10
    只能在配置文件中指定。
    出现连接相关问题时必须重试 VMware ESX/VC 服务器 API 的次数。
  • vmware_task_poll_interval=SECONDS
    可选。默认值:5
    只能在配置文件中指定。
    用于轮询在 VMware ESX/VC 服务器上调用的远程任务的间隔。
  • vmware_store_image_dir
    可选。默认值:/openstack_glance
    只能在配置文件中指定。
    访问数据存储中存储图像的文件夹的路径。
  • vmware_api_insecure=ON_OFF
    可选。默认值:False
    只能在配置文件中指定。
    允许对 ESX/VC 服务器执行不安全的 SSL 请求。
    例子:
[glance_store]
vmware_datastores = datacenter1:datastore1
vmware_datastores = dc_folder/datacenter2:datastore2:100
vmware_datastores = datacenter1:datastore3:200

可以多次指定此选项以指定多个数据存储。
必须在 gaze-api.conf 中指定 vmware_datastore_name 或 vmware_datastores 选项
权重为 200 的数据存储优先于权重为 100 的数据存储。
如果没有指定权重,则默认权重为“0”。
如果两个数据存储具有相同的权重,则将选择具有最大可用空间的数据存储来存储图像。
如果数据中心路径或数据存储名称包含冒号 :符号,则必须使用反斜杠进行转义。

配置S3存储后端

  • s3_store_host
    只能在配置文件中指定。
    S3 服务器正在监听的主机。此选项可以包含 DNS 名称(例如 s3.amazonaws.com、my-object-storage.com)或 IP 地址(127.0.0.1)。
  • s3_store_access_key
    只能在配置文件中指定。
    用于与 Amazon S3 或 S3 兼容存储服务器进行身份验证的访问密钥。
  • s3_store_secret_key
    只能在配置文件中指定。
    用于与 Amazon S3 或 S3 兼容存储服务器进行身份验证的密钥。
  • s3_store_bucket
    只能在配置文件中指定。
    在 S3 中存储 Glance 图像的存储桶名称。如果s3_store_create_bucket_on_put设置为 true,即使存储桶不存在也会自动创建。
  • s3_store_create_bucket_on_put
    可选。默认值:False
    只能在配置文件中指定。
    确定 S3 是否应创建新的 bucket。此选项采用布尔值来指示如果 bucket 不存在,Glance 是否应在 S3 中创建新的 bucket。
  • s3_store_bucket_url_format
    可选。默认值:auto
    只能在配置文件中指定。
    此选项采用用于指定 S3 存储桶中对象地址的访问模型。您可以将值设置为auto、virtual或 path。
  • s3_store_large_object_size
    可选。默认值:100
    只能在配置文件中指定。
    S3 应以什么大小(以 MB 为单位)开始对图像文件进行分块并在 S3 中执行分段上传。
  • s3_store_large_object_chunk_size
    可选。默认值:10
    只能在配置文件中指定。
    S3 在上传部分时应使用多部分上传部分的大小(以 MB 为单位)。
  • s3_store_thread_pools
    可选。默认值:10
    只能在配置文件中指定。
    在 S3 中执行分段上传的线程池数量。

示例:

[glance_store]
s3_store_host = http://s3-ap-northeast-1.amazonaws.com
s3_store_host = https://s3-ap-northeast-1.amazonaws.com
s3_store_host = http://my-object-storage.com
s3_store_host = https://my-object-storage.com:9000

在path风格中,对象的端点看起来像https://s3.amazonaws.com/bucket/example.img。
在virtual风格中,对象的端点看起来像https://bucket.s3.amazonaws.com/example.img。
如果您在存储桶名称中不遵循 DNS 命名约定,则可以获取路径样式的对象,但不能获取虚拟样式的对象。

配置镜像策略的yaml文件:官网

  • 配置格式如下
    该配置文件通过role:admin形式指定配置权限
root@controller:~# cat /etc/glance/policy.yaml
{
    "context_is_admin":  "role:admin",
    "default": "role:admin",

    "add_image": "role:admin",
    "delete_image": "",
    "get_image": "",
    "get_images": "",
    "modify_image": "",
    "publicize_image": "role:admin",
    "communitize_image": "",
    "copy_from": "",

    "download_image": "",
    "upload_image": "",

    "delete_image_location": "",
    "get_image_location": "",
    "set_image_location": "",

    "add_member": "",
    "delete_member": "",
    "get_member": "",
    "get_members": "",
    "modify_member": "",

    "manage_image_cache": "role:admin",

    "get_task": "",
    "get_tasks": "",
    "add_task": "",
    "modify_task": "",
    "tasks_api_access": "role:admin",
    "deactivate": "",
    "reactivate": "",
    "get_metadef_namespace": "",
    "get_metadef_namespaces":"",
    "modify_metadef_namespace":"",
    "add_metadef_namespace":"",

    "get_metadef_object":"",
    "get_metadef_objects":"",
    "modify_metadef_object":"",
    "add_metadef_object":"",

    "list_metadef_resource_types":"",
    "get_metadef_resource_type":"",
    "add_metadef_resource_type_association":"",

    "get_metadef_property":"",
    "get_metadef_properties":"",
    "modify_metadef_property":"",
    "add_metadef_property":"",

    "get_metadef_tag":"",
    "get_metadef_tags":"",
    "modify_metadef_tag":"",
    "add_metadef_tag":"",
    "add_metadef_tags":""
}

镜像转换

qemu-img 是 QEMU 提供的一个用于创建、转换和操作虚拟机磁盘镜像的命令行工具。它支持多种磁盘镜像格式,如 QCOW2、RAW、VMDK 等,是管理虚拟磁盘镜像的核心工具之一

  • 查看镜像信息
    输出镜像的大小、格式、实际占用空间等信息
root@controller:~# qemu-img info cirros-0.3.4-x86_64-disk.img
image: cirros-0.3.4-x86_64-disk.img
file format: qcow2
virtual size: 39.2 MiB (41126400 bytes)
disk size: 12.7 MiB
cluster_size: 65536
Format specific information:
    compat: 0.10
    compression type: zlib
    refcount bits: 16
Child node '/file':
    filename: cirros-0.3.4-x86_64-disk.img
    protocol type: file
    file length: 12.7 MiB (13287936 bytes)
    disk size: 12.7 MiB
  • 转换磁盘格式
    将磁盘镜像从一种格式转换为另一种格式
    qemu-img convert -f <源格式> -O <目标格式> <源镜像文件> <目标镜像文件>
root@controller:~# qemu-img convert -f qcow2 -O raw cirros-0.3.4-x86_64-disk.img cirros-raw.img
root@controller:~# qemu-img info cirros-raw.img
image: cirros-raw.img
file format: raw
virtual size: 39.2 MiB (41126400 bytes)
disk size: 17.8 MiB
Child node '/file':
    filename: cirros-raw.img
    protocol type: file
    file length: 39.2 MiB (41126400 bytes)
    disk size: 17.8 MiB
  • 扩展磁盘大小
    调整磁盘镜像的大小(只能扩展)需要在操作系统中调整分区才能实际使用扩展空间。
root@controller:~# qemu-img resize cirros-0.3.4-x86_64-disk.img +10M
Image resized.
root@controller:~# qemu-img info cirros-0.3.4-x86_64-disk.img
image: cirros-0.3.4-x86_64-disk.img
file format: qcow2
virtual size: 49.2 MiB (51612160 bytes)
disk size: 12.7 MiB
cluster_size: 65536
Format specific information:
    compat: 0.10
    compression type: zlib
    refcount bits: 16
Child node '/file':
    filename: cirros-0.3.4-x86_64-disk.img
    protocol type: file
    file length: 12.7 MiB (13287936 bytes)
    disk size: 12.7 MiB
root@controller:~#
  • 压缩磁盘镜像
    将磁盘镜像压缩以节省存储空间(适用于 QCOW2)
    qemu-img convert -O qcow2 -c <源镜像文件> <目标镜像文件>
root@controller:~# qemu-img convert -O qcow2 -c cirros-0.3.4-x86_64-disk.img cirros-qcow2.img

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

chrome使用问题记录

1. http自动跳转https问题 step1. 地址栏输入&#xff1a; chrome://net-internals/#hsts step2. 找到底部Delete domain security policies一栏&#xff0c;输入想处理的域名&#xff0c;点击delete。 注意&#xff1a;输入域名时去掉前缀http step3. 搞定了&#xff0c;再…

EasyNVR中HTTP-FLV协议无法播放怎么解决?

在科技日新月异的今天&#xff0c;摄像头作为公共安全领域的重要一环&#xff0c;其技术的不断提升正显著地改变着社会的安全格局。从最初的简单监控到如今的高清智能分析&#xff0c;我们可以对特定区域进行实时监控和记录&#xff0c;为社会的安全稳定提供了强有力的保障。 问…

【H2O2|全栈】MySQL的基本操作(三)

目录 前言 开篇语 准备工作 案例准备 多表查询 笛卡尔积 等值连接 外连接 内连接 自连接 子查询 存在和所有 含于 分页查询 建表语句 结束语 前言 开篇语 本篇继续讲解MySQL的一些基础的操作——数据字段的查询中的多表查询和分页查询&#xff0c;与单表查询…

电子商务人工智能指南 2/6 - 需求预测和库存管理

介绍 81% 的零售业高管表示&#xff0c; AI 至少在其组织中发挥了中等至完全的作用。然而&#xff0c;78% 的受访零售业高管表示&#xff0c;很难跟上不断发展的 AI 格局。 近年来&#xff0c;电子商务团队加快了适应新客户偏好和创造卓越数字购物体验的需求。采用 AI 不再是一…

使用国内镜像源加速Qt“更新/安装”的方法

QT更新/安装时&#xff0c;国外源下载很慢&#xff0c;国内镜像源也因网络环境的不同而速度各异&#xff0c;下文给出国内镜像源的配置方法。 一、命令行 1、切换对应目录&#xff0c;更新器默认目录是 C:\Qt 2、文件名镜像源 安装示例&#xff1a; .\qt-unified-windows-x…

深度学习作业十 BPTT

目录 习题6-1P 推导RNN反向传播算法BPTT. 习题6-2 推导公式(6.40)和公式(6.41)中的梯度&#xff0e; 习题6-3 当使用公式(6.50)作为循环神经网络的状态更新公式时&#xff0c; 分析其可能存在梯度爆炸的原因并给出解决方法&#xff0e; 习题6-2P 设计简单RNN模型&#xff0…

Css、less和Sass(SCSS)的区别详解

文章目录 Css、less和Sass&#xff08;SCSS&#xff09;的区别详解一、引言二、CSS 简介1.1、CSS 示例 三、Less 简介2.1、Less 特性2.2、Less 示例 四、Sass&#xff08;SCSS&#xff09;简介3.1、Sass 特性3.2、SCSS 示例 五、总结 Css、less和Sass&#xff08;SCSS&#xff…

WebHID API演示Demo教程:设备列表,设备连接,数据读写

1. 简介 WebHID API允许网页应用直接与HID&#xff08;人机接口设备&#xff09;进行通信。本教程将演示如何创建一个基础的WebHID应用&#xff0c;实现以下功能&#xff1a; 显示和获取HID设备列表连接/断开HID设备读取设备数据向设备发送数据 2. 兼容性和前提条件 2.1 浏览…

R语言机器学习论文(六):总结

文章目录 介绍参考文献介绍 本文采用R语言对来自进行数据描述、数据预处理、特征筛选和模型构建。 最后我们获得了一个能有效区分乳腺组织的随机森林预测模型,它的性能非常好,这意味着它可能拥有非常好的临床价值。 在本文中,我们利用R语言对来自美国加州大学欧文分校的B…

三、代码管理-Git

文章目录 前言一、Git1. Git 与 SVN 区别2. Git 入门3. 客户端工具4. 主流Git仓库 二、GitLab1. 介绍2. 适合的场景 二、GitHub1. 介绍2. 适合的场景 三、Gitee1. 介绍2. 适合的场景 四、GitCode1. 介绍2. 适合的场景 五、总结 前言 代码托管‌ Git作为目前最为流行的版本控制…

基于51单片机的智能公交车报站系统GPS定位语音播报智能安全检测人数统计

功能描述 1.LCD12864可显示当前年月日&#xff0c;星期&#xff0c;时间&#xff0c; 当前站名&#xff0c;经纬度&#xff0c;是否连接GPS&#xff0c;自动/手动模式&#xff0c; 2.自带GPS定位&#xff0c;可实时显示经纬度&#xff1b; 3.通过DS1302时钟芯片&#xff0c;获…

【数据库系列】Spring Data Neo4j Cypher 查询使用进阶指南

在 Neo4j 中,Cypher 查询语句并不像 MySQL 的 mapper XML 那样直接支持拆分和组织。然而,你可以使用一些策略来管理和重用 Cypher 查询,使其更易于维护和组织。以下是几种方法: 1. 使用 Spring Data Neo4j 的 Repository 接口 通过定义多个查询方法,可以将复杂查询分解为…

UIlicious - 自动化端到端测试

在现代软件开发中&#xff0c;测试自动化已然成为产品交付质量的基石。而端到端测试&#xff08;E2E&#xff09;&#xff0c;作为验证整个应用流畅运行的关键&#xff0c;常常是测试工作中最具挑战性的一环。这时&#xff0c;一款简单高效的自动化测试工具——UIlicious&#…

OpenHarmony-3.HDF框架(2)

OpenHarmony HDF 平台驱动 1.平台驱动概述 系统平台驱动框架是系统驱动框架的重要组成部分&#xff0c;它基于HDF驱动框架、操作系统适配层(OSAL, operating system abstraction layer)以及驱动配置管理机制&#xff0c;为各类平台设备驱动的实现提供标准模型。 系统平台驱动(…

前端 el-table-column 里加上el-form-item 上面有黑色悬浮

如图所示 解决方法&#xff0c;查看你的 el-table-column 是否设置了 show-overflow-tooltip 属性&#xff0c;如果是去掉即可

使用MATLAB从Excel文件读取数据并绘制堆叠柱状图

在数据可视化中&#xff0c;堆叠柱状图是展示多个变量相对比例的非常有效的方法。它通过将每个数据系列堆叠在一起&#xff0c;帮助我们理解不同数据类别在总量中所占的份额。在这篇博客中&#xff0c;我们将学习如何使用MATLAB从Excel文件导入数据&#xff0c;并使用渐变色来绘…

书生浦语第四期--入门岛-第三关

文章目录 1.破冰任务&#xff1a;自我介绍1.1 create new fork1.2 git clone 自己的分支1.3 创建关联分支1.4提交修改 任务2 &#xff1a;创建自己的仓库 1.破冰任务&#xff1a;自我介绍 1.1 create new fork 创建一个自己的分支&#xff0c;在自己分支上进行修改&#xff0…

【AI系统】轻量级CNN模型新进展

CNN 模型小型化&#xff08;下&#xff09; 在本文会接着介绍 CNN 模型的小型化&#xff0c;除了第二篇文章提到的三个模型外&#xff0c;在本章节会继续介绍 ESPNet 系列&#xff0c;FBNet 系列&#xff0c;EfficientNet 系列和 GhostNet 系列。 ESPNet 系列 ESPNetV1 ESP…

鸿蒙HarmonyOS状态管理组件吐槽

吐槽一下鸿蒙系统设计的状态管理组件 一. 定义和作用 状态管理组件其本质作用用来修饰状态变量&#xff0c;这样可以观察到变量在组件内的改变&#xff0c;还可以在不同组件层级间传递&#xff0c;其设计初衷挺好。在声明式UI编程框架中&#xff0c;UI是程序状态的运行结果&a…

unicloud微信小程序云端一体项目DEMO

最近应客户需求&#xff0c;做了一个产品展示的云开发小程序&#xff0c;从了解云开发到应用到实际项目的产品demo&#xff0c;希望大家能从中获取到对自己有用的东西。 说下心得体会吧&#xff0c;一般小项目用这种云开发确实会减少很多开发成本&#xff0c;人力成本&#xf…