【openGauss︱PostgreSQL】openGauss或PostgreSQL查表、索引、序列、权限、函数
【openGauss︱PostgreSQL】openGauss或PostgreSQL查表、索引、序列、权限、函数
- 一、openGauss查表
- 二、openGauss查索引
- 三、openGauss查序列
- 四、openGauss查权限
- 五、openGauss或PostgreSQL查函数
- 六、PostgreSQL查表
- 七、PostgreSQL查索引
- 八、PostgreSQL查序列
- 九、PostgreSQL查权限
一、openGauss查表
/* openGauss查表 */
select (casewhen substr(version(), 0, 1) = '('then substring(substr(version(), 2, length(version())) from '^[^ ]+')else substring(version() from '^[^ ]+')end)::text as database_type,ic.table_schema::text as schema,o.owner::text,ic.table_name::text,tab_com.description::text as table_comment,ic.ordinal_position::text as column_num,ic.column_name::text,(casewhen ic.data_type = 'bigint'then 'INT8'when ic.data_type = 'integer'then 'INT4'when ic.data_type = 'smallint'then 'INT2'when ic.data_type in ('nvarchar2') AND ic.character_maximum_length IS NOT NULLthen upper(ic.data_type) || '(' || ic.character_maximum_length || ')'when ic.data_type in ('nvarchar2') AND ic.character_maximum_length IS NULLthen 'NVARCHAR2'when ic.data_type in ('character varying')then 'VARCHAR(' || ic.character_maximum_length || ')'when ic.data_type in ('character')then 'CHAR(' || ic.character_maximum_length || ')'when ic.data_type = 'timestamp without time zone'then 'TIMESTAMP(' || ic.datetime_precision || ')'when ic.data_type = 'time without time zone'then 'TIME(' || ic.datetime_precision || ')'when ic.data_type = 'numeric' and ic.numeric_precision is not null and ic.numeric_scale is not nullthen 'NUMERIC(' || ic.numeric_precision || ',' || ic.numeric_scale || ')'when ic.data_type = 'numeric' and ic.numeric_precision is null and ic.numeric_scale is nullthen 'NUMERIC'when ic.data_type = 'text'then 'TEXT'when ic.data_type = 'date'then 'DATE'else upper(ic.data_type)end)::text as data_type,col_com.description::text as column_comment,(CASEwhen (POSITION(lower('::regclass') IN lower(ic.column_default)) > 0)then REPLACE(ic.column_default, '::regclass', '')when (POSITION(lower('::integer') IN lower(ic.column_default)) > 0)then REPLACE(REPLACE(ic.column_default, '::integer', ''), '''', '')else ic.column_defaultend)::text as column_default,ic.is_nullable::text,(casewhen pc.conname is null then null::textelse 'Y'end)::text as pkeyfrom pg_class c-- join db_objects o join adm_objects o on o.object_id = c.oid and o.object_type like '%table%'and c.relkind in ('r','p')-- and c.relname ~ '[0-9]'join pg_namespace non c.relnamespace = n.oidjoin information_schema.columns icon ic.table_name = c.relnameand n.nspname = ic.table_schemaleft join pg_description tab_comon tab_com.objoid = c.oidand tab_com.objsubid = 0left join pg_description col_comon col_com.objoid = c.oidand col_com.objsubid = ic.ordinal_positionleft join (SELECT conname, conrelid , unnest(conkey) as column_numFROM pg_constraintwhere contype = 'p') as pcon pc.conrelid = c.oidand pc.column_num = ic.ordinal_positionwhere 1=1order by ic.table_schema, ic.table_name, ic.ordinal_position
;
二、openGauss查索引
/* openGauss查索引 */
with t as (select (case when t1.indexdef ~ '^.* WHERE .*$'then REGEXP_REPLACE(t1.indexdef, '^.*\((.*)\).* WHERE .*$', '\1')else REGEXP_REPLACE(t1.indexdef, '^.*\((.*)\).*$', '\1')end)::varchar as index_columns,t1.* from (select 'gs_et_sit'::varchar as source,o.owner::varchar,ist.table_schema::varchar as schemaname,c.relname::varchar as tablename,c1.relname::varchar as indexname,(case i.indisuniquewhen 't' then 'Y'when 'f' then 'N'end)::varchar as index_is_unique,(case i.indisprimarywhen 't' then 'Y'when 'f' then 'N'end)::varchar as index_is_primary,(pg_get_indexdef(i.indexrelid))::varchar as indexdef_old,(case when pg_get_indexdef(i.indexrelid) ~ '^.*WHERE.*$'then replace(replace(replace(REGEXP_REPLACE(pg_get_indexdef(i.indexrelid),'^.*WHERE \((.*)\).*.*$', '\1'),'::text', ''),'(', ''),')', '')else NULLend)::varchar as where_condition,(casewhen i.indisprimary = 't'then 'ALTER TABLE ' || c.relname || ' ADD CONSTRAINT ' || c1.relname || ' PRIMARY KEY (' || (case when pg_get_indexdef(i.indexrelid) ~ '^.*\((.*)\).*\((.*)\).*$'then REGEXP_REPLACE(pg_get_indexdef(i.indexrelid), '^.*\((.*)\).*\((.*)\).*$', '\1')else REGEXP_REPLACE(pg_get_indexdef(i.indexrelid), '^.*\((.*)\).*$', '\1')end) || ');' else replace(replace(replace(replace(replace(replace(pg_get_indexdef(i.indexrelid),' USING btree', ''),' TABLESPACE pg_default', ''),'::text', ''),' WITH (storage_type=USTORE)', ''),'WITH (storage_type=ustore)', ''),' USING ubtree', '')||';'end)::varchar as indexdef from pg_index i,pg_class c1,pg_class c,information_schema.tables ist,db_objects o,pg_namespace nwhere i.indexrelid = c1.oidand i.indrelid = c.oidand c.relnamespace = n.oidand c.relname = ist.table_nameand n.nspname = ist.table_schemaand o.object_id = c.oidand ist.table_schema not in ('pg_catalog','db4ai')and ist.table_schema not like '%\_test%'and o.owner not in ('rdsAdmin','hisAdmin')and o.owner not like '%test%'and c.relname !~* '^pg\_toast\_.*$') t1)
select t.source,t.owner,t.schemaname as schema,t.tablename,t.indexname,t.indexdef,t.index_is_primary,t.index_is_unique,t.index_columns,t.where_conditionfrom torder by t.schemaname, t.tablename, t.indexname
;
三、openGauss查序列
/* openGauss查序列 */
with c as (
select r.rolname::varchar as owner,n.nspname::varchar as schema,c.relname::varchar as sequence_namefrom pg_class c, pg_roles r, pg_namespace nwhere c.relowner = r.oidand c.relnamespace = n.oidand c.relkind = 'S')
,s as (
select sequence_owner::varchar as owner,sequence_name::varchar,min_value::varchar,max_value::varchar,increment_by::varchar,cache_size::varchar,cycle_flag::varchar,last_number::varcharfrom db_sequences
)
select c.owner::varchar,c.schema::varchar,c.sequence_name::varchar,s.min_value::varchar,s.max_value::varchar,s.increment_by::varchar,s.cache_size::varchar,s.cycle_flag::varchar,s.last_number::varcharfrom Cinner join s on c.owner = s.owner and c.sequence_name = s.sequence_nameorder by schema, sequence_name;
四、openGauss查权限
/* openGauss查权限 */
WITH pg_rel_privs AS(SELECT xx.schemaname,xx.owner,xx.relname,xx.relkind,xx.relacls[1] AS grantee,xx.relacls[2] AS privilege,xx.relacls[3] AS grantorFROM (SELECT (SELECT n.nspnameFROM pg_namespace nWHERE n.oid = tt.relnamespace) AS schemaname,o.owner,tt.relname,tt.relkind,regexp_split_to_array(unnest(tt.relacl)::character varying::text, '=|/'::text) AS relaclsFROM pg_class ttLEFT JOIN db_objects oON tt.oid = o.object_idWHERE tt.relacl IS NOT NULL) xx)
SELECT t.schemaname::varchar as schema,t.owner::varchar,t.relname::varchar as object_name,(CASEWHEN t.relkind = 'r' ::char THEN 'table' ::textWHEN t.relkind = 'S' ::char THEN 'sequence' ::textWHEN t.relkind = 'v' ::char THEN 'view' ::textWHEN t.relkind = 'p' ::char THEN 'patition table' ::textELSE t.relkind ::textEND)::varchar AS type,t.grantor::varchar,t.grantee::varchar,(TRIM(CASE WHEN instr(t.privilege, 'a') > 0 THEN 'insert,' END || CASE WHEN instr(t.privilege, 'r') > 0 THEN 'select,' END || CASE WHEN instr(t.privilege, 'w') > 0 THEN 'update,' END || CASE WHEN instr(t.privilege, 'd') > 0 THEN 'delete,' END || CASE WHEN instr(t.privilege, 'D') > 0 THEN 'truncate,' END || CASE WHEN instr(t.privilege, 'U') > 0 THEN 'usage,' END,','))::varchar AS privilegeFROM pg_rel_privs tWHERE t.grantor != 'rdsAdmin'AND t.grantee != t.grantororder by schema,object_name,type,grantor,grantee,privilege;
五、openGauss或PostgreSQL查函数
/* openGauss或PostgreSQL查函数 */
select (CASE schemawhen 'tzq' then 'f_g_tzq'else schemaEND)::varchar as schema,(CASE ownerwhen 'tzq' then 'f_g_tzq'else ownerEND)::varchar as owner,pro_name,pro_arg,pro_arg_type,pro_ret_type,pro_content from (
select * from (select pn.nspname::varchar AS schema,r.rolname::varchar as owner,pc.proname::varchar as pro_name,pc.proargnames::varchar as pro_arg,(SELECT array(SELECT format_type(val, NULL)FROM unnest(proargtypes) as val))::varchar as pro_arg_type,format_type(pc.prorettype, NULL)::varchar as pro_ret_type,REGEXP_REPLACE(pg_get_functiondef(pc."oid")::text, '^\(4,"(.*)"\)$', '\1')::textas pro_contentfrom pg_proc pcinner join pg_roles ron pc.proowner = r.oidinner join pg_namespace pnon pc.pronamespace = pn.oidwhere 1=1and pn.nspname not in ('pg_catalog','dbe_pldebugger')and r.rolname not in ('rdsAdmin') and pc.proargnames is not nullorder by r.rolname asc
) aa
union all select pn.nspname::varchar AS schema,r.rolname::varchar as owner,pc.proname::varchar as pro_name,pc.proargnames::varchar as pro_arg,proargtypes::varchar AS pro_arg_type,format_type(pc.prorettype, NULL)::varchar as pro_ret_type-- ,pc.oid,REGEXP_REPLACE(pg_get_functiondef(pc.oid)::text, '^\(4,"(.*)"\)$', '\1')::text as pro_contentfrom pg_proc pcinner join pg_roles ron pc.proowner = r.oidinner join pg_namespace pnon pc.pronamespace = pn.oidwhere 1=1and pn.nspname not in ('pg_catalog','dbe_pldebugger')and r.rolname not in ('rdsAdmin') and pc.proargnames is null
) bb
order by schema, pro_name;
六、PostgreSQL查表
/* PostgreSQL查表 */
/* 更新日志:由于 information_schema.columns 有权限控制,不是该用户能查的权限就查不到,故下掉。采用 pg_attrdef 来获取列的默认值
*/
with tab_info_v as (SELECT substring(version() FROM '(\S+)') as database_type,n.nspname AS schema,r.rolname as owner,c.relname AS table_name,(col_description(c.oid, 0))::character varying AS table_comment,a.attnum,a.attname AS column_name,concat_ws('', t.typname) AS data_type,(CASEWHEN a.attlen > 0 THEN a.attlenWHEN t.typname = 'bit' THEN a.atttypmodELSE a.atttypmod - 4END) AS data_length,CASE-- 为了和 高斯比对WHEN (((format_type(a.atttypid, a.atttypmod))::character varying)::text = 'date'::text) THEN 'TIMESTAMP(0)'::character varyingWHEN (((format_type(a.atttypid, a.atttypmod))::character varying)::text = 'bigint'::text) THEN 'INT8'::character varyingWHEN (((format_type(a.atttypid, a.atttypmod))::character varying)::text = 'smallint'::text) THEN 'INT2'::character varyingWHEN (((format_type(a.atttypid, a.atttypmod))::character varying)::text = 'integer'::text) THEN 'INT4'::character varyingWHEN (left(((format_type(a.atttypid, a.atttypmod))::character varying)::text, 17) = 'character varying'::text) THEN (replace(((format_type(a.atttypid, a.atttypmod))::character varying)::text, 'character varying'::text, 'VARCHAR'::text))::character varyingWHEN (left(((format_type(a.atttypid, a.atttypmod))::character varying)::text, 9) = 'character'::text) THEN (replace(((format_type(a.atttypid, a.atttypmod))::character varying)::text, 'character'::text, 'char'::text))::character varyingWHEN (((format_type(a.atttypid, a.atttypmod))::text)::text = 'timestamp without time zone'::text) THEN 'TIMESTAMP'::character varyingWHEN (((format_type(a.atttypid, a.atttypmod))::text)::text = 'timestamp(0) without time zone'::text) THEN 'TIMESTAMP(0)'::character varyingWHEN (((format_type(a.atttypid, a.atttypmod))::text)::text = 'timestamp(6) without time zone'::text) THEN 'TIMESTAMP(6)'::character varyingELSE (format_type(a.atttypid, a.atttypmod))::character varyingEND AS typelen,(CASEWHEN a.attnotnull = TRUE THEN 'NO'ELSE 'YES'END) AS is_nullable -- 可为空,(CASEWHEN (SELECT COUNT(pg_constraint.*)FROM pg_constraintINNER JOIN pg_classON pg_constraint.conrelid = pg_class.oidINNER JOIN pg_attributeON pg_attribute.attrelid = pg_class.oidAND pg_attribute.attnum = ANY(pg_constraint.conkey)INNER JOIN pg_typeON pg_type.oid = pg_attribute.atttypidWHERE pg_class.relname = c.relnameAND pg_constraint.contype = 'p'AND pg_attribute.attname = a.attnameand pg_class.relowner = c.relowner) > 0 THEN 'Y'ELSE NULLEND) AS pkey,pg_get_expr(ad.adbin, ad.adrelid) as data_default,(SELECT descriptionFROM pg_descriptionWHERE objoid = a.attrelidAND objsubid = a.attnum) AS column_commentFROM pg_class cinner join pg_roles ron c.relowner = r.oidand c.relkind in ('r','p')and c.relpartbound is null-- and ((relkind = 'p') or (relkind = 'r' and relpartbound is null))inner join pg_attribute aon a.attnum > 0AND a.attrelid = c.oidinner join pg_namespace non n.oid = c.relnamespaceinner join pg_type ton a.atttypid = t.oidleft join pg_attrdef ad -- 列的默认值on ad.adrelid = c.oidand ad.adnum = a.attnumWHERE 1 = 1and n.nspname not in ('information_schema')ORDER BY c.relname ASC,a.attnum ASC,a.attname ASC
)
select database_type-- ,schema,CASE schemawhen 'tzq' then 'f_g_tzq'else schemaEND as schema,CASE ownerwhen 'tzq' then 'f_g_tzq'else schemaEND as owner,table_name, table_comment,attnum,column_name,replace(upper(typelen),'VARCHAR','NVARCHAR2') as data_type,column_comment,data_default as column_default,is_nullable,pkeyfrom tab_info_v vwhere 1=1-- and table_name = 'ets_risk_premium_check_tmp'-- and schema <> ownerand table_name not like 'adms_ogg_checkpoint%'-- and table_name !~ '[p][0-9]{2}$'-- and table_name !~ '[p][0-9]{1}$'-- and table_name ~ '[p][0-9]{1}$'
order by schema, table_name, attnum, column_name;
七、PostgreSQL查索引
/* PostgreSQL查索引 */
-- drop view if exists pg_index_info_v;
-- create view pg_index_info_v as
with t as (
select u.usename ,c.relname as tablename,c1.relname as indexname,case i.indisuniquewhen 't' then 'Y'when 'f' then 'N'end as index_is_unique -- 是否为唯一索引,case i.indisprimarywhen 't' then 'Y'when 'f' then 'N'end as index_is_primary -- 是否为主键,case when pg_get_indexdef(i.indexrelid) ~ '^.* WHERE .*$'then REGEXP_REPLACE(pg_get_indexdef(i.indexrelid), '^.*\((.*)\).* WHERE .*$', '\1')else REGEXP_REPLACE(pg_get_indexdef(i.indexrelid), '^.*\((.*)\).*$', '\1')end as index_columns,replace(pg_get_indexdef(i.indexrelid), 'USING btree ', '')||';'as indexdef1,casewhen i.indisprimary = 't'then 'ALTER TABLE ' || c.relname || ' ADD CONSTRAINT ' || c1.relname || ' PRIMARY KEY (' || (case when pg_get_indexdef(i.indexrelid) ~ '^.*\((.*)\).*\((.*)\).*$'then REGEXP_REPLACE(pg_get_indexdef(i.indexrelid), '^.*\((.*)\).*\((.*)\).*$', '\1')else REGEXP_REPLACE(pg_get_indexdef(i.indexrelid), '^.*\((.*)\).*$', '\1')end) || ');' else replace(replace(replace(pg_get_indexdef(i.indexrelid),' USING btree', ''),' TABLESPACE pg_default', '') ,'::text', '') ||';'end as indexdef,case when pg_get_indexdef(i.indexrelid) ~ '^.*WHERE.*$'then replace(replace(replace(REGEXP_REPLACE(pg_get_indexdef(i.indexrelid),'^.*WHERE \((.*)\).*.*$', '\1'),'::text', ''),'(', ''),')', '')else NULLend as where_condition--,i.* from pg_index i,pg_class c1,pg_class c,pg_user uwhere i.indexrelid = c1.oidand i.indrelid = c.oidand c.relowner = u.usesysidand c.relkind in ('r','p')and c.relpartbound is null-- and u.usename = CURRENT_USERand c.relname !~* '^pg\_toast\_.*$')
select CASE t.usenamewhen 'tzq' then 'f_g_tzq'else t.usenameEND as schema,t.tablename,t.indexname,casewhen index_is_primary = 'Y'then 'ALTER TABLE ' || t.tablename || ' ADD CONSTRAINT ' || t.indexname || ' PRIMARY KEY (' || t.index_columns || ');' else t.indexdef end as indexdef,t.index_is_unique,t.index_is_primary,t.index_columns,t.where_conditionfrom twhere t.tablename not like 'adms_ogg_checkpoint%'order by t.usename, t.tablename, t.indexname;
八、PostgreSQL查序列
/* PostgreSQL查序列 */
select (CASE sequenceownerwhen 'tzq' then 'f_g_tzq'else sequenceownerEND)::varchar as owner,(CASE schemanamewhen 'tzq' then 'f_g_tzq'else schemanameEND)::varchar as schema, sequencename::varchar as sequence_name, min_value::varchar, max_value::varchar, increment_by::varchar, cache_size::varchar,(case cycle when 'f' then 'n' else 'y' end)::varchar as cycle_flag,(case when last_value is null then '1' else last_value end)::varchar as last_numberfrom pg_sequenceswhere 1=1-- and schemaname in ('tzq');order by schema,sequence_name;
九、PostgreSQL查权限
/* PostgreSQL查权限 */
WITH pg_rel_privs AS (SELECT xx.relowner,xx.schemaname,xx.relname,xx.relkind,xx.relacls[1] AS grantee,xx.relacls[2] AS privilege,xx.relacls[3] AS grantorFROM ( SELECT ( SELECT u.usenameFROM pg_user uWHERE u.usesysid = tt.relowner) AS relowner,( SELECT n.nspnameFROM pg_namespace nWHERE n.oid = tt.relnamespace) AS schemaname,tt.relname,tt.relkind,regexp_split_to_array(unnest(tt.relacl)::character varying::text, '=|/'::text) AS relaclsFROM pg_class ttWHERE tt.relacl IS NOT NULL) xx),
dba_tab_privs as (SELECT x.relowner AS owner_,x.schemaname AS schema_name,x.relname AS table_name,CASEWHEN x.relkind = 'r'::char THEN 'table'::textWHEN x.relkind = 'S'::char THEN 'sequence'::textWHEN x.relkind = 'v'::char THEN 'view'::textWHEN x.relkind = 'p'::char THEN 'patition table'::textELSE x.relkind::textEND AS type_,x.grantee,CASEWHEN x.privilege = 'r'::text THEN 'select'::textWHEN x.privilege = 'a'::text THEN 'insert'::textWHEN x.privilege = 'd'::text THEN 'delete'::textWHEN x.privilege = 'w'::text THEN 'update'::textWHEN x.privilege = 'D'::text THEN 'truncate'::textWHEN x.privilege = 'X'::text THEN 'execute'::textWHEN x.privilege = 'U'::text THEN 'usage'::textWHEN x.privilege = 'x'::text THEN 'references'::textWHEN x.privilege = 't'::text THEN 'trigger'::textELSE x.privilegeEND AS privilege,x.grantorFROM ( SELECT t.relowner,t.schemaname,t.relname,t.relkind,t.grantee,regexp_split_to_table(t.privilege, ''::text) AS privilege,t.grantorFROM pg_rel_privs tWHERE t.relowner <> t.grantee) x)
select (CASE schema_namewhen 'tzq' then 'f_g_tzq'else schema_nameEND)::varchar as schema,(CASE owner_when 'tzq' then 'f_g_tzq'else owner_END)::varchar as owner,table_name::varchar as object_name,type_::varchar as type,(CASE lower(grantor)when 'tzq' then 'f_g_tzq'else lower(grantor)END)::varchar as grantor,(CASE lower(grantee)when 'tzq' then 'f_g_tzq'else lower(grantee)END)::varchar as grantee,privilege::varcharfrom dba_tab_privs twhere owner_ not in ('rdsAdmin')and schema_name not in ('pg_catalog')and lower(grantee) not in ('appmon')-- and schema_name in ('tzq')-- and (table_name like '%\_t' OR table_name like '%\_ti' OR table_name like '%\_tmp')
-- and type_ ~* 'table'and table_name not like 'adms_ogg_checkpoint%'
order by schema_name,table_name;
相关文章:

【openGauss︱PostgreSQL】openGauss或PostgreSQL查表、索引、序列、权限、函数
【openGauss︱PostgreSQL】openGauss或PostgreSQL查表、索引、序列、权限、函数 一、openGauss查表二、openGauss查索引三、openGauss查序列四、openGauss查权限五、openGauss或PostgreSQL查函数六、PostgreSQL查表七、PostgreSQL查索引八、PostgreSQL查序列九、PostgreSQL查权…...

Dataset用load_dataset读图片和对应的caption的一个坑
代码: data_files {} if args.train_data_dir is not None:data_files["train"] os.path.join(args.train_data_dir, "**")dataset load_dataset("imagefolder",data_filesdata_files,cache_dirargs.cache_dir,) 数据࿱…...

【信息系统项目管理师】第7章:项目立项管理 考点梳理
文章目录 7.1 项目建议与立项申请7.2 项目可行性研究7.2.1 可行性研究的内容7.2.2 初步可行性研究7.2.3 详细可行性研究(重点) 7.3 项目评估与决策 【学习建议】本章大概考选择题2分左右,有可能考案例题。论文早年考过。本章知识点比较集中&a…...

知识库、提示词对大语言模型的影响测试
简介 通过对比有无知识库,测试大语言模型的回答 有无提示词对比测试 前提 大语言模型:Qwen1.5-1.8B-Chat-GPTQ-Int4 GPU:1650super,显存4G 提问:华为mate70 没有提示词 回答的内容如下 “华为mate70pro和mate40p…...

vistat-监控和分析网络状态
vistat 是一个用于监控和分析网络状态的工具,通常用于查看网络接口、流量、连接等实时数据。 原理:用户态调用系统接口获取内核中的网络统计信息。 核心功能:网络接口流量监控、查看连接状态、带宽使用分析。 使用方法: 查看接…...

EasyAnimateV5 视频生成大模型原理详解与模型使用
在数字内容创作中,视频扮演的角色日益重要。然而,创作高质量视频通常耗时且昂贵。EasyAnimate 系列旨在利用人工智能技术简化这一过程。EasyAnimateV5 建立在其前代版本的基础之上,不仅在质量上有所提升,还在多模态数据处理和跨语…...

水稻和拟南芥生命周期中单碱基分辨率的m6A定量分析-文献精读88
Quantitative profiling of m6A at single base resolution across the life cycle of rice and Arabidopsis 水稻和拟南芥生命周期中单碱基分辨率的m6A定量分析 水稻参考基因组(日本晴品种)-CSDN博客 “Xian”(籼)和“Geng”&…...

学习threejs,使用canvas更新纹理
👨⚕️ 主页: gis分享者 👨⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨⚕️ 收录于专栏:threejs gis工程师 文章目录 一、🍀前言1.1 ☘️Texture 贴图 二、…...

【笔记2-3】ESP32 bug:PSRAM chip not found or not supported 没有外部PSRAM问题解决
主要参考b站宸芯IOT老师的视频,记录自己的笔记,老师讲的主要是linux环境,但配置过程实在太多问题,就直接用windows环境了,老师也有讲一些windows的操作,只要代码会写,操作都还好,开发…...

大数据hadoop、spark、flink、kafka发展的过程
将sql 代发翻译成java 程序 将python 程序通过pyspark框架翻译成java 程序,然后运行在spark计算框架上...

设计模式-理论基础
理论基础 一、代码质量指标1.可维护性(maintainability)2.可读性(readability)3.可扩展性(extensibility)4.灵活性(flexibility)5.简洁性(simplicity)6.可复用…...

猎板 PCB特殊工艺:铸就电子行业核心竞争力新高度
在当今竞争激烈且技术驱动的电子制造领域,印制电路板(PCB)作为电子产品的关键基石,其特殊工艺的发展水平直接影响着整个行业的创新步伐与产品品质。猎板 PCB 凭借在厚铜板、孔口铺铜、HDI 板、大尺寸板以及高频高速板等特殊工艺方…...

用于目标检测的集中式特征金字塔
摘要 https://arxiv.org/pdf/2210.02093 视觉特征金字塔在多种应用中已展现出其在有效性和效率方面的优越性。然而,现有方法过度关注层间特征交互,却忽略了经验证明有益的层内特征调节。尽管一些方法试图借助注意力机制或视觉变换器来学习紧凑的层内特征表示,但它们忽略了…...

大舍传媒-关于海外媒体宣发的探讨
关于海外媒体宣发的探讨 一、海外媒体宣发的重要性 在当今全球化的时代,海外媒体宣发对于企业、组织和个人来说具有至关重要的意义。通过有效的海外媒体宣发,可以提升品牌知名度,拓展国际市场,增强影响力,吸引更多的潜…...

Python从入门到入狱
Python是从入门到入狱?这个充满调侃意味的说法在程序员圈子里流传甚广。表面看,它似乎是在嘲笑这门语言从简单易学到深陷麻烦的巨大反差,实际上却隐藏着很多值得深思的问题。要解读这个话题,得从Python的特点、使用场景以及潜在风…...

AMEYA360 | 杭晶电子:晶振在AR/VR中的应用
晶振在AR/VR设备中扮演重要角色,为其核心电子系统提供稳定的时钟信号,确保设备的高性能运行。 以下是晶振在AR/VR应用中的具体作用: 01、图像处理与同步 1、晶振为图形处理单元(GPU)和显示芯片提供精准的时钟信号,支持高速图像渲染…...

RAG评估指南:从检索到生成,全面解析LLM性能评估方法
前言 这一节我们将从时间线出发对RAG的评估方式进行对比,这些评估方式不仅限于RAG流程之中,其中基于LLM的评估方式更加适用于各行各业。 RAG常用评估方式 上一节我们讲了如何用ROUGE 这个方法评估摘要的相似度,由于篇幅限制,没…...

贪心算法实例-问题分析(C++)
贪心算法实例-问题分析 饼干分配问题 有一群孩子和一堆饼干,每个小孩都有一个饥饿度,每个饼干都有一个能量值,当饼干的能量值大于等于小孩的饥饿度时,小孩可以吃饱,求解最多有多少个孩子可以吃饱?(注:每个小孩只能吃…...

Ubuntu20.04 配置虚拟显示器和切回物理显示器
1、安装软件,用中软安装虚拟显示器软件 sudo apt-get install xserver-xorg-core-hwe-18.04 sudo apt-get install xserver-xorg-video-dummy2、添加配置文件 进入 /usr/share/X11/xorg.conf.d/ 文件夹下创建xorg.conf文件 # 创建xorg.conf文件 touch xorg.conf …...

HTML 常用标签属性汇总一〈body〉标签
背景属性:包括:bgcolor,background <body background—color:black〉 背景颜色 <body background—image : url(image/bg.gif)〉 背景图片 <body background—attachment : fixed〉 固定背景 〈body background—repeat : repeat〉 重复排列—网页预设 〈b…...

Python yield关键字
1、什么是yield关键字 yield 是 Python 中的一个关键字,它用于定义生成器函数。生成器是一种特殊的迭代器,它可以在遍历过程中逐步产生值,而不是一次性生成所有值并将其存储在内存中。这使得生成器非常适合处理大量数据或无限序列࿰…...

tomcat的Mysql链接字符串问题
tomcat配置mysql链接需要改server.xml或content.xml。 但是server.xml或content.xml中mysql的配置看起来很古怪: url"jdbc:mysql://10.21.0.6:3306/hrdatabase?characterEncodinggbk&autoReconnecttrue" 而使用springboot开发java应用,使用ya…...

聊聊JVM G1(Garbage First)垃圾收集器
CMS的垃圾回收机制,为什么分为四步https://blog.csdn.net/genffe880915/article/details/144205658说完CMS垃圾回收器,必定要说到目前一般应用项目中都推荐的G1。G1在JDK1.7 update4时引入,在JDK9时取代CMS成为默认的垃圾收集器。它是HotSpot…...

【论文复现】隐式神经网络实现低光照图像增强
📝个人主页🌹:Eternity._ 🌹🌹期待您的关注 🌹🌹 ❀ 隐式神经网络实现低光照图像增强 引言那么目前低光照图像增强还面临哪些挑战呢? 挑战1. 不可预测的亮度降低和噪声挑战2.度量友好…...

Python知识分享第十九天-网络编程
网络编程 概述用来实现 网络互联 不同计算机上运行的程序间可以进行数据交互也叫Socket编程 套接字编程 三要素IP地址概述设备在网络中的唯一标识分类IPV4城域网13广域网22局域网31IPV6八字节 十六进制相关dos命令查看ipwindows: ipconfigmac和linux: ifconfig测试网络ping 域…...

C# 绘制GDI红绿灯控件
C# 绘制GDI红绿灯控件 using System; using System.Windows.Forms; using System.Drawing;public class TrafficLightControl : Control {protected override void OnPaint(PaintEventArgs e){base.OnPaint(e);Graphics g e.Graphics;g.SmoothingMode System.Drawing.Drawin…...

Centos 8 服务器时间校正
Centos 8 服务器时间校正 使用chrony服务自动同步时间: 1.安装chrony: sudo dnf install chrony 2.启动并使chrony服务自动启动: sudo systemctl start chronyd sudo systemctl enable chronyd 3.添加配置置文件/etc/chrony.conf指向了可靠…...

模型 正则化方法(通俗解读)
系列文章 分享 模型,了解更多👉 模型_思维模型目录。控制模型复杂度,防过拟合。 1 正则化方法的应用 1.1 正则化方法在教育领域的应用案例 - 重塑教学模式 背景: 在教育领域,正则化方法可以被理解为对教学模式和学习…...

ffmpeg命令
ffmpeg是专门处理多媒体文件(包括音频、视频)的命令; ffplay 是 ffmpeg 软件包中的一个命令行多媒体播放器,它主要用于播放音视频文件; # fmpeg命令转换格式,将mp3格式转换为wav格式 ffmpeg -i input.mp3…...

使用 EasyExcel 实现高效的 Excel 读写操作
在日常开发中,Excel 文件的读写操作是一个常见的需求。EasyExcel 是阿里巴巴开源的一个高性能、易用的 Excel 读写库,可以大幅提高处理 Excel 文件的效率。它通过事件驱动模型优化了大数据量 Excel 的读写性能,非常适合处理大文件或高并发场景…...