Azure Synapse Dedicated SQL Pool实用命令语句

一、数据管理相关命令

1. 数据加载
  • COPY 命令:用于从外部存储(如 Azure Blob 存储)加载数据到 Dedicated SQL Pool 中。
COPY INTO [dbo].[target_table]
FROM 'https://<storage_account>.blob.core.windows.net/<container>/<file_path>'
WITH (FILE_TYPE = 'CSV',FIELDTERMINATOR = ',',ROWTERMINATOR = '\n',CREDENTIAL = (IDENTITY= 'ManagedIdentity')
);

一、不同的数据源格式

Parquet格式

COPY INTO [dbo].[target_table]
FROM 'https://<storage_account>.blob.core.windows.net/<container>/<file_path>'
WITH (FILE_TYPE = 'PARQUET',CREDENTIAL = (IDENTITY= 'ManagedIdentity')
);

JSON格式(假设SQL Pool支持合适的JSON处理)

COPY INTO [dbo].[target_table]
FROM 'https://<storage_account>.blob.core.windows.net/<container>/<file_path>'
WITH (FILE_TYPE = 'JSON',CREDENTIAL = (IDENTITY= 'ManagedIdentity')
);

二、不同的身份验证方式(除了ManagedIdentity)

SQL登录身份验证(如果适用)

COPY INTO [dbo].[target_table]
FROM 'https://<storage_account>.blob.core.windows.net/<container>/<file_path>'
WITH (FILE_TYPE = 'CSV',FIELDTERMINATOR = ',',ROWTERMINATOR = '\n',CREDENTIAL = (USERNAME='<sql_username>', PASSWORD='<sql_password>')
);

三、处理不同的文件路径和通配符情况

加载文件夹下所有文件(使用通配符)

COPY INTO [dbo].[target_table]
FROM 'https://<storage_account>.blob.core.windows.net/<container>/<folder_path>/*'
WITH (FILE_TYPE = 'CSV',FIELDTERMINATOR = ',',ROWTERMINATOR = '\n',CREDENTIAL = (IDENTITY= 'ManagedIdentity')
);

加载特定文件名模式的文件(使用通配符)

COPY INTO [dbo].[target_table]
FROM 'https://<storage_account>.blob.core.windows.net/<container>/<folder_path>/data_*.csv'
WITH (FILE_TYPE = 'CSV',FIELDTERMINATOR = ',',ROWTERMINATOR = '\n',CREDENTIAL = (IDENTITY= 'ManagedIdentity')
);

四、数据转换和映射选项(如果支持)

指定列映射(假设目标表和源数据列不完全匹配)

COPY INTO [dbo].[target_table] (column1, column2, column3)
FROM 'https://<storage_account>.blob.core.windows.net/<container>/<file_path>'
WITH (FILE_TYPE = 'CSV',FIELDTERMINATOR = ',',ROWTERMINATOR = '\n',CREDENTIAL = (IDENTITY= 'ManagedIdentity')
);

应用简单的数据转换函数(例如,将源数据中的字符串日期转换为日期类型)

COPY INTO [dbo].[target_table]
FROM 'https://<storage_account>.blob.core.windows.net/<container>/<file_path>'
WITH (FILE_TYPE = 'CSV',FIELDTERMINATOR = ',',ROWTERMINATOR = '\n',CREDENTIAL = (IDENTITY= 'ManagedIdentity'),DATA_CONVERSION = 'column_date = CONVERT(DATE, source_date_column)'
);

FILE_TYPE 参数的更多选项

  • ORC格式(如果支持)
COPY INTO [dbo].[target_table]
FROM 'https://<storage_account>.blob.core.windows.net/<container>/<file_path>'
WITH (FILE_TYPE = 'ORC',CREDENTIAL = (IDENTITY = 'ManagedIdentity')
);
  • Delta Lake格式(如果环境支持Delta Lake集成)
