华为自研的数据库gaussdb怎么样

华为自研的数据库gaussdb怎么样,第1张

华为自研的数据库gaussdb,还可以吧,用起来算是比较方便。

GaussDB(for Redis)(下文简称高斯Redis)是华为云数据库团队自主研发的兼容Redis协议的云原生数据库,该数据库采用计算存储分离架构,突破开源Redis的内存限制,可轻松扩展至PB级存储。

高斯Redis基于计算存储分离架构,计算层实现热数据缓存,存储层实现全量数据的落盘,中间通过RDMA高速网络互连,通过算法预测用户的访问规律,实现数据的自动冷热交换,最终达到极致的性能提升。

相关资料

该架构基于华为内部强大且广泛使用的自研分布式存储系统DFV,实现了一套Share Everything的云原生架构,充分发挥了云原生的d性伸缩、资源共享的优势。

使得高斯Redis具备强一致、秒扩容、低成本、超可用的四大特点,完美避开了开源Redis的主从堆积、主从不一致、fork抖动、内存利用率只有50%、大key阻塞、gossip集群管理等问题。

特点数据库管理系统将具有一定结构的数据组成一个集合,它主要具有以下几个特点:1

数据的结构化数据库中的数据并不是杂乱无章、毫不相干的,它们具有一定的组织结构,属于同一集合的数据具有相似的特征

2

数据的共享性在一个单位的各个部门之间,存在着大量的重复信息

使用数据库的目的就是要统一管理这些信息,减少冗余度,使各个部门共同享有相同的数据

3

数据的独立性数据的独立性是指数据记录和数据管理软件之间的独立

数据及其结构应具有独立性,而不应该去改变应用程序

4

数据的完整性数据的完整性是指保证数据库中数据的正确性

可能造成数据不正确的原因很多,数据库管理系统通过对数据性质进行检查而管理它们

5

数据的灵活性数据库管理系统不是把数据简单堆积,它在记录数据信息的基础上具有很多的管理功能,如输入、输出、查询、编辑修改等

6

数据的安全性根据用户的职责,不同级别的人对数据库具有不同的权限,数据库管理系统应该确保数据的安全性

本文译自Environmental Geology,2002(41)∶765~775。

Alberto Pistocchi1Lucia Luzi2Paola Napolitano3著

朱汝烈4译校

