元数据(metadata)在企业应用开发中的作用

【Metabase二次开发 • 四】元数据解析 文章目录元数据概述元数据表结构用户相关权限相关数据源相关查询相关运行日志相关定时任务相关数据图表相关邮件推送相关其它 元数据概述 Database元数据默认存在内嵌h2数据库中,但生产环境建议迁移到MySQL或PostgreSQL数据库,详情参阅 官方文档 元数据表结构 元数据库中共有55张表,分类梳理如下 用户相关 core_user 用户信息表,包括用户姓名、邮箱、密码、注册时间、上次登录时间、是否管理员、账号是否激活、认证方式、地域偏好等 login_attributes,注释说用于存储行 阅读详情

元数据(metadata)在企业应用开发中的作用

元数据(metadata)介绍:
Metadata(元数据),它是“关于数据的数据”(data about data),近年来在软件设计中Metadata有广泛的应用。
在编程中,元数据不是被处理的对象,而是通过改变元数据的一些“值”来改变程序的运行的数据。
可以“解释”程序的运行时,不同的元数据值可以让同一段程序有不同的运行结果。
元数据(metadata)应用:

在以前的工作中,经常遇到这样的问题,

SqlServer数据库中一个表如下:

CREATE TABLE [dbo].[DProfile] (

       [Profile_ID] [int] IDENTITY (1, 1) NOT NULL ,

       [ProfileName] [varchar] (250) COLLATE Chinese_PRC_CI_AS NULL ,

       [OtherInfo] [varchar] (500) COLLATE Chinese_PRC_CI_AS NULL ,

       [ValidateStatus] [int] NULL

) ON [PRIMARY]

为其定义一个实体类:

namespace E_Commerce.Data

{

       /// <summary>

       /// 卡属性基本信息实体

       /// </summary>

       public class DProfileInfo

       {

              /// <summary>

              /// 其他信息

              /// </summary>

              public string OtherInfo

              {

                     get

                     {

                            /*Begin Template                       

return mOtherInfo;                 

                            /*End Template Expansion{9D774738-E901 -427A -86E7-EF 2715768C 17}*/

                     }

                     set

                     {

                            /*Begin Template Expansion{F 6A 2B75D-D01B-47B0-B65D-E62E43286DDC}*/

                            mOtherInfo = value;                    

                            /*End Template Expansion{F 6A 2B75D-D01B-47B0-B65D-E62E43286DDC}*/

                     }

              }

              /// <summary>

              /// 卡属性ID

              /// </summary>

              public int Profile_ID

              {

                     get

                     {

                            /*Begin Template Expansion{2230D 3C 4-9766-4778-9203-5063D88B 468C }*/

                            return mProfile_ID;              

                            /*End Template Expansion{2230D 3C 4-9766-4778-9203-5063D88B 468C }*/

                     }

                     set

                     {

                            /*Begin Template Expansion{ 0A 1C 9514-4DDB-4079-BE19-8DACE24CD454}*/

                            mProfile_ID = value;                   

                            /*End Template Expansion{ 0A 1C 9514-4DDB-4079-BE19-8DACE24CD454}*/

                     }

              }

              /// <summary>

              /// 卡属性名称

              /// </summary>

              public string ProfileName

              {

                     get

                     {

                            /*Begin Template Expansion{A43788B8 -60A 0-4882 -9C 51-A3DEE710FE78}*/

                            return mProfileName;                  

                            /*End Template Expansion{A43788B8 -60A 0-4882 -9C 51-A3DEE710FE78}*/

                     }

                     set

                     {

                            /*Begin Template Expansion{829EEF 0A -A 18A -4492-BE57 -67C 4C 57ACFC3}*/

                            mProfileName = value;                

                            /*End Template Expansion{829EEF 0A -A 18A -4492-BE57 -67C 4C 57ACFC3}*/

                     }

              }

              private string mOtherInfo;

              private int mProfile_ID;

              private string mProfileName;

       }

}
在开发和实际运行过程中经常发生这样情况,经过一段时间用户的实际情况变化了,可能想要在上面的实体中和其所对应的数据库的Table中增加一个或多个Field。我们只能修改这个数据实体,在代码开发完成后,进行这样的修改是麻烦而且可能相当危险的。

设想一下现在的情况,由于种种原因需要更改上面的数据结构,我们打算增加两个字段“Price”“CreateTime”,有什么方法可以让数据实体容易适应的进行这种变化呢