COPY INTO [dbo].[target_table]
FROM 'https://<storage_account>.blob.core.windows.net/<container>/<file_path>'
WITH (FILE_TYPE = 'DELTA',CREDENTIAL = (IDENTITY = 'ManagedIdentity')
);

FIELDQUOTE 参数(用于带引号的字段,如CSV文件中引号包围的字段)

  • 假设CSV文件中的字段是用双引号包围的,并且字段分隔符是逗号。
COPY INTO [dbo].[target_table]
FROM 'https://<storage_account>.blob.core.windows.net/<container>/<file_path>'
WITH (FILE_TYPE = 'CSV',FIELDTERMINATOR = ',',FIELDQUOTE = '"',ROWTERMINATOR = '\n',CREDENTIAL = (IDENTITY = 'ManagedIdentity')
);

COMPRESSION 参数(如果数据源是压缩文件)

  • GZIP压缩的CSV文件
COPY INTO [dbo].[target_table]
FROM 'https://<storage_account>.blob.core.windows.net/<container>/<file_path>.gz'
WITH (FILE_TYPE = 'CSV',FIELDTERMINATOR = ',',ROWTERMINATOR = '\n',COMPRESSION = 'GZIP',CREDENTIAL = (IDENTITY = 'ManagedIdentity')
);

HEADER_ROW 参数(用于处理包含标题行的文件)

  • 当CSV文件包含标题行,且希望跳过标题行进行数据加载时。
COPY INTO [dbo].[target_table]
FROM 'https://<storage_account>.blob.core.windows.net/<container>/<file_path>'
WITH (FILE_TYPE = 'CSV',FIELDTERMINATOR = ',',ROWTERMINATOR = '\n',HEADER_ROW = TRUE,CREDENTIAL = (IDENTITY = 'ManagedIdentity')
);

ERRORFILE 参数(用于指定错误文件路径)

  • 当加载数据过程中出现错误,将错误记录存储到指定的文件中。
COPY INTO [dbo].[target_table]
FROM 'https://<storage_account>.blob.core.windows.net/<container>/<file_path>'
WITH (FILE_TYPE = 'CSV',FIELDTERMINATOR = ',',ROWTERMINATOR = '\n',CREDENTIAL = (IDENTITY = 'ManagedIdentity'),ERRORFILE = 'https://<storage_account>.blob.core.windows.net/<error_container>/<error_file_path>'
);
  • PolyBase 数据加载:通过 CTASINSERT INTO 快速从外部数据源加载数据。
-- CTAS 语句示例
CREATE TABLE [dbo].[target_table] AS
SELECT *
FROM EXTERNAL DATA SOURCE [AzureBlobStorage]
WITH (LOCATION = 'https://<storage_account>.blob.core.windows.net/<container>/<file_path>',FILE_FORMAT = 'CSV'
);-- INSERT INTO 语句示例
INSERT INTO [dbo].[target_table]
SELECT *
FROM EXTERNAL TABLE [external_table];

以下是不同参数的PolyBase命令相关内容:

一、使用 INSERT INTO 加载数据

-- INSERT INTO语句示例
INSERT INTO [dbo].[target_table]
SELECT *
FROM EXTERNAL DATA SOURCE [AzureBlobStorage]
WITH (LOCATION = 'https://<storage_account>.blob.core.windows.net/<container>/<file_path>',FILE_FORMAT = 'CSV'
);

在这个命令中, INSERT INTO 用于将从外部数据源(这里是Azure Blob Storage指定位置的文件)查询到的数据插入到已存在的 target_table 表中。

二、指定不同文件格式参数

Parquet文件格式

-- CTAS语句示例(Parquet格式)
CREATE TABLE [dbo].[parquet_target_table] AS
SELECT *
FROM EXTERNAL DATA SOURCE [AzureBlobStorage]
WITH (LOCATION = 'https://<storage_account>.blob.core.windows.net/<container>/<parquet_file_path>',FILE_FORMAT = 'PARQUET'
);

这里将文件格式参数 FILE_FORMAT 指定为 PARQUET ,用于加载Parquet格式的数据到新创建的表 parquet_target_table 中。

