主页 > 工程师回车巷人才网

excel数据库技术?

144 2024-01-03 11:47

一、excel数据库技术?

excel是一个表,一个EXCEL的工作薄一个数据库,它的每一张表就是数据库,你可象操作表一样对其进行查询等操作,它里面的列就是数据库的字段,行就是记录,因此你可以按数据库的架构来组建数据,只是你如果你组建的数据不符合数据库的规则,在查询时不能得到时相应的结果。因此在EXCEL中不存在创建数据库。但对存在的数据可以引用。

当满足条件A、B、C、D……时引用是可以的,但如果是在EXCEL中直接引用是不行的,一种是用VBA利用ADO访问EXCEL,在查询时把A、B、C、D几个条件按SQL语法写进查询语句中,引用返回的记录集,一种是利用函数把满足A、B、C、D的记录筛选出来,然后再引用。

二、数据库技术与应用应该如何学习?

我大学那会,数据库这门课程是期末前老师抽查书上的随机习题(主要是查询的),然后发现书上的写了一遍过去基础就过去了,后面是刷牛客网的题目,贴近工作实际应用,再然后是现在工作用加看书,基本就是这样了。

三、mysql数据库技术介绍?

MySQL目前属于Oracle甲骨文公司,MySQL称之为关系型数据库、微软的SQL Server。

MySQL数据库能够支持在多种操作系统上运行,包括Solaris、Mac OS、FreeBSD和Windows,Linux通通支持。核心功能就是处理数据,其中提供空间供数据存储又是其主要主要功能之一。

数据库一般也不直接面向数据存储,存储是交给表/索引这类对象完成的。

MySQL数据库是一种C/S模型(即客户端和服务端模型),客户端通过账号、密码来连接服务器,连接成功之后才可以进行数据库的操作(CRUD:增加、删除、变更、查询)。MySQL的服务端采用IO复用 + 可伸缩的连接池,实现了网络高并发的经典模型。

四、面向对象数据库技术?

面向对象数据库系统(Object Oriented Data Base System,简称OODBS)是数据库技术与面向对象程序设计方法相结合的产物。

对于OO数据模型和面向对象数据库系统的研究主要体现在:研究以关系数据库和SQL为基础的扩展关系模型;以面向对象的程序设计语言为基础,研究持久的程序设计语言,支持OO模型;建立新的面向对象数据库系统,支持OO数据模型。

面向对象程序设计方法是一种支持模块化设计和软件重用的实际可行的编程方法。它把程序设计的主要活动集中在建立对象和对象之间的联系(或通信)上,从而完成所需要的计算。一个面向对象的程序就是相互联系(或通信)的对象集合。面向对象程序设计的基本思想是封装和可扩展性。

五、数据库技术的发展趋势是什么?

前言

22 年 12 月 14 - 16 号是中国 DTCC 数据库技术大会,由于疫情的影响,今年大会分享全部改到线上直播了。个人主要观看了 14 号、16 号两天技术分享,所以这里结合各位大佬的技术分享,整体做一个观后的总结和个人思考,加深一下个人整体的认识,同时也期望能够对大家能够有所帮助,大家有什么想法欢迎关注我的公众号进行交流。如果有不对的地方,也欢迎指出。下面是这三天的大会技术专场的议程:

一、数据库发展趋势闲聊

14 号这天个人主要看了上午场(数据智能 价值创新)和下午场(数据库内核技术)两个专场,上午主要观看了腾讯云(王义成)、华为云的 GaussDB(苏光牛)、PolarDB(李飞飞)、OceanBase(杨志丰)三位大佬的技术分享,主要是对数据库发展趋势的看法以及他们自家数据库的演进方向的思考。下午由于时间关系,数据库内核技术主要看了 StarRocks、PolarDB-X 两场技术分享,所以 14 号这天整体的个人总结主要从这些技术分享中带来的个人思考,下面先聊聊对数据库发展趋势的看法。

1.1 Serverless

