`
arfayr
  • 浏览: 26196 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

元数据驱动实例分析

阅读更多

前言:

       以数据库导出为excel文件为例子,分析抽象性思维和元数据定义、解析执行的过程。

问题:

       系统中比较常见各种excel导出的功能要求,如何开发一个通用的excel导出功能?可以适应各种需求?

探索:

       首先需要手动写一个从数据库中导出数据到excel的程序,尽量使用别使用ssh之类。

分析:

       数据导出为excel功能,主要分为两个过程:

<!--[if !supportLists]-->(1)    <!--[endif]-->按照需求从数据库中获取符合需求的数据集;

<!--[if !supportLists]-->(2)    <!--[endif]-->按照要求创建符合需求的excel模板;

<!--[if !supportLists]-->(3)    <!--[endif]-->把数据写入excel,并按照一定规则命名excel文件;

思考:

       列出几个导出excel的实际例子,按照上面分析的流程再次分析,提取出变化和不变的不同部分,不变的部分作为通用的架构,变化的部分用数据定义清楚。可以看出变化的需要定义的内容是:

<!--[if !supportLists]-->(1)    <!--[endif]-->获取数据集的sql语句及要返回的字段列表;

<!--[if !supportLists]-->(2)    <!--[endif]-->Excel模板的字段列表;

<!--[if !supportLists]-->(3)    <!--[endif]-->数据集字段列表和excel模板的字段列表的字段对应关系;

修改导出程序,使得程序能够根据上面定义的内容执行相应的操作,达到导出excel的目的。上面配置的内容可以放到xml文件、文本文件或者数据库中均可;其实这部分数据既可以称为元数据;

思考重点:

<!--[if !supportLists]-->(1)    <!--[endif]-->抽象性思维;

<!--[if !supportLists]-->(2)    <!--[endif]-->分析过程,提取出一切不可控的可能会根据需求变化而变化的部分;

<!--[if !supportLists]-->(3)    <!--[endif]-->变化的内容就是需要配置定义的内容,也就是元数据,元数据的格式即为元模型;

<!--[if !supportLists]-->(4)    <!--[endif]-->修改程序,可以自动解析适应元数据;

<!--[if !supportLists]-->(5)    <!--[endif]-->尽量的考虑各种需求,提高定义的元数据的格式的实用性,提高通用程序的适用性;

后续扩展:

<!--[if !supportLists]-->(1)    <!--[endif]-->考虑支持多种数据库,数据链接信息需要进行配置定义;

<!--[if !supportLists]-->(2)    <!--[endif]-->考虑支持导出excel或文本文件,需要定义导出方式及格式;

<!--[if !supportLists]-->(3)    <!--[endif]-->考虑配置数据定义和维护时的方便快捷性,定义配置数据的格式及维护界面;

 

 

PS: EEPlatwww.eeplat.com  讨论群: 105867861(验证填写EEPLAT2014))从根本上也是这种思想的产物,只不过EEPlat实现的系统的整体的分析定义和通用解析执行。

 

 

0
0
分享到:
评论

相关推荐

    元数据驱动多租数据架构核心领域知识和案例详细说明

    Force.com 平台的元数据驱动模型是其强大之处,它通过分析元数据动态生成虚拟应用程序组件,确保了租户的个性化需求和数据安全。 元数据在多租户架构中扮演着至关重要的角色。它是关于数据的数据,描述了系统中的...

    元数据驱动的微服务架构(上)

    ### 元数据驱动的微服务架构(上) #### 微服务架构需要元数据 随着企业IT架构的不断发展,从传统的单体应用到面向服务的架构(SOA),再到微服务架构,每一次技术演进都旨在解决更复杂的问题,并提供更高的灵活性...

    Linux设备驱动模块设计实例分析.pdf

    Linux设备驱动模块设计是嵌入式系统开发中的关键环节,主要负责硬件设备的控制和管理。设备驱动直接与硬件交互,执行特定的操作...通过分析具体的驱动实例,如本文中的蜂鸣器驱动,可以深入理解驱动设计的全貌和细节。

    普元元数据管理系统V5.0操作手册.pdf.zip

    通过阅读普元元数据管理系统V5.0的操作手册,用户将能够掌握如何有效地利用这个工具来提升数据治理能力,优化数据资产管理,从而推动企业的数据驱动战略。手册中的实例和实战指导将使理论知识更具实践意义,使得即使...

    驱动加载vs2008实例(完整源码)

    INF文件包含了驱动的元数据、安装步骤和注册表信息。使用`pnputil`命令行工具或者设备管理器手动安装INF文件。 4. **加载驱动**:安装后,驱动通常会自动加载。如果需要手动加载,可以使用`devcon`工具或者设备管理...

    JMI规范API,java元数据

    使用JMI规范API,开发者可以编写元数据驱动的应用,例如构建代码生成器、静态代码分析工具、自动生成文档等。此外,JMI还可以与其他Java标准结合,如JSR 250(Common Annotations for the Java Platform)和JSR 330...

    大数据-算法-基于元数据的综合数据管理与信息共享.pdf

    例如,“数字成都”项目就是一个实例,它利用元数据技术实现了城市多源异构数据的集成,提升了公共服务的效率和质量。 6. 智能搜索与推荐:元数据支持高级搜索功能,允许用户根据复杂的查询条件找到所需数据。同时...

    5.快手元数据平台化建设及应用场景-薛言.pdf

    实体是元数据的实例,具有唯一标识,包含一组属性。属性是构成实体的基本单位,可能是简单类型,也可能是复杂类型,包含属性名、值类型及属性值。关系表示两个实体间的关联,包括物理和逻辑关系,由关系名和两个端点...

    DBEAVER的mysql5.7驱动.zip

    5. **DBeaverData**:这个文件夹可能包含DBEAVER的一些默认数据或配置信息,例如元数据、工作空间设置等。用户通常不需要直接操作这个文件夹,但备份这个文件夹可以保存个人的DBEAVER设置和定制化信息。 6. **...

    数据库元数据资料,关于oracle的

    这个实例可以用来获取各种数据库元数据信息,比如驱动名称、数据库URL、最大行大小等。 - `getDriverName()`返回驱动程序的名称,比如"Oracle JDBC Driver"。 - `getURL()`返回数据库的URL,这通常包括数据库...

    Hive配置(Oracle数据库为元数据)

    ### Hive配置(Oracle数据库为元数据) #### 一、概述 Apache Hive 是一个基于 Hadoop 的数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的 SQL 查询功能,可以将 SQL 语句转换为 MapReduce ...

    行业分类-设备装置-一种元数据读写方法及装置.zip

    3. **装置设计**:详细讲解了实现这种元数据读写方法的硬件或软件装置的架构,可能包括专用的硬件组件、系统接口、驱动程序或应用程序编程接口(API)。 4. **性能优化**:讨论了如何通过缓存策略、内存管理、并行...

    Qt4 精彩实例分析

    **Qt4精彩实例分析** Qt4是一个跨平台的应用程序开发框架,主要应用于桌面和移动设备。它是用C++编写的,提供了丰富的API,使得开发者能够创建具有图形用户界面(GUI)的应用程序。这个压缩包文件包含了一系列的Qt4...

    Impala的JDBC编程驱动

    4. **元数据获取**:获取表结构、列信息、索引等数据库元数据。 5. **批处理**:一次提交多个SQL语句,提高性能。 6. **性能优化**:通过设置连接参数,如超时、缓冲大小等,优化查询性能。 总的来说,Impala的JDBC...

    windows驱动IRP详解

    例如,文件系统驱动可能会读取文件系统的元数据,而存储驱动则负责实际的数据读取。 #### 七、总结 理解IRP的工作原理及其结构对于Windows驱动程序开发者来说至关重要。IRP不仅简化了驱动程序之间的通信,还支持...

    JdbcUtil.rar_oracle_元数据

    通过分析这个文件,你可以了解到如何在实际项目中使用Java和JDBC来获取Oracle数据库的元数据信息,这对于数据库设计、数据迁移、数据库文档生成等任务非常有用。 总之,Oracle元数据的获取是Java开发者掌握的重要...

    驱动开发例子c++1111

    7. **vssver.scc**:这是版本控制系统(如Visual SourceSafe)的元数据文件,用于跟踪源代码的版本历史。 8. **sources**:这可能是另一个列出源文件的文本文件,用于构建过程。 通过分析这些文件,我们可以推测这...

    块设备驱动程序 块设备驱动程序

    此外,buf结构体还包含了一些元数据信息,比如设备地址、缓冲区大小等。 #### 2. dev_ops与cb_ops结构体 `dev_ops` 和 `cb_ops` 结构体用于定义设备的各种操作函数指针,包括但不限于打开、关闭、策略处理等。这些...

Global site tag (gtag.js) - Google Analytics