JSON文件格式(假设支持)

-- CTAS语句示例(JSON格式,假设支持)
CREATE TABLE [dbo].[json_target_table] AS
SELECT *
FROM EXTERNAL DATA SOURCE [AzureBlobStorage]
WITH (LOCATION = 'https://<storage_account>.blob.core.windows.net/<container>/<json_file_path>',FILE_FORMAT = 'JSON'
);

此命令尝试将 FILE_FORMAT 设为 JSON 来加载JSON格式的数据到 json_target_table 表,不过实际的JSON支持可能需要根据Azure Synapse Dedicated SQL Pool的具体配置和功能来确定。

三、指定数据源认证相关参数(如果需要)
假设数据源需要某种形式的认证,可能会有类似如下的参数(以下是示例,实际认证方式因数据源和配置而异):

-- CTAS语句示例(包含认证相关参数示例)
CREATE TABLE [dbo].[target_table_with_auth] AS
SELECT *
FROM EXTERNAL DATA SOURCE [AzureBlobStorage]
WITH (LOCATION = 'https://<storage_account>.blob.core.windows.net/<container>/<file_path>',FILE_FORMAT = 'CSV',CREDENTIAL = [MyCredential] -- 假设MyCredential是已配置的认证凭据对象
);

在这个示例中, CREDENTIAL 参数用于指定访问外部数据源所需的认证凭据,这可以用于安全地访问需要认证的存储资源。

2. 数据导出
  • PolyBase 数据导出:将数据从 Dedicated SQL Pool 导出到外部数据源。
-- 示例:从 Dedicated SQL Pool 导出数据到 Azure Blob 存储
EXPORT TO EXTERNAL DATA SOURCE [AzureBlobStorage]
WITH (LOCATION = 'https://<storage_account>.blob.core.windows.net/<container>/<file_path>',FILE_FORMAT = 'CSV'
)
SELECT * FROM [dbo].[source_table];

以下是 PolyBase 导出命令中不同参数的一些情况:

  1. 外部数据源类型(EXTERNAL DATA SOURCE)
  • Azure Data Lake Storage Gen2
EXPORT TO EXTERNAL DATA SOURCE [ADLSGen2]
WITH (LOCATION = 'abfss://<container>@<storage_account>.dfs.core.windows.net/<file_path>',FILE_FORMAT = 'PARQUET'
)
SELECT * FROM [dbo].[source_table];
  • SQL Server(远程数据库)
-- 假设已经配置好链接服务器等相关设置
EXPORT TO EXTERNAL DATA SOURCE [RemoteSQLServer]
WITH (LOCATION = 'Server=<remote_server_name>;Database=<remote_database_name>;Schema=<schema_name>;Table=<target_table_name>',FILE_FORMAT = 'ORC'
)
SELECT * FROM [dbo].[source_table];
  1. 文件格式(FILE_FORMAT)
  • JSON格式导出
EXPORT TO EXTERNAL DATA SOURCE [AzureBlobStorage]
WITH (LOCATION = 'https://<storage_account>.blob.core.windows.net/<container>/<file_path>',FILE_FORMAT = 'JSON'
)
SELECT * FROM [dbo].[source_table];
  • Avro格式导出
EXPORT TO EXTERNAL DATA SOURCE [AzureBlobStorage]
WITH (LOCATION = 'https://<storage_account>.blob.core.windows.net/<container>/<file_path>',FILE_FORMAT = 'AVRO'
)
SELECT * FROM [dbo].[source_table];
  1. 选择列导出(SELECT部分)
  • 选择特定列导出
EXPORT TO EXTERNAL DATA SOURCE [AzureBlobStorage]
WITH (LOCATION = 'https://<storage_account>.blob.core.windows.net/<container>/<file_path>',FILE_FORMAT = 'CSV'
)
SELECT column1, column2 FROM [dbo].[source_table];
  • 使用函数处理后导出列