对于数据库未来的趋势之一:serverless,这次听到这个词还是蛮多的。serverless 即无服务化,用户在使用数据库服务时,不需要关注数据库服务器的运维和管理成本,这些繁琐的管理交给云仓商来托管,用户主要专注自己应用架构设计和业务即可。对于未来云上数据库,serverless 必定是终态之一。个人还是非常认可这个观念的,serverless 能为用户带来主要以下两个好处:

  1. 无须关注数据库服务器繁琐的管理和运维成本
  2. 资源弹性扩缩容,使用户按需按量付费

这里重点说下第二点,传统模式下,用户在使用数据库服务时,需要结合实际业务的情况,通过对业务的 QPS、TPS、数据量等提前预估所需要的资源,最终来估算自己需要准备多少机器,然后提前一个月和运维部门沟通好,提交采购申请,最终使用完后,还需要想办法将采购的资源消化掉,这类情形在双十一大促期间尤为明显,这种模式下,有以下几个问题:

  1. 使用方需要提前预估计算资源,如果资源预估不准,会对业务以及成本有很大的影响,机器资源评估过少,当业务流量扛不住,对公司业务有影响,机器资源预估过多,会浪费很大的机器成本。
  2. 一次资源扩缩容链路过长,同时整个过程时间很久,同时在业务使用完后,还需要消化剩余的机器资源。一次资源扩容的需求,公司的人力成本过大。

所以使用 serverless 服务能够做到资源弹性扩缩容,同时做到按需按量付费。当然 serverless 弹性扩缩容具体能够做到什么程度,实际扩缩容的时间、扩缩容与实际业务使用资源的差异、扩缩容对于线上业务的影响,对于用户使用体验和成本,影响都很大。对于数据库内部冷热数据,也可以做到 serverless,把不经常使用的数据放到冷数据底层的存储,降低存储成本。

我看阿里云和中国信通院云大所联合发布了《Serverless数据库技术研究报告》,我还没有看,感兴趣的同学可以去看看。同时也可以看下伯克利关于 serverless 的 这篇Paper(李飞飞大佬推荐):

1.2 存算分离

上面说到 serverless 的弹性扩缩容,那么如何做到用户按需进行扩展(CPU、内存、磁盘)?所以云上数据库存储和计算分离是个很好的思路。

很多传统数据库是 Shared Nothing 架构,计算资源(CPU)和存储资源(内存、磁盘)都是在一台机器上,这样的好处能够降低网络 IO 带来的传输时间成本,最大化提升查询性能。但有一个问题就是,由于计算资源和存储资源都是在一起的,用户在机器扩缩容时,必须同时对计算资源、存储资源一起进行扩缩容,但可能用户只扩容计算资源,不想扩容存储资源,此时这种模式会对存储资源有一定浪费。

存算分离,用户能够分别对存储或者计算资源单独进行扩缩容,按实际业务需要来进行资源调整,进一步节约资源成本。当然存算分离架构下,也有两个不足点:

  1. 存储和计算之间会有一层数据网络 IO 传输时间成本,为了降低网络 IO 的影响,一般可以在计算节点上,加一层 Local Cache。
  2. 存储分离下,由于网络 IO 容易是瓶颈,会导致集群规模机器数容易受限。

可见,任何技术特性都不是银弹,需要结合实际业务侧需求,来综合评估,很多东西就是 Trade Off。下面是 PolarDB-X 的一张图:

1.3 私有云、公有云、混合云一套架构部署

这个不用多说了,私有云、公有云、混合云一套架构部署,便于数据库的运维和管理,能够提升数据库产品的交付效率,降低产品的交付成本,这对于私有云部署模式,带来的好处尤为明显。

1.4 多模多态一体化数据库

随着社会的发展,人们产生的数据格式越来越复杂,结构化(比如关系型)、半结构化(比如 Json、CSV)、非结构化(比如视频、图片)数据,相应的,单一模型的数据库也已经很难再完全支持公司的业务需求,数据库的种类也越来越多,RDS 数据库、KV 数据库、图数据库、文档型数据库、时序数据库等等。当然,完全通过一款数据库满足用户侧所有的业务需求也不现实,只能说在一款数据库上,尽可能多的来 Cover 业务侧需求。