(1Studio di Ingegneria per I'Ambiente e il Territorio,Viale GCarducci,15,47023 Cesena,Italy;2IRRS-CNR,MiLan,Italy;3ACTA Studio Associato,Naples,Italy;4中国地质调查局水文地质工程地质技术方法研究所,河北保定,071051)

摘要此案例研究,源于将不同概率的预测模型[贝叶斯(Bayesian)概率、模糊逻辑、“与”、“或”、“总和”、“产出”、“灰度(非线性)”运算以及必然性因素等],用于编制意大利亚平宁山脉北部的丘陵和山岳地区滑坡灾害地图。利用7个数据层来检验非常脆弱的区域:岩性、与地质构造线的距离、年降雨量数值、土地覆盖类型、地形坡度和坡向,以及与水文网络段的距离。与用预测率指数预测的不同结果进行了对比和缜密的讨论,以评价这种易于运用、适宜有效的数据库在土地规划中使用价值的可能性。

关键词支持性函数 整体化模拟 滑坡灾害 空间数据库

1 导言及一般论点

近几年来,全欧洲各地方及规划部门在建立空间数据库方面有了长足进展。然而,很多数据库似乎对决策支持仍然不起作用,而且其使用的有效数据经常是纯粹土化的。特别是,最终数据使用者和决策者对于有关地理信息系统(Geographic Information Systems——GIS)的模拟能力,近乎于毫不知晓的状况。极少有地方政府机构在日常的决策中采用预测模型作为其有效支撑。

地理信息系统为详细的空间特征模拟带来巨大的能力,并且许多地方政府现在已拥有GIS技术,为其使用提供了方便条件。人们在对自然界现象进行日常习惯性观察时,这一重要信息有变成一种更有力的方法手段的潜在可能吗?

出于参与规划和目标共享的需要,地学家已经注意到确定的共享资源在用于规划和决策支持中做出的评估具有何等重要性的有关阐述。一些人强调地球科学地图在制定政策和土地使用规划过程中的作用。据他们的观点,灾害地图(hazard maps)的主要作用是,为决策者提供有关土地开发规章条例定义问题的正确观点。

基于自然现象之间因果关系的预测模型,已被水文工作者、地球科学家、环境分析家和工程师广泛地应用于自然风险评估、自然资源管理、污染防治与土壤改良及环境影响评估等领域。然而,就诸如滑坡这一自然灾害场合而言,要建立一个能在区域规模内可靠适用的模式似乎相当困难。一些人探究产生这一困难的原因,认为主要是受模型和数据的限制。与其他风险管理的角度不同,很少有管理者探索过有关定量模型的应用问题。

滑坡灾害制图的传统方法,依赖地质学家和地貌学家的经验观察、鉴定(通过对现场特性的直接观察和远距离的检测报告)来解释滑坡发生的特征。这样虽有相当可能判明既往事件,但是在撇开专家主观性及定性判断的情况下,几乎不能支持任何预测。

近几年来,已经提出了基于成带现象的大地构造模型。然而,基于大地构造模型的计算方法,或者说实际上是基于指数叠加的方法,限于数据不足或数据质量的低下,尽管其自然基础相当稳固,仍经常是不可靠的。

另一方面,通过“客观”的可复制模型进行的预测,分析家对可能的、有限的随机选择感到兴趣。特别是下列这些情况:

·当具有相当重要性的规划设想涉及到社会冲突时;

·当现象不容易觉察时;

·当对覆盖整个所关心区域的现象做详细测图所耗费用过于高昂,因而有必要对那些需更深一步了解的区域进行“筛选范围”模拟的时候。

一般说来,模拟过程与决策很相似,而且其工作具协调性和基础性。灾害地图之所以合理的一个理由,是通过专家的专门鉴别,可用模拟方法学的手段再现、复制,可以有助于认识的社会构成,亦即在管理者、社区公众以及科学家之间分享正确的决策准则。

这一原因导致开展使用概率进行预测的可能性的调查研究。在这些探索过程中,充分运用有关滑坡事件的先验性知识,通过合理地确定参数,用模糊的、或随机的地图套叠方法进行概率预测。

在最近几年,对这种方法做了很多探索。所有这些方法已经比较广泛地使用于敏感性分析或不同方法的性能对相同案例的研究。目前,在这些应用中存在的主要困难是不同的地图的对比。

有人提出了一种解决问题的构想,以完善绘图功能。在那些作者们的工作中,显示了概率、模糊的范畴,并可用现象发生地区最支持性的探测功能——例如滑坡或者矿藏——来证明。这些技术通过推测、校核而发挥效用;对其他诸如神经和贝叶斯(Bayesian)网络等方法,其共通特征与一般的数学模拟近似。以这种方法能轻易地找出一种称之为预测比率的独特标准,它主要用于比较不同预测地图,堪称使模型具有良好性能的有效措施。对其解释如下:支持性函数的用途在于以产生至少包含科学家基于规章的判断,即可从现场经验获得的、预测大部分正确的地图为目标。当然,随后由于专家对现象认识和理解的逐步深化在评估期间必然要求选择多种模拟。同时,由于协调不当而产生变量的假定概率,以及数据缺乏和不可靠,也可引起谬误的结果。不过,运用定量法可以使模型的校准和确认能够支持预测的透明度和合理性。支持性函数模拟方法最近已在专门为其安排的某些案例研究中应用。

本文目的在于,探讨支持性函数模拟对用现有的数据库标准认定的滑坡事件,编制灾害地图的可应用性,并且检查这种方法在现有的数据库里信息的运用中如何改进,以与其他技术(例如,每个岩性单位的滑坡频率编图或者纯粹的滑坡目录清单似的绘图)相比较。

支持性函数模拟也可用于构建数据库的概念性设置:数据的收集严格依赖于在理论框架上对最佳可用信息的准确理解。

2 理论背景

很多作者指出,数值技术的使用与那些对相关现象自身属性的局部价值认为值得关注的事件相联系。属性被认为是事件的证据因素,“或然性”、“可能性”或者发现事件的“可能”程度,在一定意义上与每个相关属性的存在非常符合。假定 A是已进行分析的定义域,而 F是被检查的事件现象。若 r数据层为有效数据,则对于每一个属性种类中的mk来说,设定k=1,…r,便可对每个数据层定义一个分配函数:

地质灾害调查与监测技术方法论文集

它将 A的每个象素分配到k层序列中的一层中;可以为每层确定另一个函数:

地质灾害调查与监测技术方法论文集

在这种情况下,地图在每个层里出现一个数值下降的间隔[a,b]。在此,a和b取决于分析者(如稍后将指出的那样)所做的进一步假定。这个数值代表支持性(favorability),即假定一旦遭遇某种特殊种类属性现象出现时的可靠程度。

对作为每个数据层的函数成分 V和R被定义后,支持性函数可表示为:

地质灾害调查与监测技术方法论文集

间隔极值 a,b必须由分析家据其“可靠性”的解释而定,若认为可靠性与“可能性”相同,则 a=0,b=1。若令可靠性范围等于确定性系数,则 a=-1,b=1。如果选择不同的方法,则可能需要另外的数值。

支持性函数在本项目中的不同用法将在本报告中予以陈述。

若支持性假设为与特定现象 F相关,设定与事件的可能性一致的属性种类为E1,…,E。,然后根据贝斯定理,按 E1,…,E。独立条件假说,可写为:

地质灾害调查与监测技术方法论文集

在ppsI中,I=1,…,n,是发生必然属性种类的优先概率,并且可用该属性种类存在的总面积的百分比进行估算。pps1至n作为属性种类的先期共同可能性考虑;这可以作为全部种类共同发生的总面积的百分比。ppaI,I=1,…,n是观察到的F对于属性种类Ei事件的可能性;这可以根据公式计算。ppaI=1-(1-(areaI)-1)nb(I),其中areaI是符合i系列条件的面积,而nb(i)是与F条件也符合的i系列的面积。psF是所有覆盖整个区域的F的优先概率,并可用所有符合F条件面积的百分数算出。

按此法则,一张地图可以由发生的属性种类的每种组合的计算编制出。这可以通过常规交叉作业程序,在GIS的栅格内 *** 作完成。

如果使用确定性系数,则运算法则作如下相应变动:

(1)一种属性种类的确定性系数可以定义为:

地质灾害调查与监测技术方法论文集

式中:I=1,…,n;n是作为原因因数的主题数据种类的数量。

(2)对两个数据种类来说,确定性系数根据下列法则计算:

当 CF1和CF2均为正号,那么 CF1+2=CF1+CF2-(CF1×CF2);

若 CF1和CF2符号相反,则 CF1+2=CF1+CF2/{1-min(|CF1|,|CF2|));

若 CF1和CF2均为负号,则 CF1+2=CF1+CF2+(CF1×CF2)。

(3)程序通过首先计算 CF1+2=CF12,然后 CF13=CF12+3等等,按此重复 *** 作可获得更多的图件。

作为最后的方法,采用模糊集合论通过计算“模糊总和”、“模糊产出”,“模糊与”、“模糊或”以及“模糊非线性函数”。所有这些函数都是在假设 F存在的可能性预测值等于给定的种类EI(即 ppaI)的条件下进行运算的。它们是:

·“模糊与”=min(ppaI),I=1,…n;

·“模糊或”=max(ppaI),I=1,…n;

·“模糊结果”=Ⅱ(ppaI),I=1,…n;

·“模糊总和”=1-Ⅱ(1-ppaI),I=1,…n;

·“模糊非线性计算”=(模糊总和)(模糊结果)1-γ,γ是0:1范围的参数。

按此方法,可确定编制覆盖层地图的法则,以便分析家能评价覆盖整个研究地区的不同事件属性数据差别,并有助于进一步识别存在更多现象的场地。这些计算结果代表与被认为属于有利性的现象相关指标的数目。必须注意到,除已描述之外,根据相应的资料证据分量、可信功能、线性回归覆盖概率以及其他诸多条件,可采用不同的技术。

必须指出,优先概率psF需要对确定性系数的估计测定而计算获得,但将它用于绝对边界条件是无意义的,因为要预知未来的滑坡事件的可能性实际上几乎是不可能的。预测根据的理由必须在概括全部条件求得支持性指标后,方可确认,而不能以对灾害的数字计算结果为依据。

3 应用

用于本案例研究的地区在意大利(图1)北部的萨维(Savio)河流域。区域地质概况基本上为泥灰岩和沙岩组成的一个沉积盆地。可更详细分为以下3种主要的地质岩层:

图1 研究区位置图

(1)托尔顿阶(Tortonian N1)为灰色砂质和泥质浊流沉积岩,是主要地质岩层,并出露于这条主要溪流两侧。

(2)由微晶质石膏与泥质粘土和沙层互层组成,而其基底为含硫石灰岩地层。

(3)由泥质岩、砂质岩和砾岩3层构成,全部含有灰岩层。

此外,还有淤泥质泥灰岩层、晚始新世砂岩地层、上新世粘土以及混杂堆积的粘土层出露地表。

该地区被大量滑坡覆盖,在不同的地质单元内,大多数情况下是以滑移型或泥石流型的运动形式发生。而且,有的地区有岩石崩落,并存在块体平移运动,然而对它们均未做过分析。研究过程中使用的数据由埃米利亚·罗马格纳地区地质调查所(Regione Emilia Romagna Geological Survey)提供。

用于本案例研究的数据库由若干主题层构成,它们涉及:

·线性构造(断层,向斜和背斜),比例尺1:50000;

·岩性单元,比例尺1:50000;

·根据CORINE欧洲工程指南协议,从TM陆地卫星映像获得的土地覆盖情况,比例尺1∶50000:

·数字地形模型(DTM),根据从Regione Emilia Romagna地方当局的地图数据库中获得的、通过计曲等高线内插、等高距为50m的等值线制成;

·整个地区的7个降雨计量站的降雨测量数据;

·数字化水文网,比例尺1:10000。

必须强调,数据库的分辨度非常低劣,另外,数据在比例尺上很不均匀。有人会认为特别是当与平均滑坡面积进行对比时,地形信息明显很不精确,因而成为非实际滑动的运动学的代表。这项研究的目的是评价现实世界数据库的预测能力(前已阐述),必须意识到,重要的不是做出可靠的灾害地图,因为最好的信息虽已被应用殆尽,但不可能有任何更深远范围的调查和数据可供获取。正如在以下内容所强调的那样,与土地计划的预测相比较,评估的结果将为数据库的改进给予更多的输入内容。

从DTM数字地形模型中形成了坡度和坡向地图,并用固定的数值间隔对坡度做了分级。

对线性构造的距离做了计算,目的在于评价构造干扰对坡体稳定性的可能影响。以对栅格地图和栅格化作为计算结果。

分析了降雨资料,以查明高程与年降雨量之间的关系。从这两个变量的一个回归方程发现:y=07086x+70819(R2=066),x为海拔高程(m),y是超过30年的长时间级数降雨量的总平均值(mm/a)。后来用该方程式做了一幅连续降雨地图,结果明确显示,DTM既像降雨特征的指示剂,同时也犹如位能释放的一个显示器。

应当注意,过高的高程与降雨的相互关系相当微弱,而更进一步的分析则要求更好地描述该地区的实际降雨分布情况。然而,依据现有数据,仅能说明已经适当地查明了降雨分布的一般趋势而已。

尽管概念上的差异特性可以在滑坡的现象情况与所需的因素之间梳理出来,然而,当其他所需要特征都存在的情况下,恰恰只是“要素”触发了滑坡。可以认为,所有这些数据层都可能具有优先意义。

至于存在滑坡可能性的数据,只能依赖地方当局的土地不稳定情况报表获得。应着重指出,数据库适用于构建GIS的长时间序列分析。而且,其数据的密度和分布,按统计学来看,属具典型意义的现实滑坡分布。可以证明,事实上,当为贝叶斯程序培养的数据集不是足够大(并且排列也不足够随机)——这关系到对分区性随机变量的获得——的时候,按定量评价的观点衡量概率综合模拟,是毫无意义的。本案例中,滑坡发生的优先总和有利性条件(级别—特殊)的概率ppa1和psf,需由专家们判定。而且,选择滑坡的类型和年龄以便培养数据系列是重要的,这样的系列可照顾到同类滑坡。已有人进行了关于“泥石流”和“崩滑泥石流”类型滑坡的分析,认为通常发生在局部地区。在本研究项目中,仅在编制一些图件时有效地应用。

地区土地不稳定性报表记录也考虑了岩石崩落、块体滑动以及潜在不稳定的地段,但是这些没包括在分析过程中。图2显示了用于分析的数据层。

被考虑的全部主题的数据原则上有相互关联的可能性。由于多余的信息将可能导致无效结果,因而做一些尝试性计算。为了分析的目的,已进行了一次对7个主题条件(即,降雨地图、岩石学、土地覆盖、坡度、坡向、与水文网的距离及与线性构造的距离)的联合性试验。7个主题条件分类列入独立的图例内,并作为促使滑坡体产生活动的条件在地图上的识别标准。

对每一个地图偶对做了4个指数的联合计算:

·x平方(x2)指数;

·克拉默(Cramers)指数;

·意外事故指数;

·共同信息不确定性得分。

这里,第一个指数被确定为:

图2 用于预测的原因因素主题图

地质灾害调查与监测技术方法论文集

式中

地质灾害调查与监测技术方法论文集

而 T=象素的总数,Ti=地图1中 i类象素的数量,Tj=地图2中 j类象素的数量。指数 n和m分别是在地图1和地图2中的种类数目。

克拉默指数(V)和意外事故指数(C)确定如下:

地质灾害调查与监测技术方法论文集

相同符号的含义相应同前,同时 M取(m-1,n-1)的最小值,而 n和m分别是两幅图中每一幅中的数据种类的数目。

图幅偶对 A和B的共同信息不确定性得分取决于:

地质灾害调查与监测技术方法论文集

其中

地质灾害调查与监测技术方法论文集

n、m分别是在地图A和地图B里种类的数量,而Pij则是在地图A和B的交会线上i和j种类的像素数量分别对像素总量的比率。Pj是地图A中种类j的像素总数量,而 Pi表示种类i在地图B中的总像素。

上述指标可判断一个地图偶对之间的协调性尺度。x平方指数给出协调性(无上边界的)绝对尺度,而对其本身没用;V和C表示区域内预防标准的尺度[0,1],它们越是接近1,则两张地图之间的联系越强。这3个指标结合使用,可提供关于联系性的一个综合尺度标准,并允许我们超越一套地图从不同角度去比较像对的联系性。通常,可能注意到3个指标呈现如所期望那样非常相似的反应。不确定性共同信息记录也可用于确定由前面的指标测定的联系性模型,并假定在0(完全独立的地图)和1(完全联系的地图)之间改变。表1展示了如上所述的地图计算的指标。

表1 数据层之间的联系性指标

尽管未使用计算的指标,在严格条件下,对于确定贝叶斯条件(比非联系性质更强)的独立性,这些由全部数据层推断而得出的联系性指标,可能应当是独立的。

正如分析所指出的,必须被注意到,滑坡显示出与岩石学的某种联系(只有一个滑坡,岩石学主题由于共同信息的不确定性,具有非相关性),并与海拔高程/雨量以及地表覆盖存在空间联系趋势。

应当指出,若从因果关系以外的因素看来,岩石学与海拔高程/雨量和土地覆盖是相关的,而与坡度之间的联系较弱,与其他主题的联系则极少或无联系。提供给研究项目的不甚适用的DTM似乎是造成这一现象的首要原因。除在坡度和降雨量/海拔高程之间的微弱的联系外,其他联系可能均未予考虑。

根据当地地质调查所的分析似乎也得出同样的结论,岩性的因素仅仅用于编制滑坡灾害图以及拟定作为滑坡灾害指标的每个岩性单位的滑坡频率。

在每次运算期间,只有已知滑坡(通过随意抽样选择)的一半用来生成预测地图,然而剩下的东西,应当视为同样有效的数据群。作为滑坡灾害预测尝试,最先使用潜在原因因素,而在第2次试验过程中,只使用了3个最为相关的因素,这将在后面的章节中予以解释。

4 结果讨论

支持性函数的计算如以下将予以描述的那样,是在不同的模拟假定前提下进行的。每一幅由计算生成的良好地图的预测能力,用曲线的预测比率进行测试。这种曲线,是通过研究地区的累积百分率标定分类,以支持性评定数值的递减量(遵循上面提到的各种法则)作为横坐标,以滑坡地区的累积百分率作为纵坐标而做成的。据说,当预测的滑坡百分比与区域最大值的20%相一致时,便是对模型预测能力的良好评估。更广泛的观念是,曲线越是有规则的接近纵轴,则预测越加吻合。相反,若更多的曲线靠近45°直线,则说明组合因素造成预测靠近支持性数值的随机分布范围,这种预测的有用价值极小。在因果因素中,已经认识到水文网络所起的作用较小,这是因为为其所拟定的细节,要比其他因素的精密度高得多。乍看起来河流切割“遍布”各地,因而不便于将滑坡分布与它和水文网络的距离加以联系。因此,在因果因素中没有包括河流水系。

在图3中对已考虑的6个因果因素的预测比率,逐个予以显示。本项目中,预测者估计的条件频率ppaI,I=1,…n(发生滑坡事件的条件概率,给定的种类 i)适于每个主题内的每一个种类。

图3 原因因素预测的比率——使用整个滑坡封闭折线和条件频率

第一步计算用作证据的数据,来自图解滑坡活动的全部封闭折线。滑坡被分解成两个随机取样组,其中一个用于标定,而另一个用于证实。计算作业使用了3个最相关的主题(岩性、土地覆盖以及海拔高程/雨量),遵照先前描述的指标。预测比率曲线用图4显示。

进一步使用所有的6个指标进行了计算,其预测比率用图5显示。

我们注意到,由于整个滑坡体均被绘制,因而这可能会含有一些精确性的偏差;由于因果因素的集合,致使滑坡触发点和滑坡前缘不相同。因此,在每个滑坡封闭折线内预测,只使用最高点;若从物质运动的运动学原理考虑,触发点应当在最高位置。6个因果指标在此假定前提下计算的预测比率,如图6所示。

图4 7位预测者预测的比率——使用3个因果指标

(岩石学、降雨量和土地覆盖)和整个滑坡封闭折线

图5 7位预测者预测的比率——使用所有6个相关的原因指标和整个滑坡封闭折线

7位预测者使用3个和6个因果指标的预测比率,分别用图7和图8显示。

就输入数据的相关性而论,表明使用坡度、坡向和雨量分布(即更准确的DTM和雨量——由更区域化的降雨计量器获得的数据)具有更好的代表性,将使结果得到改进。一旦得到新数据,分析者们便可重新评价其对预测的潜在影响。

从预测比率的比较中可以确定:

·当使用6种因果指标代替3种与滑坡关联性更好的指标(岩石学、土地覆盖以及雨量)时,似乎没有明显的改进;在两种情况下的预测表现得非常近似,这恰似对种类群用了修整清除器,然而更多的指标是被应用了的。

·更进一步的清除效果可由只用触发点,而无需考虑滑坡整体来作为证据。这不至于带来地图总体预测能力的恶化;但同时也须顾及到,过量的清除有可能会导致绘图的可靠程度降低乃至消失。

图6 只使用触发点因果指标预测的比率

图7 7个预测者只使用3个因果指标(岩石学、土地覆盖和降雨量)和触发点预测的比率

图8 7个预测者使用6个相关因果指标和滑坡触发点预测的比率

·岩石学在原因指标的预测比率图解中,无论如何显然具有更高的预测能力(如此则可理解,为何当地地质调查所单独选择了将这个主题层用于灾害制图),当然还包括土地覆盖和降雨。然而并非其他全部主题都与预测相关。

·在本案例研究过程中,除贝叶斯可能性的情况外,7位预测者所用的预测表现得极其近似。然而数据的有效分布性是非常敏感的,当整个滑坡体被用作证据,并处于模糊“或”、“与”的某些场合时,则预测均近乎为随机性的。通常,似乎确定性系数是预测者在这一具体案例的研究中最有用的手段,虽然在每种情况下,一些预测者以预测比率曲线和预测地图所作出的预测实际上相同。

图9显示了在本案例中,进一步显示了将3个因素与作为主题证据的触发点共同配合使用时的7种预测。这是本案例研究过程中探讨的情况之一,它具有更好的预测比率,并且可能对滑坡灾害成带性作出最佳的基础性思考,显现了当前的认识状态。

图9 根据7种预测做出的预测地图

5 结论

本文讨论的方法是使用数字模型(较少需要专家的主观判断),依据滑坡灾害来划分土地等级。这似乎表明,当客观预测可从空间数据库中提炼出来时,则可以说明其主题有一些“系统”增加的价值,即全部数据都共同使用比仅只使用某些主题的效果更好。

必须强调,这种方法从现有数据库的开发入手,且保留对每个主题认识的开放、完善。在最好的预测者们各种各样的测试(确定性系数、贝叶斯可能性、模糊的 *** 作和其他可能的技术)中,仅能根据各种测试技术的预测能力做出选择,最后则慎重地使用了预测比率曲线进行预测。

这些分析已经引发了现有的数据库尚属不健全的认识,当然,仅指为了生成预测模拟使用目的的地形数据不甚适当而言。这寄希望于未来投入进一步的调查研究并捕获数据,以确定一种更佳的数字化地形模型。只要改进的原因因素地图一旦产生,或者一个新的原因因素被确认与现象相关,便可能重新进行计算,从而可能产生新的预测图。预测比率使用的有效性可按实际和有效改进进行检查,也可用来对数据收集和岩土工程监测的进一步努力指明方向。例如,在本案例研究中,岩性、土地覆盖以及降雨(如上所述,按高程描述)显然是滑坡的最相关的因素,因而到目前为止,分析主要致力于这些因素的调查和编图。更进一步说,准备并使用具有合适解读能力的DTM显得很有必要,其目的是为了更详细地检查地形数据的影响。分析也很重视其他主题条件,例如水体高程,对用于危险绘图时,它可能就变得相当重要。

关系数据库的主要特点列举如下:

1数据集中控制,在文件管理方法中,文件是分散的,这些文件之间一般是没有联系的,因此不能按照统一的方法来控制、维护和管理。而数据库则可以集中控制、维护和管理有关数据。

2数据独立,数据库中的数据独立于应用程序,包括数据的物理独立性和逻辑独立性,给数据库的使用、调整、优化和进一步扩充提供了方便。

3数据共享,数据库中的数据可以供多个用户使用,每个用户只与库中的一部分数据发生联系;用户数据可以重叠,用户可以同时存取数据而互不影响。

4减少数据冗余,数据库中的数据不是面向应用,而是面向系统。数据统一定义、组织和存储,集中管理,避免了不必要的数据冗余。

5数据结构化,整个数据库按一定的结构形式构成,数据在记录内部和记录类型之间相互关联,用户可通过不同的路径存取数据。

6统一的数据保护功能,在多用户共享数据资源的情况下,对用户使用数据有严格的检查,对数据库规定密码或存取权限,以确保数据的安全性、并发控制。

扩展资料:

关系数据库,是建立在关系数据库模型基础上的数据库,借助于集合代数等概念和方法来处理数据库中的数据,同时也是一个被组织成一组拥有正式描述性的表格,这些表格中的数据能以许多不同的方式被存取或重新召集而不需要重新组织数据库表格。

关系数据库的定义造成元数据的一张表格或造成表格、列、范围和约束的正式描述。每个表格(有时被称为一个关系)包含用列表示的一个或更多的数据种类。 每行包含一个唯一的数据实体,这些数据是被列定义的种类。

参考资料:

百度百科——关系数据库

问题一:用excel做数据表 怎么做啊 如图 1选中D2 输入公式:=ROUND(C2/B2,2) 然后下拉至D6

2选中第一列和第四列 插入 图表 带平滑线的散点图 然后改一储标题即可

拖到A8:F18的范围内即可

3修改左下方的工作表名

问题二:急!!Excel 表中数据怎么做成曲线图 5分 插入-图表,然后选折线图,如下图所示。根据你的数据列表进行编辑。

问题三:怎么制作数据库表格 用ACCESS就可了以。一个数据库就是由许多表组成的。你用ACCESS建了一个数据库文件后,新建表,然后输入字段名称和类型就是一个数据库了了。 比如: 字段名 ID NAME XUEHAO 表名取为STUDENT。这样就有一个表了

问题四:word数据图怎么做 你好

使用“插入”菜单中的“插入图表”功能来制作,你发的属于柱形图,插入柱形图后,双击图表及右击图表有数据来源和图表样式等的设置,根据具体要求来完成

希望能帮到你

补充:你的意思是照你发的做一份一模一样的图发给你还是?

问题五:excel表格如何做数据连接 比如A1单元格要链接G1单元格数据,在A1输入公式=G1

如果发链接到SHEET2的G1,公式改成: =SHEET2!G1

输入等于号后,直接点目标单元格也行

问题六:如何用excel表做曲线图 选数据区域――菜单栏――插入――图表――自定义类型:两轴线-柱图――下一步――下一步:

标题:输入相应标题;网络线:数值(Y)轴:主要网络线;图例:显示图例(取消勾选,你的抓图没有);数据标志:值;数据表:显示数据表――完成。

问题七:如何利用excel的数据制作图表 1、打开excel表格,选中除第一行以外的所有数据列,依次点击“插入”-“散点图”-“带平滑线的散点图”,则生成所需要的正弦曲线。

2、选中除第一行以外的所有数据列,依次点击“插入”-“折线图”-“带数据标记的百分比堆积折线图”,则生成所需要的正切曲线。

问题八:excel中如何做出这种图表?图下面有数据的这种 30分 没你想的那么难,可按以下步骤:

第一步:

先在excel中输入那个表格,包括日期。

第二步:选择插入“图表”,

在选择图表类型时,注意选择自定义下的“线-柱图”

在选择数据区域时,将你上面输入的那个表格全部选在内(注意选择“系列产生于行”)

然后选择完成即可,这样,基本的图表就形成了。下面再一步步修饰。第二步完成后,图表如下效果:

第三步,调整格式,其中几个关键点,这些都可在“图表选项中完成”:

1、图表下面的表格怎么来的。

“图表选项”中最后一个内容,即“数据表”,你一试即明。

2、右边的坐标值0-10000怎么来的。

“图表选项”中“坐标轴”中,选择“次坐标轴”即可。完成后,图表会对刻度进行默认,一般范围为低于最最小值的整数和高于最大值的整数之间,为了达到效果,我们可以任意进行调整。方法即双击该数据位置,然后调整刻度即可。初步效果如下:

第四步,修饰。调整颜色、字体以及其他修饰即可珐具体略。。。

问题九:EXCEL怎么制作百分比数据分析表图 具体 *** 作步骤如下:

先把数据在EXCEL表里填好,比如:

2选择:插入―图表―饼图;

3点击下一步,会自动生成饼图,可以在下拉栏里选择数据;

4点击下一步,可以描述表格主题;

5点击下一步,选择储存区域;

6一张饼图完成了。

问题十:怎么制作走势图表格? 1首先需要收集好要制作表格的数据,并将相关的数据制作成表格,一定要分类明确,不然图表显示表达时会达不到预期的要求。点击工具栏上的“图表向导”按钮。

2点击工具栏上的“图表向导”按钮后会d出一个的对话框,在其中选择“折线图”并选择如箭头所示的第一个“字图表类型”,然后点击下一步。

3接下来就会d出对话框,点击“系列”找到如箭头所示的“分类(X)轴坐标”,选择数据后按回车键,再一步。注意选择数据时要选择如图箭头所示的数据范围,因为这个是显示“年”信息的,不然会变成别的信息。

4紧接着会出现一个对话框,可以在里面根据自己的需要选择对应的数据信息的显示。。

5接下来可以在“数据标志”选项中勾选“值”选项,图表中的曲线中会出现对应的数据信息。

6最后,可以通过双击“曲线”d出的对话框中选择“平滑线”来对曲线的外观进行美化,到此一份趋势图就制作完成了。当然里面还有很多其他需要美化的,可以自己摸索了。

在程序员的职业生涯中,总会遇到数据库表被锁的情况,前些天就又撞见一次。由于业务突发需求,各个部门都在批量 *** 作、导出数据,而数据库又未做读写分离,结果就是:数据库的某张表被锁了!

用户反馈系统部分功能无法使用,紧急排查,定位是数据库表被锁,然后进行紧急处理。这篇文章给大家讲讲遇到类似紧急状况的排查及解决过程,建议点赞收藏,以备不时之需。

用户反馈某功能页面报502错误,于是第一时间看服务是否正常,数据库是否正常。在控制台看到数据库CPU飙升,堆积大量未提交事务,部分事务已经阻塞了很长时间,基本定位是数据库层出现问题了。

查看阻塞事务列表,发现其中有锁表现象,本想利用控制台直接结束掉阻塞的事务,但控制台账号权限有限,于是通过客户端登录对应账号将锁表事务kill掉,才避免了情况恶化。

下面就聊聊,如果当突然面对类似的情况,我们该如何紧急响应?

想象一个场景,当然也是软件工程师职业生涯中会遇到的一种场景:原本运行正常的程序,某一天突然数据库的表被锁了,业务无法正常运转,那么我们该如何快速定位是哪个事务锁了表,如何结束对应的事物?

首先最简单粗暴的方式就是:重启MySQL。对的,网管解决问题的神器——“重启”。至于后果如何,你能不能跑了,要你自己三思而后行了!

重启是可以解决表被锁的问题的,但针对线上业务很显然不太具有可行性。

下面来看看不用跑路的解决方案:

遇到数据库阻塞问题,首先要查询一下表是否在使用。

如果查询结果为空,那么说明表没在使用,说明不是锁表的问题。

如果查询结果不为空,比如出现如下结果:

则说明表(test)正在被使用,此时需要进一步排查。

查看数据库当前的进程,看看是否有慢SQL或被阻塞的线程。

执行命令:

该命令只显示当前用户正在运行的线程,当然,如果是root用户是能看到所有的。

在上述实践中,阿里云控制台之所以能够查看到所有的线程,猜测应该使用的就是root用户,而笔者去kill的时候,无法kill掉,是因为登录的用户非root的数据库账号,无法 *** 作另外一个用户的线程。

如果情况紧急,此步骤可以跳过,主要用来查看核对:

如果情况紧急,此步骤可以跳过,主要用来查看核对:

看事务表INNODB_TRX中是否有正在锁定的事务线程,看看ID是否在show processlist的sleep线程中。如果在,说明这个sleep的线程事务一直没有commit或者rollback,而是卡住了,需要手动kill掉。

搜索的结果中,如果在事务表发现了很多任务,最好都kill掉。

执行kill命令:

对应的线程都执行完kill命令之后,后续事务便可正常处理。

针对紧急情况,通常也会直接 *** 作第一、第二、第六步。

这里再补充一些MySQL锁相关的知识点:数据库锁设计的初衷是处理并发问题,作为多用户共享的资源,当出现并发访问的时候,数据库需要合理地控制资源的访问规则,而锁就是用来实现这些访问规则的重要数据结构。

根据加锁的范围,MySQL里面的锁大致可以分成全局锁、表级锁和行锁三类。MySQL中表级别的锁有两种:一种是表锁,一种是元数据锁(metadata lock,MDL)。

表锁是在Server层实现的,ALTER TABLE之类的语句会使用表锁,忽略存储引擎的锁机制。表锁通过lock tables… read/write来实现,而对于InnoDB来说,一般会采用行级锁。毕竟锁住整张表影响范围太大了。

另外一个表级锁是MDL(metadata lock),用于并发情况下维护数据的一致性,保证读写的正确性,不需要显式的使用,在访问一张表时会被自动加上。

常见的一种锁表场景就是有事务 *** 作处于:Waiting for table metadata lock状态。

MySQL在进行alter table等DDL *** 作时,有时会出现Waiting for table metadata lock的等待场景。

一旦alter table TableA的 *** 作停滞在Waiting for table metadata lock状态,后续对该表的任何 *** 作(包括读)都无法进行,因为它们也会在Opening tables的阶段进入到Waiting for table metadata lock的锁等待队列。如果核心表出现了锁等待队列,就会造成灾难性的后果。

通过show processlist可以看到表上有正在进行的 *** 作(包括读),此时alter table语句无法获取到metadata 独占锁,会进行等待。

通过show processlist看不到表上有任何 *** 作,但实际上存在有未提交的事务,可以在information_schemainnodb_trx中查看到。在事务没有完成之前,表上的锁不会释放,alter table同样获取不到metadata的独占锁。

处理方法:通过 select from information_schemainnodb_trxG, 找到未提交事物的sid,然后kill掉,让其回滚。

通过show processlist看不到表上有任何 *** 作,在information_schemainnodb_trx中也没有任何进行中的事务。很可能是因为在一个显式的事务中,对表进行了一个失败的 *** 作(比如查询了一个不存在的字段),这时事务没有开始,但是失败语句获取到的锁依然有效,没有释放。从performance_schemaevents_statements_current表中可以查到失败的语句。

处理方法:通过performance_schemaevents_statements_current找到其sid,kill 掉该session,也可以kill掉DDL所在的session。

总之,alter table的语句是很危险的(核心是未提交事务或者长事务导致的),在 *** 作之前要确认对要 *** 作的表没有任何进行中的 *** 作、没有未提交事务、也没有显式事务中的报错语句。

如果有alter table的维护任务,在无人监管的时候运行,最好通过lock_wait_timeout设置好超时时间,避免长时间的metedata锁等待。

关于MySQL的锁表其实还有很多其他场景,我们在实践的过程中尽量避免锁表情况的发生,当然这需要一定经验的支撑。但更重要的是,如果发现锁表我们要能够快速的响应,快速的解决问题,避免影响正常业务,避免情况进一步恶化。所以,本文中的解决思路大家一定要收藏或记忆一下,做到有备无患,避免突然状况下抓瞎。

消息队列在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在消息队列的使用和原理方面对小伙伴们进行360 的刁难。

什么,这么多问题啊!别慌,现在就来找找解决方案。

一、 重复消费

现在消息队列一般都能保证at least once的,也就是消息至少一次投递。 在这种情况为什么会出现重复消费的问题呢?通常都是由于网络原因造成的 ,原因如下:通常消息被成功消费后消费者都会发送一个成功标志给MQ,MQ收到这个标志就表示消息已经成功消费了,就不会再发送给其他消费者了。但是如果因为网络这个标志没有送到MQ就丢失了,MQ就认为这个消息没有被成功消费,就会再次发送给其他消费者消费,就造成重复了。

这时我们看这个问题就变成了我们怎么保证消费端的幂等性。

幂等性 是指一个 *** 作其执行任意多次所产生的影响均与一次执行的影响相同,大白话就是你同样的参数调用我这个接口,调用多少次结果都相同。

怎么保证消息队列消费的幂等性

其实还是得结合业务来思考,我在这里给出几个解决方案:

1 分布式锁 。生产者发送每条数据的时候,里面加一个全局唯一的 id,类似订单 id 之类的东西,然后你这里消费到了之后,先根据这个 id 去比如 Redis 里查一下,之前消费过吗?如果没有消费过,你就处理,然后就是这个 id 写 Redis。如果消费过了,那你就别处理了,保证别重复处理相同的消息即可。

2唯一键防重 。基于数据库的唯一键来保证重复数据不会重复插入多条。因为有唯一键约束了,重复数据插入只会报错,不会导致数据库中出现脏数据。

3先查后写。 要写数据库前,先根据主键查一下,如果这数据都有了,你就别插入了,update一下好了。

4 关闭重试机制 。如果把重试机制关掉的话不显示,虽然解决了重复消费的问题,但是可能会造成丢失消息,不建议这么做。

不同的业务可以选择不同的方案,如果服务的并发量不高,可以考虑唯一键防重或者先查后写的方案;如果并发量较高,追求性能,沐子推荐采用分布式锁实现幂等性(本公司目前采用的方案)

二、 消息堆积

1 消息堆积的产生原因

消息堆积的原因主要在于两方面,其一为消费的太慢或消费方出现异常,其二为生产方生产的太快,总的来说就是 消息的速度赶不上生产的速度,生产和消费速度不匹配造成的 。

2 消息堆积的解决方案

1)生产端:一般当生产端发生积压(Broker正常的情况下)就要查看你的业务逻辑是否有异常的耗时步骤导致的,是否需要改并行化 *** 作等。