EXPORT TO EXTERNAL DATA SOURCE [AzureBlobStorage]
WITH (LOCATION = 'https://<storage_account>.blob.core.windows.net/<container>/<file_path>',FILE_FORMAT = 'CSV'
)
SELECT UPPER(column_name) FROM [dbo].[source_table];
  1. 条件筛选导出(SELECT部分)
  • 基于简单条件筛选导出
EXPORT TO EXTERNAL DATA SOURCE [AzureBlobStorage]
WITH (LOCATION = 'https://<storage_account>.blob.core.windows.net/<container>/<file_path>',FILE_FORMAT = 'CSV'
)
SELECT * FROM [dbo].[source_table] WHERE column_value > 10;
  • 基于复杂条件筛选导出(组合多个条件)
EXPORT TO EXTERNAL DATA SOURCE [AzureBlobStorage]
WITH (LOCATION = 'https://<storage_account>.blob.core.windows.net/<container>/<file_path>',FILE_FORMAT = 'CSV'
)
SELECT * FROM [dbo].[source_table] WHERE (column_value > 10 AND column_name LIKE '%abc%');
3. 表操作
  • CREATE TABLE:创建新表,并指定分布方法和索引类型。
CREATE TABLE [dbo].[new_table] (column1 INT,column2 VARCHAR(100),column3 DATETIME
)
WITH (DISTRIBUTION = HASH(column1), -- 指定分布方法CLUSTERED COLUMNSTORE INDEX  -- 使用聚集列存储索引
);

在Azure Synapse Dedicated SQL Pool中,除了上述基本的创建表命令形式外,还有以下几种常见形式:

不指定分布方法(采用默认分布)

CREATE TABLE [dbo].[new_table] (column1 INT,column2 VARCHAR(100),column3 DATETIME
)
WITH (CLUSTERED COLUMNSTORE INDEX  
);

这种情况下,系统会根据默认设置来确定数据的分布方式。

创建堆表(无聚集索引)

CREATE TABLE [dbo].[new_table] (column1 INT,column2 VARCHAR(100),column3 DATETIME
);

堆表没有聚集索引,数据存储时不会按照特定的索引结构排序,在某些特定场景下(如快速插入大量数据)可能会用到。

基于现有表创建新表(仅复制结构)

SELECT TOP 0 * INTO [dbo].[new_table] FROM [dbo].[existing_table];

这会创建一个与 existing_table 结构相同的新表 new_table ,但是不会复制数据,只有表结构被复制过来。

带有约束条件的表创建

CREATE TABLE [dbo].[new_table] (column1 INT PRIMARY KEY,column2 VARCHAR(100) NOT NULL,column3 DATETIME CHECK (column3 > '2025-01-01')
)
WITH (DISTRIBUTION = HASH(column1),CLUSTERED COLUMNSTORE INDEX  
);

这里的 column1 被定义为主键, column2 设置为非空, column3 添加了一个检查约束,只允许插入大于 2025-01-01 的日期值。

  1. 不同的分布方式
  • ROUND_ROBIN分布
CREATE TABLE [dbo].[new_table] (column1 INT,column2 VARCHAR(100),column3 DATETIME
)
WITH (DISTRIBUTION = ROUND_ROBIN, CLUSTERED COLUMNSTORE INDEX  
);

ROUND_ROBIN分布是将数据均匀地分布在各个计算节点上,不依赖于某一列的值。

  • REPLICATE分布
CREATE TABLE [dbo].[new_table] (column1 INT,column2 VARCHAR(100),column3 DATETIME
)
WITH (DISTRIBUTION = REPLICATE, CLUSTERED COLUMNSTORE INDEX  
);

REPLICATE分布会将整个表的数据复制到每个计算节点,适用于小表,方便在各个节点本地访问,减少数据移动开销。

  1. 不同的索引类型
  • 创建带有非聚集列存储索引的表