两种方法:

1)  在表DProfile中增加一个描述所增加的Field的元数据字段名称为FieldsMetaInfo,数据类型可以定义成Text类型或image等二进制类型,在这个字段中定义一个XML格式的文档描述和存储所新增加的Field。

格式可能是这样的

<Field Name="Price" FromBaseType="TRUE" Type="Text" DisplayName="价格" Required="TRUE" MaxLength="255" DefaultValue=” 0”   >123.45</Field>

<Field Name=" CreateTime " FromBaseType="TRUE" Type="DateTiem" DisplayName="价格" Required="TRUE"  > 2004-01-01 </Field>

这个新添加的字段记录未来可能增加的field的数据类型信息和数据信息等其它信息

2)  增加两个表

在表中存储新增加的Field信息

表ProfileFields

ID  int

FieldName nvarchar(50)

FieldType  nvarchar(50)

表ProfileFieldsValue

ID int

ProfileID int

ProfileValue varchar(50)

ProfileFields表存储增加的Field名称类型等信息

表ProfileFieldsValue表存储对应Filed的值

 

在数据实体类中增加一个自定义类型的属性返回存储在源数据结构中的数据

可以是Hashtable类型,也可以是自定义的其它集合类型

Private Hashtable metaFieldsList;

自定义结构用来方便的存储和更新

 


元数据(metadata)数据存储结构:
元数据有许多存储格式,其中最多使用的是xml格式。
xml
最适合用来存储元数据,易与使用和解析。

元数据(metadata)在o-r映射中所起的作用:

 

Impala中的invalidate metadata和refresh 前言Impala采用了比较奇葩的多个impalad同时提供服务的方式,并且它会由catalogd缓存全部元数据,再通过statestored完成每一次的元数据的更新到impalad节点上,Impala集群会缓存全部的元数据,这种缓存机制就导致通过其他手段更新元数据或者数据对于Impala是无感知的,例如通过hive建表,直接拷贝新的数据到HDFS上等,Impala提供了两种机制来实现元数据的更新,分 阅读详情

相关推荐

Camera(5)metadata

Metadata 是整个 Android camera 中类似于高楼大厦中的管道系统一样,贯穿了整个 Camera 的 Framework 和 vendor HAL。Metadata 里面包含了所有的控制、参数、返回值等等。Metadata分为Android原生的Metadata和芯片商或者用户自定义的Metadata,即Android Tag和Vendor Tag。Vendor Tag在Hal中定义,并在camx和chi目录中使用。

qq_55893245的博客 3052