Broker端:当Broker端发生积压我们首先要查看,消息队列内存使用情况, 如果有分区的的话还得看每个分区积压的消息数量差异。当每个分区的消息积压数据量相对均匀的话,我们大致可以认为是流量激增。需要在消费端做优化,或者同时需要增加Broker节点(相当于存储扩容),如果分区加压消息数量差异很大的话(有的队列满了,有的队列可能还是空闲状态),我们这时候就要检查我们的路由转发规则是否合理。

2) 增加消费者 ,多部署几台消费者机器(横向扩展),提升消费者的消费能力。

3)此种情况可以将这些 消费不成功的消息转发到其它队列里去(类似死信队列) ,后面再慢慢分析死信队列里的消息处理问题。

4) mq 中的消息过期失效了。可以采取一个方案,就是批量重导 ,这个我们之前线上也有类似的场景干过。就是大量积压的时候,我们当时就直接丢弃数据了,然后等过了高峰期以后,将丢失的那批数据,写个临时程序,一点一点的查出来,然后重新灌入 mq 里面去,把白天丢的数据给他补回来。

总之,上面说到消息积压的问题,我们需要查看是否有无限重发的消息或者有进入死锁的程序等等,当确定是流量激增的话,我们需要评估是否需要增加资源还是通过限流的方式解决,当短时间大量消息需要处理时,在资源允许的情况下,我们可以新启一批消费者与消息队列,将原来的消费者中的消息直接作为生产者转发到临时应急队列中,这样大概率的能够快速解决消息积压。与其事后处理不如我们在设计之初就要把积压考虑进来,对于数据量非常大,但是实时性要求不高的场景,可以设计出批量消息发送,当队列积累到一定阀值再做批量消费消费,这里需要注意的就是重复消费带来的影响,设计不好就是一场灾难。