CREATE TABLE [dbo].[new_table] (column1 INT,column2 VARCHAR(100),column3 DATETIME
)
WITH (DISTRIBUTION = HASH(column1),NONCLUSTERED COLUMNSTORE INDEX(column1, column2)
);

非聚集列存储索引可以对指定列进行索引,在某些查询场景下提供更好的性能。

  • 创建带有聚集索引(非列存储)的表
CREATE TABLE [dbo].[new_table] (column1 INT,column2 VARCHAR(100),column3 DATETIME
)
WITH (DISTRIBUTION = HASH(column1),CLUSTERED INDEX (column1)
);

聚集索引会根据索引列对数据进行物理排序存储,与列存储索引的存储和使用方式有所不同,适合特定的查询模式,例如基于范围的查询。

  1. 带有分区参数的表创建
CREATE TABLE [dbo].[new_table] (column1 INT,column2 VARCHAR(100),column3 DATETIME
)
WITH (DISTRIBUTION = HASH(column1),CLUSTERED COLUMNSTORE INDEX,PARTITION (column3 RANGE RIGHT FOR VALUES ('2025-01-01', '2025-02-01'))
);

这个命令创建了一个分区表,根据 column3 列的值进行分区,这里使用了 RANGE RIGHT 分区方式,将数据按照给定的日期值分区存储,有助于提高数据管理和查询性能,特别是针对时间序列等数据。

  • ALTER TABLE:修改表结构(添加/删除列、更改分布方法)。
-- 添加列
ALTER TABLE [dbo].[existing_table]
ADD new_column INT;-- 更改分布方法
ALTER TABLE [dbo].[existing_table]
WITH (DISTRIBUTION = REPLICATED);
  • DROP TABLE:删除表。
DROP TABLE [dbo].[table_name];