比如现在 HTAP 数据库,在 TP 的基础上,增加了 AP 的数据分析能力,提升数据库的分析时效性,同时一般会带着 Zero-ETL 的口号一起来宣传,像 GassDB、PingCAP TIDB、阿里 PolarDB、OceanBase、SingStoreDB(原 MemSQL)都在做 HTAP。阿里 ADB 的离在线一体化(离线 ETL 处理 + 在线 OLAP 分析),让数据库尽可能 Cover 离线 ETL 和在线 OLAP 分析需求。阿里的 Lindorm多模数据库,提供宽表、时序、文件、搜索等多种数据模型等等。

1.5 数据库智能化

数据库智能化,主要有两个方向:

  1. AI For DB
  2. DB For AI

AI For DB,主要思路是结合 AI 机器学习能力,智能化运维和管理数据库,让数据库做到自治化,智能的做到 SQL 性能优化和问题根因诊断。

DB For AI,主要是如何让 DB 来支持更多 AI 场景的需求,怎么做到 AI 模型的抽象、存储、推理等等,这块个人了解的比较少。

1.6 模块化构建数据库

李飞飞大佬认为未来数据库系统内核可以结合用于实际业务侧需要,模块化的组装出数据库,比如用户的需求可能是:读多写少、读少写多的、分析型的、IO 密集型、计算密集型、AI 类的、HTAP 类型等等,相应的需要的存储、计算、带宽等对应的硬件资源,可以使用不同型号和规格的硬件来组装,对于底层机器资源来说,数据库能够做到一套代码,数据库内核各模块在不同形态下的资源类型,同时能够很好的 Work。

个人认为未来数据库内核各模块不仅能够在不同形态下的资源类型进行构建,同时数据库内核也能够进行组装。未来对于一个 DataBase 的研发,可能就是使用已有的数据库中各模块的标准事实开源组件,快速组装出一个 DB,比如 SQL 方言标准(使用 Mysql / PG)、SQL Planner 层( Apache Calcite / DuckDB )、Planner 层和 Runtime 层计划序列化通信方式(substrait)、Runtime 层使用( Apache Arrow + Rust Or ClickHouse)、数据湖存储(Iceberg / Hudi / Deltalake)、列存(Parquet Or ORC) 。公司将相对有限的工程资源,尽可能多的投入到差产品异化功能上,这样才能和其他同类产品有竞争优势,形成独特性。

1.7 用户对数据库拥有更强的自主可控性

Blue/Green Deployment 是 AWS 2022 re:Invent 亮相的产品,看网上资料说是一套灰度技术,未来用户想去做某个操作时,但不确定该操作对线上实际业务的影响是什么,此时就可以借助 Blue/Green Deployment 来灰度进行验证,没有问题,在完全切流。

下面这张图片的出处是来源于知乎同学@zhoutall 的文章<a href="https://zhuanlan.zhhttp://ihu.com/p/591406895">《AWS re:Invent 2022数据库内核视角摘要》,感兴趣可以看下他这篇文章,还是非常有收获的。个人看完也非常认可其观点的,现在云数据库场商希望用户做得事情越来越少,所以提供了很多工具,或者解决方案,来帮助和指导用户做决策和执行,但实际用户可能需要更大的自主可控权(对业务影响的可控)。

二、数据库内核技术分享总结

数据库内核技术方面,个人主要听了 OceanBase、Starrocks、阿里云 DLA,所以这里主要讲下这三场分享的总结。

StarRocks 今年主要宣传语是从极速 OLAP 到极速数据湖分析,从原来数据在自己 OLAP 存储到底层存储是数据湖,所以第一步则是在 Connector 做了扩展,支持了 Hudi、Iceberg(v1、v2)、Hive、JDBC 数据源。扩展了新的数据源,那么 FE 的元数据这一层,肯定要能够识别到外部数据源,同时对于外部的数据源元数据获取,增加了 Cache(分区、文件 List、统计信息)。其他也做了各种细节优化,比如 Scan 优化、优化器等等。