三、 消息丢失

一般来讲消息丢失的途径有三个: 生产者弄丢数据、消息队列弄丢数据、消费者弄丢数据 。

1 生产者弄丢数据

a、丢失的原因:因为网络传输的不稳定性,当生产者在向MQ发送消息的过程中,MQ没有成功接收到消息,但是生产者却以为MQ成功接收到了消息,不会再次重复发送该消息,从而导致消息的丢失。

b、解决办法:有两个解决办法,第一个方法: 向broker发送消息时,如果由于网络抖动等原因导致消息发送失败,可以设置 失败重试次数让消息重发 。

第二个方法: 事务机制和confirm机制,最常用的是confirm机制 ;

事务机制和 confirm 机制最大的不同在于,事务机制是同步的,你提交一个事务之后会阻塞在那儿,但是 confirm 机制是异步的,你发送个消息之后就可以发送下一个消息,然后那个消息 MQ 接收了之后会异步回调你的一个接口通知你这个消息接收到了。

2 MQ弄丢数据

a、丢失的原因:MQ接收到生产者发送过来的消息,是存在内存中的,如果没有被消费完,此时MQ宕机了,那么再次启动的时候,原来内存中的那些消息都丢失了。

b、解决办法: 开启MQ的持久化 。结合上面的说到的confirm机制,只有当消息成功持久化磁盘之后,才会回调生产者的接口返回ack消息,否则都算失败,生产者会重新发送。存入磁盘的消息不会丢失,就算MQ挂掉了,重启之后,他会读取磁盘中的消息,不会导致消息的丢失。