(五)元数据的管理与开发

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言StandbyCheckpointerEditLogTailer到这里反思以下,它是如何读到日志文件的呢总体流程 前言 void logEdit(final FSEditLogOp op) { synchronized (this) { assert isOpenForWrite() : "bad state: " + state; // wait if an a

weixin_37850264的博客 888

Spring Boot配置元数据“metadata”

本文对应Spring Boot 2.2.6.RELEASE版本。 Spring Boot配置元数据“metadata”1.什么是配置元数据metedata?2.配置元数据(Metadata)的格式3.使用注解处理器生成自己的配置元数据3.1 嵌套的属性3.2 添加额外的元数据配置 1.什么是配置元数据metedata? 在Spring Boot的jar包中包含了metadata文件,提供了所有支持的配置属性的详情(例如属性名称、类型等)。这些文件旨在让IDE在开发者使用application.propert

Cloud-Future的博客 5061

元数据的构建

orm 框架一般需要定义表的模型,然后模型与表生成映射关系,那么就一定少不了解析模型然后找到与之映射的数据库表,所以,元数据是解析模型获得的,这些元数据将被用于构建 SQL、执行校验,以及用 于处理结果集。模型:一般是指对应到数据库表的 Go 结构体定 义,也被称为 Schema、Table、Meta 等ORM 框架是怎么将一个结构体映射为一张表的(或者反过来)?核心就是依赖于元数据,元数据描述 了两者之间的映射关系。ORM 的元数据有什么用?在构造 SQL 的时候,用来将 Go 类型映射为表;

weixin_48943299的博客 1715

Spring元数据Metadata

元数据 元数据:数据的数据,比如Class就是一种元数据 可以看到顶层接口有两个:ClassMetadata和AnnotatedTypeMetadata 注解上的注解,Spring将其定义为元注解(meta-annotation),如@Component标注在@Service上,@Component就被称作为元注解。后面我们就将注解的注解称为元注解。 ClassMetadata:对Class的抽象和适配 此接口的所有方法,都是获取class上的元素 public interfac...

hzau_itdog的博客 1951

获取图片的 Metadata(元数据)

- (void) imagePickerController: (UIImagePickerController *) picker didFinishPickingMediaWithInfo: (NSDictionary *) info { NSString *mediaType = [info objectForKey: UIImagePickerControllerMediaTy

xu18741356359的专栏 7001

Saas.元数据驱动开发(原理,抽象,实现方面整体讲解)

前言 读者要求 本文面向具有一定开发经验的开发,并且需要对开发中的一些共同点能有所总结 Saas类阅读前可以去体验体验 Salesforce,销售易CRM,纷享销客CRM系统等系统 为啥要用元数据驱动 企业信息建模的核心是面向对象,面向对象(Object-Oriented)将客观世界看作由对象组成的,对象由属性和操作组成,对象可按其属性进行分类,对象之间的联系通过传递消息来实现。 元数据是支撑企业信息数字化建模的地基,元数据(metadata)是描述对象的数据,对对象的属性、操作及联系的描述性信

记录 分享 成就 4471

python如何访问 Python 模块中的元数据(metadata)

总之,importlib_metadata 是一个非常方便的 Python 库,可以帮助我们访问 Python 模块中的元数据,并更好地管理模块的版本和依赖项。在这个示例中,我们使用 importlib_metadata.requires() 函数访问名为 mypackage 的 Python 模块的依赖项信息。在这个示例中,我们使用 importlib_metadata.metadata() 函数访问名为 mypackage 的 Python 模块的所有元数据。

zhangzhechun的专栏 2123

元数据开发(低代码开发平台)的一些想法

低代码开发平台: 只用鼠标就能编程(或者称之为万物可配置) 实现过程: 使用元数据定义对象,字段,配置,代码,逻辑,页面布局,并基于元数据自动生成系统及应用程序。 配置引擎(元数据): 定义数据结构,实现数据库的映射,基本的CRUD操作,基于表的基本画面。 系统集成。 验证规则,通过可视化配置完成。 工作流规则。 数据触发器。(例,核心数据修改后,需审批。主业务数据产生变化后,生成相应的业务处理数据) 报表工具。 数据权限。 自定义代码 ...

丘色果 1129

基于元数据开发.pdf

利用元数据和RIA简化企业应用程序的开发

元数据开发手册

不要将元数据的对象在前后台之间传递,这将导致严重的效率问题. 明确的说就是不要将元数据对象,比如模块,组件,实体,属性,各种类型等作为远程调用服务的方法参数或者返回值,也不要在自己的数据对象里组合元数据对象,如果的确需要引用元数据对象,请务必设置为transient类型。

什么是元数据 (MetaData)

什么是元数据?        元数据(Meta Date),关于数据的数据或者叫做用来描述数据的数据或者叫做信息的信息。        这些定义都很是抽象,我们可以把元数据简单的理解成,最小的数据单位。元数据可以为数据说明其元素或属性(名称、大小、数据类型、等),或其结构(长度、字段、数据列),或其相关数据(位于何处、如何联系、拥有者)。        举几个简单的例子:

it_man的专栏 8万+

香橙派5玩转SATA SSD:一个被忽略的overlays配置项,让你的Ubuntu系统飞起来

本文详细介绍了如何在香橙派5上通过配置`overlays=ssd-sata`启用SATA SSD作为系统启动盘,大幅提升Ubuntu系统的性能。文章深入解析了设备树覆盖的工作原理,提供了完整的配置流程和性能优化建议,帮助开发者充分发挥香橙派5的硬件潜力。

weixin_30787531的博客 220

什么是元数据(Metadata)

元数据(Metadat)   元数据(Metadata),可能又是一个困惑的中文译文。 【元】,会意字。从一,从兀。甲骨文字形。象人形。上面一横指明头的部位。上一短横是后加上去的,依汉字造字规律,顶端是一横的,其上可加一短横。本义:头。 基本的含义: 名词:第一的,居首位的;开始;起端;根源;根本。 形容词:主要的;根本的;构成一个整体的。   那么,元数据是啥?主要的数据?根本的数据? ...

steventian72的博客 2万+

激光SLAM总结——Fast LIO / Fast LIO2 / Faster LIO

激光SLAM总结——Fast LIO / Fast LIO2 / Faster LIO 在之前的工作中有接触过LOAM,最近在工作中又接触到Faster LIO相关的工作,于是想着对Fast LIO / Fast LIO2 / Faster LIO这一系列工作进行一个简单的总结,以加深自己对激光SLAM算法的理解,之前总结过的一些和激光SLAM算法相关的博客还有,感兴趣的同学可以一起学习讨论: 激光SLAM总结——VLOAM / LIMO算法解析 激光SLAM总结——LIO-Mapping / LIOM /

weixin_44580210的博客 1万+

别再乱刷了!《另一个伊甸》异节、改典、典录获取途径完全梳理,这些隐藏奖励你拿全了吗?

本文全面解析《另一个伊甸》中异节、改典、典录的获取途径,包括断章、外传、精灵试炼等高概率掉落副本,以及隐藏任务、限时活动和特殊挑战。提供高效收集策略和优先级建议,帮助玩家快速获取这些稀缺资源,实现角色真证和上限突破。

weixin_42699679的博客 589

gRPC中的metadata是什么?有什么作用?

gRPC中的Metadata类似于HTTP Header的概念,用于描述数据和消息的数据信息,可以理解为一个键值对集合,用于在gRPC客户端和服务端之间传递元数据信息,提供一种在消息中传递数据和追加关键信息的机制。总之,gRPC的Metadata是一种用于在gRPC客户端和服务器之间传递元数据信息的机制,可以提供有关RPC调用的信息以及控制gRPC消息的格式。通过在服务端的方法中获取metadata.MD类型的值,就可以获取到客户端请求的元数据,并使用这些元数据进行后续操作。

路多辛的所思所想 894

人工势场法三大致命缺陷?我用ROS+Gazebo做了组对比实验

本文通过ROS与Gazebo仿真实验,深入剖析了人工势场法(APF)在机器人路径规划中的三大经典问题:局部最小值、目标不可达和路径震荡。文章不仅复现了这些缺陷,还对比测试了虚拟目标点法、改进斥力场及运动平滑等主流改进方案,为工程选型提供了基于数据的实用建议。

dapp9builder的博客 216

Kafka中的Metadata

强烈推荐去看,写的太详细了。这里只做个人学习笔记。

m0_47160811的博客 1245

手把手教你用HI3516CV610搭建智能安防摄像头(附完整开发资料)

本文详细介绍了基于海思HI3516CV610 SOC搭建智能安防摄像头的完整开发流程,包括硬件选型、系统架构设计、开发环境搭建、智能分析功能开发及系统调优。通过实战案例,展示了如何利用内置NPU实现人形检测和异常行为分析,并提供了量产测试方案,帮助开发者快速完成智能摄像头项目。

backprop5master的博客 541

【WRF-GHG 教程第一期】概述(Overview)

概述(Overview)

WW、forever的博客 509

什么是元数据(Metadata)?

什么是元数据 任何文件系统中的数据分为数据和元数据。数据是指普通文件中的实际数据,而元数据指用来描述一个文件的特征的系统数据,诸如访问权限、文件拥有者以及文件数据块的分布信息(inode...)等等。在集群文件系统中,分布信息包括文件在磁盘上的位置以及磁盘在集群中的位置。用户需要操作一个文件必须首先得到它的元数据,才能定位到文件的位置并且得到文件的内容或相关属性。 元...

staforn的专栏 7324

1 四种防反接电路——multisim仿真

摘要:防反接电路可防止电源反接损坏器件,主要有四种方案:1)二极管串联(低成本,适用小电流);2)整流桥(无极性输入,但效率低);3)保险丝+稳压管(低损耗但需更换);4)MOS管方案(大电流、高效率,主流选择)。选型需考虑电流、压降和成本,MOS管因其低导通电阻(毫欧级)成为大电流应用的首选。口诀:"小电流二极管,大电流用MOS"可快速指导设计。

XU157303764的博客 1571
上一篇: 操作exchange类库代码
下一篇: 2018年成为一个更好的Java开发人员的10个技巧
codinghello
博客等级 码龄25年 47粉丝 33原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值