StarRocks 今年还做了存算分离,这样的话,计算节点是无状态的,那么可以弹性扩缩容。最值得关注的一点,今年 StarRocks 提出了它们的 StarOS 的设计,StarOS 通过抽象和统一存算分离架构下的分布式逻辑,同时统一了存储,这块听起来感觉不错,具体信息后面看 StarRocks 的分享吧。

阿里云 DLF 主要分享了他们如何做统一的湖仓元数据服务的经验,目前业界开源数仓标准的元数据服务是 Hive MetaStore,所以几乎主流引擎都支持直接从 Hive MdetaStore 中读取数据。但 Hive 本身也有部分局限性:

  1. ACID 和 Hive 引擎绑定,同时不支持 Time-Travel 查询数据/元数据
  2. 不易于对接内部自家引擎接入,单点问题,同时引擎需要 Thrift 协议接入,高可用的问题。

而在开源权限体系方面,主要有 Hive 自身权限和 Apache Ranger,但它也有各自缺陷:

针对以上两点,所以阿里云做了 DLF 这款产品,统一了湖仓的元数据服务,同时兼容了 HMS 接口,对外也提供标准的 Open API ,方便客户接入。

其他的一些分享,个人记得比较清楚两点是:数据库的迁移工具和数据库容灾。如果你的产品如果想买入到某家客户时,尤其是数据库方面,那么你要考虑到客户存量的业务如何能够方便的迁移到你的产品上来,最好能够非常底成本的、客户无感的迁移。同样,数据库容灾,关乎着企业数据和业务生存问题。

三、个人思考

不得不说,国内在数据库这个领域还是挺卷的,共有 200 多家数据库公司,有 TP 的、AP 的、数仓的、湖仓的等等,但最终能跑出来的可能就几家。当前云上数据库一直都被国内几家云场商占领着,比如阿里云、腾讯云、华为云等等,对于中小型创业公司而言,云肯定是要做的,但在国内市场直接去和几家云厂商 PK 云,当前阶段还是过于激进,赢面较小,选择出海,可能更加明智一些。

中小型创业公司目前主要争取还是私有云场景下独立部署的市场,这样不仅要保证自家产品的质量,同时还要比拼谁家的交付效率更快、交付成本更低,这样才有更大赢的可能性。

六、pg数据库和oracle数据库区别?

oracle是传统关系型数据库,gp是分布式数据库。 gp的查询可以很快,数据量可以很大。有数据过期机制等。 以前数据都是接入到oracle和mysql等关系型数据库里,但存入多了查询就变慢了,可以使用gp作为解决方案。

七、pg数据库和mysql数据库区别?

1.mysql支持多种存储引擎,存储引擎选择较为灵活,实际上一般都在用innodb。ddl放在server端,ddl语句的事物性支持较差,可能出现server级数据库丢失。pg的server稳定性更好

2 mysql数据存储结构为聚簇索引,通过主键查询效率较高,但是有很多局限性,比如插入只能顺序插入。不太适合超大数据非主键查询,访问二级索引需要回表。pg采用堆表存储数据,能够支持更大的数据量

3 pg不支持分区表,通过继承表的形式达到分区表的目的,在分区较多成千上万时,pg的继承表效率较差

4 mysql有间隙锁, postgresql数据库执行delete操作后,表中的记录只是被标示为删除状态,并没有释放空间,在以后的update或insert操作中该部分的空间是不能够被重用,VACUUM作用是删除那些已经标示为删除的数据并释放空间,vacuum需要定期运行,比较消耗IO

5 pg支持的数据类型(如gis),分析函数支持更多,还支持面向对象数据库。有更多的第三方开源工具辅助系统设计和实现

6pg支持存储过程和执行计划缓存,表连接和复杂查询能力更强。mysql优化器,运算符都较简单,适合简单的查询操作

7 pg主从采用wal日志物理同步,mysql使用binlog逻辑同步。物理同步可靠性更高,复制性能更高。