注意,哪怕是你给 MQ 开启了持久化机制,也有一种可能,就是这个消息写到了MQ 中,但是还没来得及持久化到磁盘上,结果不巧,此时MQ挂了,就会导致内存里的一点点数据丢失。

所以,持久化可以跟生产者那边的 confirm 机制配合起来,只有消息被持久化到磁盘之后,才会通知生产者 ack 了,所以哪怕是在持久化到磁盘之前,MQ 挂了,数据丢了,生产者收不到 ack,你也是可以自己重发的。

3 消费者弄丢数据

a、丢失的原因:如果MQ成功的把消息发送给了消费者,那么MQ的ack机制会自动的返回成功,表明发送消息成功,下次就不会发送这个消息。但如果就在此时,消费者还没处理完该消息,然后宕机了,那么这个消息就丢失了。

b、解决的办法:1)简单来说,就是必须关闭 MQ 的自动提交,把 自动提交改为手动提交 ,也就是说当我消费成功后才会进行提交。

2)消费者端已经正常接收到消息但是在执行后续消息处理时发生了异常,最终返回处理失败。 重试-进行重新消费问题,如果一直这样重复消费都持续失败到一定次数,可以投递到 DLQ 死信队列,应用可以监控死信队列来做人工干预 。

四、 顺序消费