基本的删除表命令

  • 上面提到的 DROP TABLE [dbo].[table_name]; 是最常见的形式。其中 [dbo] 是架构(schema)名称, [table_name] 是要删除的表名。如果表在默认架构下,也可以简单写成 DROP TABLE [table_name]; 。
    删除临时表
  • 对于本地临时表(以 # 开头的表名),例如 DROP TABLE #temp_table; 。这种临时表仅在当前会话中可见,会话结束时会自动删除,但如果想在会话中提前删除它,就可以使用这个命令。
  • 对于全局临时表(以 ## 开头的表名),如 DROP TABLE ##global_temp_table; 。全局临时表在所有会话中都可见,直到所有引用它的会话都结束,不过也可以手动用此命令删除。
    使用动态SQL删除表
  • 有时候表名是动态生成的,可以使用动态SQL来删除表。例如:
DECLARE @tableName NVARCHAR(100)='[dbo].[dynamic_table]';
DECLARE @sql NVARCHAR(MAX);
SET @sql = 'DROP TABLE ' + @tableName;
EXEC sp_executesql @sql;
  • 这里先定义了一个变量 @tableName 来存储表名,然后构建一个动态的SQL语句存储在 @sql 变量中,最后使用 sp_executesql 存储过程来执行这个动态SQL,从而实现删除表的操作。
    带有条件判断的删除表(间接方式)
  • 可以先检查表是否存在,然后再决定是否删除。例如:
IF OBJECT_ID('dbo.table_to_check', 'U') IS NOT NULL
BEGINDROP TABLE [dbo].[table_to_check];
END;
  • 这里 OBJECT_ID 函数用于检查指定的对象(这里是表, ‘U’ 表示用户表类型)是否存在。如果存在( OBJECT_ID 返回非 NULL 值),则执行 DROP TABLE 命令来删除表。

二、性能优化相关命令

1. 索引管理
  • 创建索引:为表创建聚集列存储索引(CCI)。
CREATE CLUSTERED COLUMNSTORE INDEX CCI_Index
ON [dbo].[table_name];
  • 删除索引:根据需要删除不再需要的索引。
DROP INDEX [index_name] ON [dbo].[table_name];
2. 查询优化
  • 物化视图:存储复杂查询的预计算结果。
CREATE MATERIALIZED VIEW [dbo].[materialized_view_name]
AS
SELECT column1, column2, SUM(column3) AS total
FROM [dbo].[table_name]
GROUP BY column1, column2;

物化视图命令的基本形式

  • 创建物化视图:
CREATE MATERIALIZED VIEW [schema_name].[materialized_view_name]
AS
[SELECT query];

其中 schema_name 是架构名, materialized_view_name 是物化视图名称, SELECT query 是用于定义物化视图内容的查询语句,如示例中的按 column1 和 column2 分组并计算 column3 总和的查询。

  • 刷新物化视图:
ALTER MATERIALIZED VIEW [dbo].[materialized_view_name] REFRESH;

这用于更新物化视图中的数据,使其反映基础表数据的最新变化。

  • 删除物化视图:
DROP MATERIALIZED VIEW [dbo].[materialized_view_name];

用于删除不再需要的物化视图。
不同参数的物化视图命令(以创建为例)

  • 指定分布选项创建物化视图:
CREATE MATERIALIZED VIEW [dbo].[materialized_view_name]
WITH (DISTRIBUTION = HASH([distribution_column]))
AS
[SELECT query];

这里 DISTRIBUTION = HASH([distribution_column]) 指定了分布方式,通过对 distribution_column 进行哈希分布来存储物化视图数据,提升查询性能。

  • 指定索引选项创建物化视图:
CREATE MATERIALIZED VIEW [dbo].[materialized_view_name]
WITH (INDEX = ([index_name]))
AS
[SELECT query];

其中 INDEX = ([index_name]) 可以为物化视图创建索引, index_name 是索引名称,合理的索引可以加快查询物化视图的速度。不过需要注意的是,这种方式会增加存储和维护成本。

  • 查询重写:通过重写查询语句,避免不必要的子查询和联接。
-- 示例:重写一个查询以提高性能
SELECT a.column1, b.column2
FROM [dbo].[table_a] a
INNER JOIN [dbo].[table_b] b
ON a.column1 = b.column1;
3. 分布方法选择
  • 选择合适的分布方法:根据表的使用场景和联接需求,选择合适的分布方法(HASH、ROUND-ROBIN、REPLICATED)。
-- 使用 HASH 分布
CREATE TABLE [dbo].[table_name]
WITH (DISTRIBUTION = HASH(column1));-- 使用 REPLICATED 分布
CREATE TABLE [dbo].[table_name]
WITH (DISTRIBUTION = REPLICATED);-- 使用 ROUND-ROBIN 分布
CREATE TABLE [dbo].[table_name]
WITH (DISTRIBUTION = ROUND_ROBIN);

三、资源控制相关命令

1. 资源类(Resource Classes)
  • 设置资源类:为查询分配不同的资源类。
-- 为当前会话设置资源类
EXEC sp_set_session_context 'resource_class', 'largerc';
2. 并发控制
  • 设置并发查询数:配置并发连接数和查询超时时间等。
-- 配置查询超时(单位:秒)
ALTER DATABASE SCOPED CONFIGURATION SET QUERY_TIMEOUT = 120;-- 配置最大并发查询数
ALTER DATABASE SCOPED CONFIGURATION SET MAX_CONCURRENCY = 40;

四、监控与诊断相关命令

1. 查询性能见解(Query Performance Insights)

Azure Synapse Studio 提供了查询性能见解的图形化界面,用户可以通过此界面监控查询性能,识别性能瓶颈,分析查询计划等。

2. 动态管理视图(DMVs)
  • 查询系统状态和性能数据:使用动态管理视图(DMVs)来查看查询执行统计信息、等待统计信息等。
-- 查看查询执行统计信息
SELECT * FROM sys.dm_pdw_exec_requests;-- 查看查询等待统计信息
SELECT * FROM sys.dm_pdw_waits;
  • 查询执行计划
SELECT * FROM sys.dm_exec_query_plan( <request_id> );

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

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

相关文章

Mysql InnoDB B+Tree是什么?

“mysql中常用的数据库搜索引擎InnoDB,其索引通过BTree的方式进行构建。” 实在想不起来BTree是怎么一回事了。以点带线&#xff0c;将涉及到的数据结构一起复习一下。 文章目录 数据结构定义红黑树定义使命 BTree定义使命 BTree定义 InnoDB BTree 旋转与调整二叉排序树插入删…

对人型机器人的研究和展望

目录 概述 1 核心软硬件部件 1.1 运动控制部分 1.1.1 减速机 1.1.2 编码器 1.1.3 直流无刷电机 1.2 智能仿生手 1.3 控制板卡 2 人型机器人的应用 3 未来展望 概述 如果现在有人问&#xff1a;当前那个行业最火&#xff1f;毫无疑问答案肯定是人型机器人了。当前各类机…

Flask:后端框架使用

文章目录 1、介绍2、demo演示3、Flask请求和响应 3.1 演示demo3.2 request获取请求体数据3.3 requests发送请求3.4 响应返回和接收 4、特殊路由 4.1 路由重定向4.2 路由拦截器 1、介绍 Flask是由python语言编写的轻量级Web应用框架&#xff0c;主要应用于后端框架&#xff…

递归算法学习v2.3

目标和 设置全局变量&#xff1a; class Solution {int ret,path,aim;public int findTargetSumWays(int[] nums, int target) {aim target;dfs(nums,0);return ret;}public void dfs(int[] nums,int pos){if(pos nums.length){if(path aim){ret ;}return;}path nums[pos…

ui设计公司分享:浅色 UI 设计

在数字化产品琳琅满目的今天&#xff0c;用户对于界面的要求早已不止于功能的实现&#xff0c;更追求一种舒适、无压的交互体验。而浅色UI设计&#xff0c;凭借其独特的魅力&#xff0c;正逐渐成为众多设计师营造优质体验的首选。 一、浅色UI设计的视觉优势 &#xff08;一&a…

Nacos:使用PgSQL数据源

数据源插件开源仓库地址&#xff1a;nacos-datasource-extend-plugins 一、PostgreSQL数据库安装 1、本文使用Docker进行数据库的安装&#xff0c;使用docker命令拉取的PG14版本的数据库&#xff1a; docker pull postgres:14.6 2、创建PG容器并启动&#xff0c;映射了5432…

Linux——入门基本指令汇总

目录 1. ls指令2. pwd3. whoami指令4. cd指令5. clear指令6. touch指令7. mkdir指令8. rm指令9. man指令10. cp指令11. mv指令12. cat指令13. tac指令14. more指令15. less指令16. head指令17. tail指令18. date指令19. cal指令20. find指令21. which指令22. alias指令23. grep…

C语言之装甲车库车辆动态监控辅助记录系统

&#x1f31f; 嗨&#xff0c;我是LucianaiB&#xff01; &#x1f30d; 总有人间一两风&#xff0c;填我十万八千梦。 &#x1f680; 路漫漫其修远兮&#xff0c;吾将上下而求索。 C语言之装甲车库车辆动态监控辅助记录系统 目录 一、前言 1.1 &#xff08;一&#xff09;…

2024年Vue面试题汇总

流程图如下&#xff1a; vue核心知识——语法篇 1.请问 v-if 和 v-show 有什么区别&#xff1f; 相同点&#xff1a; 两者都是在判断DOM节点是否要显示。 不同点&#xff1a; a.实现方式&#xff1a; v-if是根据后面数据的真假值判断直接从Dom树上删除或重建元素节点。 v-…

centos搭建 Node.js 开发环境

Node.js &#xff0c;通常简称为Node&#xff0c;是一个事件驱动 I/O 服务端 JavaScript 环境&#xff0c;基于 Chrome V8引擎&#xff0c;具备速度快、性能强等特点&#xff0c;可用于搭建各类网络应用&#xff0c;及作为小程序后端服务环境。npm 和 npx 都是和 Node.js 相关的…

DuckDB:精通Insert语句处理数据冲突

本文介绍DuckDB insert语句用法&#xff0c;包括常规的批量插入&#xff0c;尤其是插入数据冲突的处理&#xff0c;最后还提及returning子句的用法&#xff0c;每个用法提供示例说明。 insert插入数据 INSERT INTO向表中插入新行。可以插入由值表达式指定的一行或多行&#xf…

【Linux系统】Ext系列磁盘文件系统二:引入文件系统(续篇)

inode 和 block 的映射 该博文中有详细解释&#xff1a;【Linux系统】inode 和 block 的映射原理 目录与文件名 这里有几个问题&#xff1a; 问题一&#xff1a; 我们访问文件&#xff0c;都是用的文件名&#xff0c;没用过 inode 号啊&#xff1f; 之前总是说可以通过一个…

SpringBoot实现定时任务,使用自带的定时任务以及调度框架quartz的配置使用

SpringBoot实现定时任务&#xff0c;使用自带的定时任务以及调度框架quartz的配置使用 文章目录 SpringBoot实现定时任务&#xff0c;使用自带的定时任务以及调度框架quartz的配置使用一. 使用SpringBoot自带的定时任务&#xff08;适用于小型应用&#xff09;二. 使用调度框架…

flutter 使用google_mlkit_image_labeling做图片识别

在AI横行的如今&#xff0c;相信大家或多或少都做过跟AI接轨的需求了吧&#xff1f;今天我说的是关于图片识别的需求&#xff0c;flutter的专属图片识别插件google_mlkit_image_labeling。 google_mlkit_image_labeling它是Google旗下的Google Cloud Vision API中分支出来的一部…

国产编辑器EverEdit - 合并行

1 合并行 1.1 应用场景 在编写代码或其他场景下&#xff0c;有时需要把多行的内容缩减成一行&#xff0c;或者纯粹减少行数进行合并&#xff0c;比如&#xff1a;下面的字典的定义&#xff0c;每个元素占了一行&#xff0c;有点浪费&#xff0c;现在需要把它们缩减行数。 typ…

3 前端(中):JavaScript

文章目录 前言&#xff1a;JavaScript简介一、ECMAscript&#xff08;JavaScript基本语法&#xff09;1 JavaScript与html结合方式&#xff08;快速入门&#xff09;2 基本知识&#xff08;1&#xff09;JavaScript注释&#xff08;和Java注释一样&#xff09;&#xff08;2&am…

RIME-CNN-LSTM-Attention多变量多步时序预测Matlab实现

SCI一区级 | Matlab实现RIME-CNN-LSTM-Multihead-Attention多变量多步时序预测 目录 SCI一区级 | Matlab实现RIME-CNN-LSTM-Multihead-Attention多变量多步时序预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.Matlab实现RIME-CNN-LSTM-Multihead-Attention霜冰算法…

一文读懂服务器的HBA卡

什么是 HBA 卡 HBA 卡&#xff0c;全称主机总线适配器&#xff08;Host Bus Adapter&#xff09; &#xff0c;是服务器与存储装置间的关键纽带&#xff0c;承担着输入 / 输出&#xff08;I/O&#xff09;处理及物理连接的重任。作为一种电路板或集成电路适配器&#xff0c;HBA…

mfc操作json示例

首先下载cJSON,加入项目; 构建工程,如果出现, fatal error C1010: unexpected end of file while looking for precompiled head 在cJSON.c文件的头部加入#include "stdafx.h"; 看情况,可能是加到.h或者是.cpp文件的头部,它如果有包含头文件, #include &…

综述:大语言模型在机器人导航中的最新进展!

简介 机器人导航是指机器人能够在环境中自主移动和定位的能力。本文系统地回顾了基于大语言模型&#xff08;LLMs&#xff09;的机器人导航研究&#xff0c;将其分为感知、规划、控制、交互和协调等方面。具体来说&#xff0c;机器人导航通常被视为一个几何映射和规划问题&…