8 mysql仅支持嵌套循环表连接(8.0支持hash连接),pg支持nl,hash,merge join

9 mysql适用应用逻辑简单,轻数据存储和计算的场景,pg适合复杂的数据分析和特殊应用场景

八、wos数据库和pubmed数据库区别?

wos数据库和pubmed数据库有以下区别:1. wos数据库是Web of Science(科学引文索引),而pubmed数据库是国家生物技术信息中心的医学文献数据库。

因此,wos主要涵盖了各个学科领域的科学文献,而pubmed则主要聚焦于生物医学领域的文献。

2. wos数据库以科学引文为主要特点,可以跟踪文献的引用关系,提供引文分析功能。

而pubmed数据库则提供了更全面的医学文献检索和查看功能,并且有分析工具用于文献相关度等。

3. 在数据源方面,wos数据库收录了全球范围内的学术文献,包括期刊论文、会议论文、专利等,涵盖了多个学科领域。

而pubmed数据库则主要包括医学领域的期刊文章、会议摘要、医学论文等。

4. 在使用方面,wos数据库更适用于学术研究人员、科学家等进行科学引文分析和检索;而pubmed数据库则更适用于医学从业者、医学研究人员等查找和阅读生物医学文献。

总结:虽然wos和pubmed都是重要的数据库资源,但它们在数据范围、功能特点和使用对象上存在明显的差异。

根据你的需求和研究领域,选择适合的数据库能更好地满足你的信息检索和研究需求。

九、华为数据库和阿里数据库区别?

华为数据库和阿里数据库是两个不同的数据库产品,由于它们来自不同的公司,因此它们之间有一些区别。

以下是华为数据库和阿里数据库的主要区别:

1. 公司背景

华为数据库是由中国最大的电信设备制造商华为公司开发的。在过去的几年中,华为已经成为全球最大的电信设备供应商之一,同时也在云计算、数据中心等领域积极扩张。

阿里数据库(AliSQL)是由中国最大的电子商务公司阿里巴巴开发的。阿里巴巴还拥有阿里云业务,该业务是中国最大的云计算提供商之一,也正在努力进军国际市场。

2. 数据库类型

华为数据库是一个关系型数据库管理系统(RDBMS),它支持SQL查询语言,并使用ACID(原子性、一致性、隔离性和持久性)事务处理来确保数据的完整性。

阿里数据库是基于MySQL开发的分布式数据库系统,具有高可用性和高性能等特点,并且在分布式系统中支持ACID事务。

3. 功能特点

华为数据库在安全性、可靠性和高效性方面都非常注重,同时还具有存储过程、触发器和复杂查询等高级功能。

阿里数据库主要关注分布式系统的可扩展性和高可用性,同时还提供了一些额外的功能,例如自动容错和负载均衡等功能。

4. 用户群体

华为数据库主要面向企业用户,尤其是中国大陆地区的企业用户。

阿里数据库则更多地面向开发人员和互联网公司,因此在中国以及国际市场上都有广泛的用户群。

十、数据库工程师考试要求?

全国计算机4级为数据库工程师。全国计算机等级考试(National Computer Rank Examination,以下简称 NCRE),是经原国家教育委员会(现教育部)批准,由教育部考试中心主办,面向社会,用于考查非计算机专业应试人员计算机应用知识与技能的全国性计算机水平考试体系。

4级:科目:网络工程师、数据库工程师、软件测试工程师、信息安全工程师与嵌入式系统开发工程师五个考核项目。形式:无纸化考试。

四级考试科目由五门专业基础课程中指定的两门课程组成,总分 100 分,两门课程各占 50 分。

专业基础课程为计算机专业核心课程,包括:操作系统原理、计算机组成与接口、计算机网络、数据库原理、软件工程。

考试总时间为 90 分钟,单课程考试没有时间要求。

获证条件:两门课程分别达到 30 分及以上,并已经(或同时)获得三级相关证书。2013 年 3 月及以前获得的三级各科目证书,不区分科目,可以作为四级任一科目的获证条件。