比如一个电商的下单 *** 作,下单后先减库存然后生成订单,这个 *** 作就需要顺序执行的。队列本身是有顺序的,但是为什么还要保证顺序消费呢,主要是因为生产环境服务实例一般都是集群,当消费者是多个实例时,队列中的消息会分发到所有实例进行消费(同一个消息只能发给一个消费者实例),这样就不能保证消息顺序的消费,因为你不能确保哪台机器执行消费端业务代码的速度快。

保证每次只有单个消费实例消费

所以对于需要保证顺序消费的业务,我们可以只部署一个消费者实例,然后设置MQ 每次只推送一个消息,再开启手动 ack 即可。这样MQ 每次只会从队列推送一个消息过来,处理完成之后我们 ack 回应,再消费下一个,就能确保消息顺序性。

这样MQ 每次只会从队列推送一个消息过来,处理完成之后我们 ack 回应,再消费下一个,就能确保消息顺序性。

但是这样的 *** 作也会降低消费者的性能, 一个消费者消费消息时,其他消费者会阻塞,所以很多场景下可能并不会采用这样的方案。

所以一般会根据场景,制定一定的策略来解决消费顺序问题。

多线程并发抢占出现消费乱序问题

当MQ采用简单队列模式的时候,如果消费者采用多线程的方式来加速消息的处理,此时也会出现消息乱序的问题。

多线程并发抢占出现消费乱序问题,将消息ID进行hash计算,将相同值放入同一个内存队列,让指定线程执行,即可解决顺序消费问题。

在多个分区中保证消息顺序和消息处理效率

首先使用多个分区,消息可以被发送端发送至多个分区,保证消息发送的效率。然后在消费端在拉消息时使用ConutdownLunch来记录一组有序消息的个数。如果达到个数,说明已拉取到完整的一组有序消息。然后在消费端根据消息序号进行排序,消费端将排好序的消息发到内存队列(可以搞多个),一个内存队列开启一个线程顺序处理消息。即可最大程度上既保证顺序又保证效率!

RocketMQ作为阿里开源的一款高性能、高吞吐量的消息中间件,支持顺序消息,所以如果有这种场景或者要使用MQ,我建议你直接使用RocketMQ即可。

我们说了一些处理与分析问题的方法,这里有一个最重要的点就是我们需要有一套实用的监控发现工具或者方式,在问题第一时间发现才是王道,不然我们上面所说的都空谈,当问题发现的时候损失已经无法挽回。所以我们要在设计系统之初需要要为监控系统或者程序提供完备或者必须的日志,接口,数据等,这要才是一个合理的设计。当没有监控系统的情况下我们必须自己设计一套简单分析接口。

最后, 如果我的文章对你有所帮助或者有所启发, 欢迎关注公众号(微信搜索公众号:首席架构师专栏),里面有许多技术干货,也有我对技术的思考和感悟,还有作为架构师的验验分享;关注后回复 面试题,有我准备的面试题、架构师大型项目实战视频等福利 , 我会带着你一起学习、成长,让我们一起加油!!!

以上就是关于华为自研的数据库gaussdb怎么样全部的内容,包括:华为自研的数据库gaussdb怎么样、数据库的特点有哪些、预测模拟技术在空间数据库优化开发中的应用——专家系统类比法滑坡灾害制图案例研究等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9396134.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存