关于数据库:分布式数据库-GaiaDBX-金融应用实践

<article class=“article fmt article-content”><p></p><h2>1 银行新一代外围零碎建设背景及架构</h2><p>在银行的 IT 建设历程中,尤其是中大行,大多都基于大型机和小型机来构建外围零碎。随着银行业务的疾速倒退,这样的系统对业务的反对越来越举步维艰,次要体现在以下四个方面:</p><ul><li>首先是难以反对银行疾速倒退的业务。随着国内电商、互联网领取、手机领取的迅猛发展,银行的交易量呈现指数级的增长。比方咱们的某银行客户,以后每秒的交易量峰值在一万多左右,预计在将来几年会逐步增长到每秒 6 万笔交易,而且后续还会持续增长。在这种状况下,基于大型机的集中式架构,单纯靠硬件的升配,曾经无奈反对业务的持续增长。</li><li>第二是难以匹配银行零碎的迭代更新速度。原有的基于大型机的胖外围架构,迭代周期往往在数月甚至半年。但随着银行间、以及银行与互联网金融企业之间的竞争加剧,银行迫切需要疾速推出新业务进行翻新,他们也心愿可能像互联网公司那样,可能按周级进行疾速迭代,疾速响应业务需要。</li><li>第三是零碎危险。银行业迫切需要做到软件及硬件的自主可控。</li><li>第四是生态关闭。大型机技术倒退慢、人才难招。当初再去里面招一个懂 IBM 大型机的人曾经很难了。</li></ul><p>因而,在国家现有政策的疏导下,各大银行最近几年都在做一个事件:把原有的外围架构从大型机下移到传统的通用服务器架构上,并建设一套自主可控的新技术体系,简称外围零碎下移。</p><p></p><p>在进一步了解银行零碎之前,咱们先理解下银行客户的业务体量、业务需要以及外围系统对业务反对状况。以一个国有大行来举例:它的客户量在 5-7 亿,有 10-20 亿账户,在全国有 2-4 万个网点。从每秒峰值交易量来看,约为每秒 5-8 万笔交易。</p><p>具体到数据库层,反对以上业务还须要联机交易系统,例如存贷汇业务。数据库层最大的表有百亿级记录数,TPS 达到百万级。此外,对立查问业务要求反对近十年交易明细的查问,即万亿级的查问记录数。即便放到互联网公司用的通用服务器,也是须要上千台服务器能力撑持相干业务的发展。</p><p>通过以上的介绍,大家能够发现,银行客户的业务体量和数据量曾经达到了大型互联网公司的量级。如果想把这个零碎从大型机下移到通用服务器架构,那么原有的集中式架构必定是无奈满足的,必须像互联网公司一样采纳分布式架构。</p><p></p><p>因为银行有和大型互联网公司相近的业务体量,因而在技术体系上,也借鉴了互联网公司的技术体系。 </p><p>从 IaaS 层来看,银行采纳了 X86、ARM 架构的通用服务器,也用到了混合云技术,大量应用了虚拟机与容器服务。</p><p>在 PaaS 层,银行应用了大量的分布式系统,如开源的微服务框架(例如 SpringCloud ),以及开源的或者商业的数据库,包含分布式/单机/关系型/缓存型的数据库,以及日志数据库 ES、时序数据库等。在中间件层,也用到了大量的开源的或者基于开源革新后的组件,例如音讯队列、对象存储、分布式锁等。</p><p>在 SaaS 层,银行次要通过单元化 + 微服务的架构来实现分布式扩大。银行将本身业务利用划分成三种单元。</p><ul><li>最上层是全局单元,次要是起到全局路由及流量散发的作用。</li><li>第二层是业务单元,外围的业务逻辑都在该局部来实现。同时,为了实现业务的横向扩大并反对数亿客户量,银行业跟互联网公司一样,对业务进行单元化拆分。例如咱们接触到的某银行,就是将本身的业务拆分为了 16 个业务单元,每个单元五千万客户, 16 个单元部署在两个机房造成同城双活的架构。</li><li>最底层是公共单元,一些不太好或没必要做单元化拆分的利用,放在公共单元提供公共服务。</li></ul><p>通过上述剖析能够看到,在新一代银行外围零碎外面,整体的架构体系曾经和互联网公司很靠近了,大家用的都是雷同的技术栈,只是服务的业务场景不同。在将来,银行业跟互联网业的技术交流会进一步严密,人才的流动也会进一步频繁。</p><p></p><p>在业务采纳了单元化划分后,数据库的架构是怎么样的呢?目前在银行的新外围零碎下移中,次要采纳了以下两种数据库架构:</p><p>第一种是单机数据库架构。这种数据库架构比较简单,故障域较小,但相对来说业务零碎会比较复杂。因为有些模块,如全局路由模块,是全局的总入口,没法做单元化拆分。因而一组单机数据库无奈满足性能与容量需要,仍然须要在业务层做数据拆分。除此之外,单机数据库无奈齐全反对业务单元层的业务落地。后面提到,咱们接触到的某银行一个业务单元要承当五千万的客户数,一组单机数据库仍然无奈反对。于是在业务层进一步拆分为 4 组数据库共 64 张子表,业务层须要去解决大量的拆分及分布式事务相干的业务逻辑,整体就更简单了。</p><p>另外一种是分布式数据库架构。这样的数据库外部架构尽管更为简单,但它能够提供更好的性能。对业务层来说,一个单元采纳一组数据分布数据库即可,业务层的逻辑就更为简略了。</p><p>因而咱们认为,随着分布式数据库的逐渐成熟与利用逐步宽泛,业务单元化 + 分布式数据库会逐步成为风行的银行业务架构。</p><p></p><p>综上,银行外围零碎在下移的场景下,对数据库在如下几个方面提出了要求:</p><ul><li>第一是分布式扩展性。因为采纳了通用服务器,它的单机性能要远弱于大型机或者小型机。在这种状况下,数据库须要具备分布式可扩大的能力来满足上亿客户的金融需要。</li><li>第二是强一致性。金融场景对数据正确性、一致性的要求极高。因而要严格保障对事务的 ACID 个性。否则,业务层就要做大量的工作。</li><li>第三是容灾能力。通用服务器在硬件故障率方面要比大型机、小型机高很多。因而须要咱们的数据库有更为牢靠的可用机制以保障 SLA。同时,监管对于容灾能力的要求也在一直晋升。比方,对于新建设的外围零碎,监管要求必须满足 5 级以上的容灾能力,且满足同城双活并保障 RPO 为 0。在具体执行上,监管的要求也越来越严格,比方同城双活,之前是只须要具备相干的技术计划即可,但当初每年人行的监管都会间接到现场,要求做机房级实战故障切换。</li><li>第四是运维能力。零碎下移到通用服务器并实现去 IOE,数据库节点数量要呈现 50 倍的增长。以咱们的一个银行客户举例,从小型机下移后,数据库节点数从 20 增长到 1000(当然这外面也预留了几倍的性能增量)。在和客户的交换过程中,他们也认同这个观点,认为零碎下移后,节点数要增长一到两个数量级。但运维的人力不可能因而减少几十倍,在这种状况下,就要求咱们的运维效率要有质的晋升,须要可能智能化、自动化去做相干的运维工作。</li></ul><p></p><h2>2 分布式数据库 GaiaDB-X 的金融场景计划</h2><p>接下来咱们分享第二局部,分布式数据库 GaiaDB-X 针对金融场景的解决方案。 </p><p>GaiaDB-X 数据库是百度智能云研发的 Shared Nothing 架构的分布式数据库,它能够基于通用服务器做横向扩大,来满足高性能、大数据容量的需要。</p><p>总体来看它分为计算层、存储层、元数据三层架构:</p><ul><li>计算层是无状态、可横向扩大的一层。它对外兼容 MySQL 协定,接管到 SQL 申请后,再通过 SQL 解析、权限查看、逻辑优化、物理优化之后,生成 DistSQL 下发到各个存储层的分片。为了达到更好的性能,逻辑与物理上尽量将数据过滤及计算能力下推到存储层,收到后果后,再把数据进行聚合计算,最初返回给客户端。</li><li>计算层的上面是存储层。它采纳多分片的形式进行扩大,数据依照肯定的分片规定打散到了各个分片中。咱们反对 Hash、Range、List 等分区形式来做数据分区。同时,分片内数据采纳多正本的形式来保障可靠性。</li><li>第三是 GMS 节点,即全局元数据管理模块。它用来治理全局性数据,例如表的 Schema 信息、权限信息、表的路由信息,还有前面要介绍到的用于做分布式事务的全局逻辑序列号。GMS 也采纳多正本的形式,采纳 Raft 协定进行数据同步。</li></ul><p>在最底层是咱们的对立数据库管控平台,来实现对数据库集群的治理。比方在百度团体外部数十万的数据库节点,都是由该管控平台来治理的。</p><p></p><p>GaiaDB-X 数据库是百度团体倒退历史最久、利用最宽泛的一款数据库,到当初为止已有 18 年的倒退历史。它的倒退也与百度的业务倒退非亲非故,大略能够演绎为四个阶段:</p><ul><li>第一阶段是从 2005 年开始,为了满足搜寻、社区业务中大量读申请的场景,咱们通过一主多从的集群化外加读写拆散来扩大读性能。</li><li>第二阶段是为了反对凤巢广告零碎与百度网盘,满足它们对万亿级数据量的需要,咱们开始做分布式系统。到了 2014 年,咱们就曾经在凤巢广告零碎中替换了基于 Oracle 的盘柜,为凤巢每年节俭了上千万的老本。针对百度网盘,咱们有个 3000 台服务器的集群反对网盘业务,所有网盘文件的元数据信息都存储在这里,最大的表白到万亿级记录数,至今仍是国内最大的关系型数据库集群之一。</li><li>第三阶段是随着百度钱包等泛互联网业务的衰亡,对数据的一致性要求更高了。因而,咱们实现了分布式事务强统一的个性,保障金融数据的正确性。</li><li>第四阶段,也就是当初。随着百度智能云对外技术输入,咱们曾经把数据库输入到了十余个行业,笼罩 150 家客户。在金融行业,GaiaDB-X 曾经承接了金融外围业务,包含百信银行、银联商务、某交易所及国有行等。</li></ul><p></p><p>对于分布式数据库,程度扩大能力是其外围能力。除了在计算层与存储层做程度扩大外,咱们还要着力去解决影响咱们扩大能力的单点。</p><p>第一个是 GMS,即全局元数据模块。因为它要提供一个全局递增的全局逻辑时钟,每一次事务都须要调用它。为了防止其成为瓶颈,咱们采纳批量预调配的形式来晋升其总吞吐,在此模式下,其每秒可调配 1200 万个 TSO 序号,远超出百万级 TPS 的需要。</p><p>第二个是全局事务表。为了保障分布式事务的原子性,咱们须要将正在进行中的事务保留到一张全局表中,因而它的性能也会间接影响到全局性能。咱们采纳自治理的形式,将全局事务表做成分布式表,分布式地存储在集群中,这样就能够实现分布式扩大。</p><p>在理论利用中,比如说像 19 年的春晚抢红包,咱们反对了三亿用户抢红包,撑持了峰值达每秒 12 万交易量。除此之外,针对某银行领有 8000 万账户的外围账务零碎,咱们也安稳反对了其 6 万每秒的 TPS ,充沛验证了 GaiaDB-X 的程度扩大能力。</p><p></p><p>除分布式外,咱们也反对单机场景,实现了单机分布式一体化。为什么须要单机分布式一体化呢?以咱们的一个银行客户来说,全行的业务零碎有 200 多个,其中大部分零碎(大略占 70% 左右)对性能与吞吐的要求并不高,一组单机数据库就可能满足其业务需要。但对于剩下的 30% 业务,它对性能的要求是单机数据库无奈满足的,须要分布式数据库来满足其扩展性。</p><p>因而咱们通过一体化的形式,来满足银行不同体量的业务对于数据库的需要。同时,咱们也具备单机数据库扩大为分布式的能力,在对应业务的数据量增长后,可能扩容为分布式。</p><p></p><p>扩展性的另外一个目标是主动做数据拆散。在金融场景外面,存在多个业务共用一个数据库集群的场景,比方业务分为联机交易系统与查问类零碎,数据库便对应划分为交易库和历史库两个。</p><p>对于交易库来说,只保留联机交易会频繁应用到的数据。例如账务后果数据及当天的交易记录,以满足对交易业务的疾速响应。对于查问不那么频繁的即时交易记录,这可能就是一个相当大的数据量,个别都能达到千亿甚至万亿级别。这时,咱们就能够将这个数据主动转移到历史库下来,用更高密度的存储机型来存储。一方面能够升高硬件老本,同时也能够防止对联机业务的影响。</p><p>这样做对业务来说,对外出现的是一套数据库,业务能够依据须要来解决不同数据分区的逻辑,也不必在多套库之间通过 DTS 做数据同步。同时还把交易数据和历史数据做拆散,以保障对联机业务的性能,同时也满足了查问业务的查问需要,防止其相互影响。</p><p></p><p>在金融场景中,对事物的 ACID 个性有着严格的要求:</p><ul><li>持久性。指的是事务一旦提交就不会失落,个别通过多正本 + 强同步来解决。</li><li>原子性。一个事务要么全副提交,要么全副回滚,不存在局部提交的状况。通常,数据库的 XA 协定,通过两阶段提交能解决这个问题。</li></ul><p>然而 XA 协定不能很好地满足一致性与隔离性。以简略的转账场景为例,A、B 原来各有 100 块钱,总共 200 块。而后 A 给 B 转账 50 块钱。此时,咱们会先给 A 扣 50,再给 B 加 50。如果通过 XA 协定来做的话,先走 prepare 再 commit,咱们能够看到,commit(图中第 7、第 8 步)过程不是原子过程,存在一个执行时间差。在这个时间差内,另外一个事务去读取数据,就可能存在读到提交了一半的数据,A 和 B 的总和是 150 而不是 200。这是 XA + 2PC 解决不了的问题。</p><p>为了解决这个问题,业内个别是引入一个全局时钟来做一致性的保障。通常有三种实现形式:</p><ul><li>TrueTime 计划。这个是大家比拟相熟的计划,Google Spanner 也发过论文。但它的缺点是依赖硬件,要引入 GPS 与原子钟,这个一般来说是难具备的。</li><li>HLC 计划。采纳该计划的典型数据库系统是 CockroachDB,它的长处是不依赖硬件,而且是去中心化的。然而毛病也很显著,一致性比拟弱,而且要求服务器间的时钟误差不能超过 250ms,否则就无奈失常运行。</li><li>TSO 计划,比方 TiDB 就是采纳了这种计划。TSO 实质上来说是一个全局惟一而且自增的逻辑序列号,一个事务在开始时与事务 commit 时须要两次找 GMS 获取序列号,而后把 TSO 号作为版本号提交到存储层,存储层的 MVCC 机制来判断数据是否可见。它不须要硬件具备强一致性,但毛病是依赖一个全局核心的时钟分配器 GMS。但这并不是一个问题,因为刚刚咱们也提到了,尽管 GMS 不具备扩展性,1200 万的 TPS 曾经齐全满足业务的惯例须要了。因而咱们最终采纳了这种计划。</li></ul><p></p><p>除了保障事务的一致性外,咱们还须要保障上下游零碎的数据一致性。在开始之前,咱们首先要讲一下银行的典型业务场景,它个别分为三个子系统:</p><ul><li>第一个是联机交易系统,例如存取款、在线领取等。这个零碎的并发量高、提早敏感,间接影响到用户体验。</li><li>第二个是跑批类的业务零碎。例如结息,每天晚上中午计算前一天的利息。这些业务是后盾业务,有大量的读取与计算操作,提早不敏感,然而对数据一致性要求高。怎么可能让这样的业务尽量避免对在线业务的影响,同时又可能读取到最新的数据呢?咱们的形式是让跑批业务去读取从库数据,从而防止对主库的性能影响,同时联合 TSO,即全局逻辑时钟的对位对齐机制。等到从库水位追齐之后,才返回读取数据。当然这会引入肯定的延时,然而因为跑批业务对响应延时不那么敏感,所以是能够承受的。</li><li>第三个子系统是大数据类的离线业务。通常来说,就是银行外部的各种大数据、数仓等零碎,须要把数据库的数据同步过来。这样的业务对实时性要求不高,但要求最终的数据是统一的。因为各个计算节点都会承当流量,也会生成 BinLog。因而,如何对多份 BinLog 进行排序,让它们可能严格放弃时序是咱们须要解决的问题。咱们的全局 BinLog 有两个模块,一个是 pump,从各个CN 节点抽取 BinLog,而后在 Sorter 节点基于 TSO(全局逻辑时钟)进行排序,来保障造成一个全局时序正确的 BinLog,以保障这个离线零碎收到的数据的最终正确性。</li></ul><p></p><p>接下来咱们看一下容灾能力,除了对单机故障的容灾之外,还有对特定机型的容灾。因为银行把零碎下移到通用服务器,通常都是通过两阶段来施行:第一阶段是下移到 X86 的 CPU 芯片上,这个过程银行、互联网厂商都肯定的教训。第二阶段是要实现服务器芯片的根本国产化,就是说应用国产的鲲鹏、飞腾或海光 CPU 芯片,这方面大家都是在探索性的发展相干业务。</p><p>以百信银行举例,它与其母行中信银行一样,抉择了基于鲲鹏做国产化的路线,而且在业内比拟超前。相较于其余银行仅在周边零碎或者数据库从库来做国产化,百信银行的周边业务跟外围零碎都和主站一样基于鲲鹏服务器来做,这个在业内是较为当先的。</p><p>为了保障客户业务零碎实现平滑的国产化,咱们在产品上实现了一库多芯的计划,次要资源池基于鲲鹏,但搁置了一个独立 X86 资源池,在技术上实现托底,同时也可能将原有换下来的服务器可能利用上,防止资源节约。</p><p></p><p>依据人行的监管要求,银行外围零碎个别要具备 5 级以上的容灾能力,这就要求具备两地三核心的容灾能力。</p><p>下图是咱们客户的一个典型机房部署架构。首先在北京有两个同城机房,其物理间隔在 50-100 公里左右,网路提早在 1ms 左右。同时还有一个异地机房做灾备,物理间隔个别是 1000 公里左右,比方合肥,网络延时是 10ms。</p><p>同城两个机房业务做双活部署,同时承受业务流量。数据库在两个机房采纳 3 + 2 的部署模式,机房间采纳强同步的形式来保障在产生机房级的故障之后,数据库能进行故障切换,而且保障数据的 RPO 为 0。</p><p>为保障单机房故障后的零数据失落,咱们采纳分组强同步的形式,将 id1、id2 各划分一个复制组,复制组间采纳强同步的形式。每个复制组保障至多有一个正本接管到数据之后才返回胜利。这样在容忍多数正本故障的同时也可能保障单个机房故障后的零数据失落。</p><p>异地机房的指标是当北京的两个机房都呈现灾难性的事件之后,可能降级实现外围业务。它采纳异步级联的形式来同步数据,首先异步是为了防止阻塞对主地区的数据库写入;采纳级联形式,没有跟主地区机房造成复制组,次要一个为了放弃灾备机房的数据库的拓扑独立性,缩小依赖,保障在关键时刻可切换,另外也是升高跨地区同步的数据量,只须要同步一份数据即可。</p><p>联合在多家金融客户的实际,咱们和中国信通院一起公布了金融数据库的容灾技术报告《金融级数据库容灾备份技术报告(2021 年)》。大家能够在公众号后盾回复「金融级数据库容灾备份技术报告」获取。</p><p></p><p>最初一部分是运维能力。外围零碎下移及国产化的背景之下,数据库系统出现两个变动:</p><p>一是数据库的节点数呈现了 50 倍的增长,这外面既有技术架构的起因,也有数据库预留了肯定的性能空间的起因。</p><p>二是数据库的品种也变多了。对于银行零碎来说,之前根本就是抉择 Oracle 或 DB2。当初则开始应用多种开源数据库和国产数据库。除此之外,为了防止像之前一样被繁多厂商绑定,银行也会特意抉择多家数据库厂商,在这种状况下,对银行的运维的挑战就更大了。</p><p>因而,联合百度团体及百度智能云治理大规模数据库节点方面的教训,咱们将 GaiaDB-X 数据库云管平台进一步泛化,造成了具备治理多元数据库能力的对立平台,它除了可能治理 GaiaDB-X 本身,也能治理其余的开源数据库。通过帮忙银行建设企业级的 DBPaaS 治理平台,进一步晋升了银行的运维效率。</p><p></p><h2>3 金融利用案例介绍</h2><p>接下来,我来分享百度智能云在金融方面的一些典型案例。 </p><p>首先是百信银行。它的特点是齐全去 O,是一家齐全没有 Oracle 的银行。全行 200+ 业务零碎,无论是外围账务零碎还是周边零碎,简直全副是基于 GaiaDB-X 数据库来构建的,至今曾经安稳运行五年。</p><p>按数据库节点数计算,百信银行目前的数据库国产化率达到了 99.93%,遥遥领先于行业平均水平。</p><p>同时,百信银行在容灾和国产化畛域也比拟当先,在 2019 年就实现了全行次要零碎的同城双活建设,2022 年开始将全行业务逐渐迁徙到基于鲲鹏的国产云上,进而实现了全栈的国产化。</p><p>在硬件老本方面,咱们通过采纳通用服务器来代替 IOE 硬件,帮忙百信银行的单账户均匀硬件老本升高了 70% 以上。</p><p></p><p>下图是人行上面直属的某交易所。因为是波及到国家金融稳固,所以在外围零碎上须要逐渐解脱对 Oracle 的依赖,并领有两地三核心的容灾能力。</p><p>因为以后的一些数据库都不能满足他们的业务场景需要,因而该交易所和百度采纳了联合开发的模式,共建数据库能力。在两年的单干过程中,咱们从外围的信息管理系统动手,逐渐深刻到外围交易系统,再到离线库数据分析系统,进而逐渐实现数据库国产化。</p><p>此外,因为交易所的交易系统对低延时的要求较高,同时基于容灾要求又有同城双活的要求,如何在跨机房的状况下保障交易延时就成了亟待解决的问题。因而咱们独特建设了 Collocate 机制,来尽量减少跨机房数据的拜访,最终将交易延时从 80 毫秒升高到了 15 毫秒。</p><p></p><p>下图是国内某国有大行客户。他们在最近两年把原有的基于小型机的外围零碎下移到了通用服务器中,数据库也从 Oracle 代替为了开源单机数据库。</p><p>但在这个过程中,该行面临两个问题:一是数据库节点数增长了 50 倍,服务器数量达到了 1000 台左右,如何做好数据库的自动化部署、上线变更、版本升级、参数治理、性能诊断等工作。二是如何联合业务的单元化,造成业务与数据库的同城双活与异地容灾能力。</p><p>借助百度智能云提供的对立数据库管控平台的能力,历时两年,咱们与客户一起实现了新外围零碎的全面投产,也顺利通过了人行的验收。</p><p></p><p>以上是明天分享的全部内容。</p><p>——————END——————</p><p><strong>举荐浏览</strong></p><p>云上业务一键性能调优,应用程序性能诊断工具 Btune 上线</p><p>一文详解动态图和动态图中的主动求导机制</p><p>千万级高性能长连贯Go服务架构实际</p><p>百度搜寻Push个性化:新的冲破</p><p>百度智能云千帆 AppBuilder 构建 AI 原生利用开发新范式</p></article> ...

March 5, 2024 · 2 min · jiezi

关于数据库:数据库有哪些分类呢

<article class=“article fmt article-content”><p>你用过或者理解的数据库都有哪些?</p><p></p><p>数据库最新统计数量约404个(https://db-engines.com/en/ranking)<br/>排名前20的数据库管理系统:</p><p></p><p>数据库大事记</p><p></p><p>数据库分类分类办法为:按数据模型分类、按业务类型分类、按部署形式分类、按存储介质分类。<br/>按数据模型分类</p><p></p><p>按业务类型分类</p><p></p><p>按部署形式分类</p><p></p><p>按存储介质分类</p><p></p></article>

March 5, 2024 · 1 min · jiezi

关于数据库:ftp几个常见错误问题及解决办法

<article class=“article fmt article-content”><p>1、无奈上传网页,FTP故障-提醒“无奈连贯服务器”谬误。</p><p>问题呈现起因:FTP客户端程序设置问题,客户上网线路问题,ftp服务器端问题。 </p><p>解决办法:倡议客户应用CUTPFTP软件来上传客户的网页,在“FTP主机地址处”最好填写IP地址,如果客户上传时提醒socket谬误的话,请您检查一下您应用软件的编辑菜单下的连贯中防火墙里是否有一个应用了pasv模式,如果选中的话,您把此选项勾销即可连贯主机。</p><p>2、FTP时曾经通过身份验证,但总列不出目录?</p><p>问题呈现起因:您应用的上传软件的FTP客户端程序不应该选用PASV mode和firewall setting </p><p>解决办法:倡议应用Cuteftp4.2软件,在Edit->Setting…->Connection->Firewall去掉”PASV mode”这个选项即可。</p><p>3、为什么无奈上传,提醒连贯时找不到主机?</p><p>首先请您检查一下您的域名是否做过域名解析,检测办法:您能够在DOS提示符下输出ping域名如果能够ping通的话,则您能够在FTP软件中“FTP主机地址处”填写您的域名,如果ping不通的话,则您须要在“FTP主机地址处”填写您主机的IP地址。 </p><p>留神:咱们建议您应用IP地址上传页面,同时,某些地区的拨号上网的169对ftp有限度。所以请您最好更换上网形式后在进行测试。</p><p>4、为什么无奈上传,提醒明码不对?</p><p>请查看您的登陆名明码填写是否正确,因为如果明码是复制的话,可能会复制出空格。另外,咱们给您的初始密码都是一个英文一个数字8位数排列的,兴许是字母l被认为是数字1。最初,您要看一下您在ftp登陆时抉择的登陆类型是否是一般。 </p><p>如果您把明码遗记的话,您能够登陆会员专区-主机服务-主机治理-主机登陆名中查问您的明码。 </p><p>5、我的网站FTP明码验证可通过,只是在最初不能目录列表列出,显示:LLIST425,这是什么起因?</p><p>是因为您的虚拟主机空间已用完造成的,请应用FTP登陆,删除一些不必要的文件即可。</p><p>6、上传的文件超过我的磁盘限额会呈现什么状况?</p><p>您将失去零碎提醒,无奈再上传任何货色(文件上传后的字节数为零)。</p><p>7、上传网页后,拜访后果为”Forbidden”(禁止拜访),是什么起因?</p><p>问题呈现起因:这种后果是因为您相应的目录下,短少一个索引文件,其名称必须是index.html,index.htm或index.shtml中的一个,短少索引文件,服务器就会出这种提醒,以防止他人看到您的目录下有那些文件。 </p><p>解决办法:请您将文件名改成index.html。</p><p>8、怎么晓得我上传到主机上的文件的总容量?</p><p>能够通过虚拟主机控制面板中的FTP信息管理查看空间占用状况。</p><p>9、FTP登陆时提醒SOCKET谬误。</p><p>如果您上传文件时零碎提醒socket谬误,那么请您检查一下您应用软件的编辑菜单的连贯中是否抉择了应用防火墙设置以及应用PASV模式设置,如果您以前是选中的,您把此两个选项勾销,而后再从新进行连贯即可。如果您本机装置了诺顿等杀毒软件,也请您临时将其敞开。</p></article>

March 4, 2024 · 1 min · jiezi

关于数据库:IP地址与用户行为探索网络世界中的联系

<article class=“article fmt article-content”><p>在互联网时代,IP地址是连贯世界的桥梁,而用户行为则是网络世界的实在体现。IP数据云将深入探讨IP地址与用户行为之间的关系,以及它们在网络生态中的重要作用。<br/>IP地址的作用与特点<br/>IP地址是互联网上设施的惟一标识符,相似于事实世界中的门牌号码。每台连贯到互联网的设施都有一个独特的IP地址,通过它能够定位到设施所在的地理位置和网络信息。IP地址承载着网络通信的重要工作,是信息传递的根底。<br/><br/>用户行为的多样性与重要性<br/>用户行为是在网络中用户所展现出的一系列操作和流动,涵盖了浏览网页、搜寻信息、交互社交等方方面面。用户行为的多样性使得网络生态更加丰盛和多元化,同时也反映了用户的需要和趣味,对于互联网企业的经营和倒退至关重要。<br/>IP地址与用户行为的分割</p><ol><li>惟一标识符:IP地址作为设施的惟一标识符,能够与特定用户的行为进行关联,帮忙剖析用户的流动轨迹和习惯。</li><li>地理位置信息:通过IP地址能够获取用户的地理位置信息,从而理解用户所处的区域和环境,为个性化举荐和定位营销提供根据。</li><li>行为剖析与安全监控:联合IP地址和用户行为数据,能够进行行为剖析和安全监控,及时发现异常行为和平安威逼。<br/>IP危险画像、IP归属地查问:https://www.ipdatacloud.com/?utm-source=Lik&utm-keyword=?880<br/>IP地址与用户行为的利用场景</li><li>个性化举荐:基于用户的地理位置和行为数据,进行个性化举荐,进步用户体验和购买转化率。</li><li>网络安全:通过剖析IP地址和用户行为,辨认异样流动和攻击行为,增强网络安全防护。</li><li>市场营销:利用IP地址和用户行为数据,进行精准定位和指标营销,进步市场营销效率和ROI。<br/>IP地址与用户行为之间存在着亲密的分割,相辅相成,独特构建了丰富多彩的网络世界。充分利用IP地址和用户行为数据,能够帮忙企业更好地了解用户,进步产品和服务的精准度和个性化水平,促成企业的继续倒退和翻新。同时,也须要留神爱护用户隐衷和数据安全,非法合规地使用用户数据,为用户提供更平安、更牢靠的网络环境。</li></ol></article>

March 4, 2024 · 1 min · jiezi

关于数据库:Apache-SeaTunnel-234-版本发布功能升级性能提升

<article class=“article fmt article-content”><p>Apache SeaTunnel团队骄傲地发表2.3.4版本正式公布!本次更新聚焦于加强外围性能,改善用户体验,并进一步优化文档品质。</p><p></p><p>此次版本公布带来了多项重要更新和性能加强,包含外围与API的修复、文档的全面优化、<code>Catalog</code>反对的引入,以及多表同步的实现等,旨在为开发者提供更加弱小和便捷的数据处理能力。</p><h2>外围性能一览</h2><h3>文档</h3><ul><li><strong>文档构造对立</strong>:咱们对文档构造进行了全面优化,使构造更加清晰,便于开发者查找和浏览。</li><li><strong>减少示例</strong>:每个要害个性当初都附带了相应的示例,帮忙开发者更好地了解和利用。</li><li><strong>JDBC连接器文档拆分</strong>:针对不同数据库的非凡参数,咱们对JDBC连接器文档进行了拆分,每个数据库都有专门的文档。</li><li><strong>设计文档同步到Wiki</strong>:为了不便开发者浏览和进行二次开发,咱们将设计文档同步到了Wiki。</li></ul><h3>Catalog反对</h3><p>重构代码增加了Catalog接口 设计文档: https://cwiki.apache.org/confluence/display/SEATUNNEL/STIP5-R...</p><ul><li>获取到的表构造更准确,表构造的主动迁徙、转换成为可能。</li><li>对立CatalogTable的利用,模型推演贯通整个数据流。</li><li>多表同步有了实现的构架根底。</li></ul><h3>多表同步——多表读取</h3><p>反对在一个Source中配置读取多张表 </p><p>设计文档:https://cwiki.apache.org/confluence/display/SEATUNNEL/STIP4-J…</p><p></p><h3>多表同步——多表写入</h3><p>反对在一个Sink多表写入:更省资源(无网络IO开销,JDBC连接数可控)</p><p>设计文档:https://cwiki.apache.org/confluence/display/SEATUNNEL/STIP3-S…</p><ul><li>反对多个表之间JDBC连贯共享</li><li>CDC同步场景下,Sink反对单表多线程解决,晋升写入性能。</li><li>反对指定线程数,线程资源更可控</li></ul><p></p><h3>SaveMode</h3><p><strong>设计文档</strong>: https://cwiki.apache.org/confluence/pages/viewpage.action?pag...</p><p></p><ul><li>已有表构造解决,反对指标表不存在时主动创立。真正的解放两手。</li><li>已有数据处理,反对删除数据,追加写入</li><li>自定义SQL(相当于presql性能)</li></ul><p></p><p></p><h3>离线同步</h3><p>基于主键和惟一索引的主动分片,升高应用门槛:无论是离线同步还是CDC同步的历史同步阶段,SeaTunnel都会主动通过catalog获取表构造信息查问表中的主键和惟一索引字段。SeaTunnel会优先应用主键字段进行分片,没有主键字段时应用惟一索引字段进行分片。如果有联结主键或联结惟一索引,默认应用第一个字段进行分片。</p><p>更多的分片算法反对,之前的版本中当表中的数据分布不平均时(散布因子与1的差别较大)会通过SQL在源表进行抽样的形式进行分片,这种形式须要用到源数据库的打算资源,通过测试8c16g的mysql数据库中一张有5亿行记录的表抽样的SQL须要几个小时能力计算出后果,为了解决这个问题SeaTunnel放弃了应用SQL在源表进行抽样的算法,改为间接查问分片字段的所有值,并在SeaTunnel中进行抽样,能够将抽样的工夫缩短到20分钟以内。</p><p>反对敞开checkpoint,再也不会checkpoint超时了:2.3.3版本及以前的版本,SeaTunnel离线同步工作也默认开启了checkpoint,因为checkpoint机制依赖正当的分片设置,在抽取的表无奈进行分片或者因为设置不当导致单个分片过大时,就会导致checkpoint超时,影响同步工作稳定性。2.3.4版本中默认敞开了离线同步的checkpoint性能,不再会呈现checkpoint超时的问题。如果用户心愿离线同步可能断点续传,能够通过参数设置手工开始checkpoint性能。</p><p>反对工作级别的checkpoint超时设置。能够给每个工作设置不同的checkpoint超时时长。</p><h3>CDC同步</h3><ul><li>更多的数据库反对</li></ul><p>PostgreSQL CDC</p><p>Oracle CDC</p><ul><li>Flink引擎反对运行CDC工作</li></ul><h2>2.3.4版本更新阐明</h2><h3>Bug 修复</h3><h4>Core</h4><ul><li><code>[Core] [API]</code> 修复了列表中泛型类失落的问题 (#4421)</li><li><code>[Starter]</code> 修复了在 [] 中 “,” 被分隔的问题 (#5401)</li><li><code>[Core] [API]</code> 修复了 ReadonlyConfig 键失落谬误 (#5565)</li><li><code>[Core] [API]</code> 修复了从 LinkHashMap 获取字节的问题 (#5622)</li><li><code>[Core] [API]</code> 修复了多表接收器敞开时的日志谬误 (#5683)</li><li><code>[Core] [API]</code> 修复了 MultiTableSink 返回提交器但接收器不反对的问题 (#5710)</li><li><code>[Core] [API]</code> 修复了解析不反对类型的模式时的谬误音讯 (#5790)</li><li><code>[Core] [API]</code> 修复了 <code>OptionUtilTest.test</code> 的不稳固测试 (#5894)</li><li><code>[Core] [API]</code> 修复了 SaveModeHandler 未敞开的问题 (#5843)</li><li><code>[Core] [API]</code> 修复了 MultiTableSinkWriter 线程索引始终为 1 的问题 (#5832)</li><li><code>[Core] [API]</code> 修复了 <code>SeaTunnelRow::getBytesSize</code> 不反对映射接口的问题 (#5990)</li><li><code>[Core] [Common]</code> 修复了 <code>FileUtils::createNewFile</code> 未创立新文件的问题 (#5943)</li><li><code>[Core] [API]</code> 修复了 Debezium 格局无奈解析日期/工夫/工夫戳的问题 (#5887)</li><li><code>[Starter]</code> 当在双引号内时,’,’ 被视为一般字符而不是分隔符 (#6042)</li><li><code>[Core] [Common]</code> 替换 CommonErrorCodeDeprecated.JSON_OPERATION_FAILED (#5978)</li><li><code>[Core] [API]</code> 修复 <code>Object.class</code> 选项值无奈返回正常值的问题 (#6247)</li></ul><h4>转换器-V2</h4><ul><li><code>[All]</code> 修复转换中的 PrimaryKey 问题 (#5704)</li><li><code>[All]</code> 修复转换为工夫戳、日期、工夫的 bug (#5812)</li></ul><h4>格局</h4><ul><li><code>[Text]</code> 容许映射中的条目为 null 并容许条目中的键为 null (#5277)</li></ul><h4>连接器-V2</h4><ul><li><code>[Connector-V2] [Clickhouse]</code> 修复了 Clickhouse 旧版本兼容性问题 (#5326)</li><li><code>[Connector-V2] [Clickhouse]</code> 修复了 http 头笼罩问题 (#5446)</li><li><code>[Connector-V2] [StarRocks]</code> 修复了 starrocks 模板 sql 解析器问题 (#5332)</li><li><code>[Connector-V2] [Hive]</code> 修复了 hive-site.xml 无奈注入 HiveConf 的问题 (#5261)</li><li><code>[Connector-V2] [Clickhouse]</code> 修复了 clickhouse 接收器刷新 bug (#5448)</li><li><code>[Connector-V2] [Hive]</code> 修复了读取空目录时产生的谬误 (#5427)</li><li><code>[Connector-V2] [Oss jindo]</code> 修复了 jindo 驱动下载失败的问题 (#5511)</li><li><code>[Connector-V2] [Oss jindo]</code> 移除无用代码 (#5540)</li><li><code>[Connector-V2] [File]</code> 修复了 WriteStrategy 并行写入线程不平安问题 (#5546)</li><li><code>[Connector-V2] [CDC]</code> 修复了原始表删除字段时 CDC 呈现的 NPE bug (#5579)</li><li><code>[Connector-V2] [Jdbc]</code> 修复了 oracle catalog 创立表反复和 oracle pg 空指针问题 (#5517)</li><li><code>[Connector-V2] [CDC]</code> 修复了 cdc 枚举器中线程不平安的汇合容器问题 (#5614)</li><li><code>[Connector-V2] [Mongodb]</code> 修复了由 bsonNull 引起的不反对异样 (#5659)</li><li><code>[Connector-V2] [File]</code> 修复了文件接收器 <code>isPartitionFieldWriteInFile</code> 在未给出列时呈现的异样 (#5508)</li><li><code>[Connector-V2] [Doris]</code> 修复了 RestService 报空指针异样 (#5319)</li><li><code>[Connector-V2] [MaxCompute]</code> 修复了 MaxCompute 应用不存在的 SCHEMA 选项 (#5708)</li><li><code>[Connector-V2] [Doris]</code> 应用 try-with-resources 简化代码 (#4995)</li><li><code>[Connector-V2] [Clickhouse]</code> 修复了 clickhouse-sink 输入数据字段程序错乱的 BUG (#5346)</li><li><code>[Connector-V2] [Jdbc]</code> 反对 postgresql xml 类型 (#5724)</li><li><code>[Connector-V2] [Jdbc]</code> 可空列源数据中的 null 数据可能导致意外后果 (#5560)</li><li><code>[Connector-V2] [Iceberg]</code> Iceberg 源在并行度选项下数据失落 (#5732)</li><li><code>[Connector-V2] [Jdbc]</code> 修复 PG 应用主动创立表时不会创立索引 (#5721)</li><li><code>[Connector-V2] [Jdbc]</code> 修复数据库标识符 (#5756)</li><li><code>[Connector-V2] [CDC]</code> 修复增加新表时 MultiTableSink 复原失败 (#5746)</li><li><code>[Connector-V2] [CDC]</code> 修复 Postgres 创立表测试用例失败 (#5778)</li><li><code>[Connector-V2] [CDC]</code> 清理未应用的代码 (#5785)</li><li><code>[Connector-V2] [CDC]</code> 修复从单表切换到多表时状态复原谬误 (#5784)</li><li><code>[Connector-V2] [ElasticSearch]</code> 修复 elasticsearch 数组格局的转换异样 (#5825)</li><li><code>[Connector-V2] [Jdbc]</code> 修复从 Oracle 读取日期类型值时失落工夫 (#5814)</li><li><code>[Connector-V2] [Pulsar]</code> 修复:更新 IDENTIFIER = Pulsar,对于 pulsar-datasource 在我的项目:seatunnel-web (#5852)</li><li><code>[Connector-V2] [Jdbc]</code> 修复 Hive-Jdbc 应用 krb5 时笼罩 kerberosKeytabPath (#5891)</li><li><code>[Connector-V2] [InfluxDB]</code> 解决在 initColumnsIndex 办法中间接应用 ’tz’ 函数附加 QUERY_LIMIT 导致的有效 SQL (#4829)</li><li><code>[Connector-V2] [Jdbc]</code> 修复 cdc 更新时未过滤雷同主键 (#5923)</li><li><code>[Connector-V2] [File]</code> Parquet 读取器解析数组类型异样 (#4457)</li><li><code>[Connector-V2] [Http]</code> 修复 http 配置无 schema 选项的 bug 并改良 e2e 测试增加案例 (#5939)</li><li><code>[Connector-V2] [Doris]</code> 修复 DorisCatalog 未实现 <code>name</code> 办法 (#5988)</li><li><code>[Connector-V2] [TDengine]</code> 修复多个并行度影响驱动加载的水平 (#6020)</li><li><code>[Connector-V2] [Jdbc]</code> 修复 jdbc setFetchSize 谬误 (#6005)</li><li><code>[Connector-V2] [CDC]</code> 修复 CDC 作业复原运行后无奈生产增量数据 (#625) (#6094)</li><li><code>[Connector-V2] [File]</code> 修复从 Excel 文件读取异样数据的问题 (#5932)</li><li><code>[Connector-V2] [CDC]</code> 修复为复原作业增加表时导致的 NPE (#6145)</li><li><code>[Connector-V2] [Jdbc]</code> 修复 dameng catalog 查问表 sql (#6141)</li><li><code>[Connector-V2] [Jdbc]</code> 更新 pgsql catalog 以反对保留模式 (#6080)</li><li><code>[Connector-V2] [Jdbc]</code> 修复在大量反复数据状况下的 Spliter 谬误 (#6026)</li><li><code>[Connector-V2] [CDC]</code> 修复作业复原后增加的列无奈解析 (#6118)</li><li><code>[Connector-V2] [CDC]</code> 修复 CDCRecordEmitDelay 指标中的负值 (#6259)</li><li><code>[Connector-V2] [CDC]</code> 修复没有主键时有效的拆分键 (#6251)</li></ul><h4>Zeta(ST-引擎)</h4><ul><li><code>[Zeta]</code> 修复 NotifyTaskRestoreOperation npe (#5362)</li><li><code>[Zeta]</code> 修复 Zeta 会敞开工作两次的谬误 (#5422)</li><li><code>[Zeta]</code> 禁用 CheckpointTimeOutTest (#5438)</li><li><code>[Zeta]</code> 修复 CDC 工作复原抛出 NPE (#5507)</li><li><code>[Zeta]</code> 同一类型的多个接收器动作具备雷同名称 (#5499)</li><li><code>[Zeta]</code> Checkpoint 异样状态音讯不包含状态数据 (#5547)</li><li><code>[Zeta]</code> 修复与检查点相干的内存透露问题 (#5539)</li><li><code>[Zeta]</code> 修复检查点被长时间阻塞的问题 (#5695)</li><li><code>[Zeta]</code> 修复作业状态不稳固的问题 (#5450)</li><li><code>[Zeta]</code> 修复提交作业 API (#5702)</li><li><code>[Zeta]</code> 将默认 DeployMode 设置为 DeployMode.CLIENT (#5783)</li><li><code>[Zeta]</code> 应用中文名称提交作业时,rest api 返回乱码名称 (#5870)</li><li><code>[Zeta]</code> 修复 CheckpointCoordinator 在未存在待处理检查点时报告 NPE (#5909)</li><li><code>[Zeta]</code> 修复提交作业时存在雷同作业名称的谬误 (#6041)</li><li><code>[Zeta]</code> 修复因为没有状态参数而导致返回列表为空的问题 (#6040)</li><li><code>[Zeta]</code> 修复 zeta 调度器 bug (#6050)</li><li><code>[Zeta]</code> 修复作业在最初一个检查点失败时无奈复原的问题 (#6193)</li><li><code>[Zeta]</code> [Rest-API] 从非流动主节点提交或进行作业 (#6217)</li></ul><h4>E2E</h4><ul><li><code>[E2E] [Common]</code> 更新 seatunnel 引擎的测试容器版本 (#5323)</li><li><code>[E2E] [Jdbc]</code> 修复 jdbc 套件测试实现后未移除 docker 镜像的问题 (#5586)</li><li><code>[E2E] [ClickHouse]</code> 加强 ClickHouse E2E 测试以触发多个检查点 (#5476)</li><li><code>[E2E]</code> 修复 jdbc 套件测试实现后未移除 docker 镜像的问题 (#5586)</li><li><code>[E2E]</code> 修复 <code>ConnectorPackageServiceContainer</code> 未实现 getSavePointCommand/getRestoreCommand 的问题 (#5780)</li><li><code>[E2E]</code> 修复因 <code>JdbcHiveIT</code> 和 <code>SparkSinkTest</code> 导致的构建失败 (#5798)</li><li><code>[E2E]</code> 修复提交作业案例谬误 (#6059)</li><li><code>[E2E]</code> 修复与动作相干的谬误 (#6264)</li><li><code>[E2E]</code> 将 mysql 容器版本锁定为 8.0 (#6263)</li></ul><h4>CI</h4><ul><li><code>[CI]</code> 修复 jindo oss 连接器名称问题 (#5385)</li><li><code>[Build]</code> 修复 fork 仓库不是最新时的谬误音讯 (#5497)</li><li><code>[CI]</code> 修复 CI 在 fork 仓库中运行时未查看文件更改的问题 (#5515)</li><li><code>[CI]</code> 移除 jindo 依赖 (#5528)</li><li><code>[CI]</code> 修复 phoenix ci 谬误 (#5530)</li><li><code>[Build]</code> 更新构建版本为 2.3.4-SNAPSHOT (#5619)</li><li><code>[Build]</code> 确保 install-plugin.sh 脚本与 Debian 上的 sh 兼容 #5630 (#5631)</li><li><code>[CI] [Chore]</code> 移除无用的 sonar 查看脚本 (#5665)</li><li><code>[Chore]</code> 移除 DISCLAIMER 文件 (#5673)</li><li><code>[CI]</code> 修复 CI 不稳固问题 (#5896)</li><li><code>[Build]</code> 修复 config/plugin_config 中的空行导致的构建失败 (#5921)</li><li><code>[CI]</code> 修复 CI 未在更改 api 时运行 Kudu/AmazonSQS IT 的问题 (#5955)</li><li><code>[CI]</code> 将 doris e2e 分成独自的模块 (#5999)</li><li><code>[CI]</code> 修复死链接查看器失败 (#6016)</li><li><code>[CI]</code> 修复 e2e 谬误 (#6018)</li><li><code>[Build]</code> 更新 pom.xml (#6113)</li><li><code>[Build]</code> 解决示例运行失败的问题 (#6173)</li><li><code>[Build]</code> 修复构建谬误 (#6196)</li><li><code>[CI]</code> 修复引擎客户端未敞开的问题 (#6241)</li></ul><h4>示例</h4><ul><li><code>[Examples]</code> 批改转换 URL 链接 (#5298)</li></ul><h3>改良</h3><ul><li><code>[Improve][CheckStyle]</code> 移除 checkstyle 中无用的 ‘SuppressWarnings’ 注解 (#5260)</li><li><code>[Improve][CheckStyle]</code> 调整 spotless 插件的阶段以实用于公布插件 (#5607)</li></ul><h4>Core</h4><ul><li><code>[Core] [API]</code> 移除 CatalogTableUtil 中的 CatalogTable 字段 (#5521)</li><li><code>[Core] [API]</code> 将获取模式逻辑从 Config 挪动到 ReadonlyConfig (#5534)</li><li><code>[Starter]</code> 当发现一个 pluginIdentifier 对应多个连接器 jar 时抛出 IllegalArgumentException (#5551)</li><li><code>[Core] [API]</code> 重构 CatalogTable 并增加 <code>SeaTunnelSource::getProducedCatalogTables</code> (#5562)</li><li><code>[Core] [API]</code> 在模式中反对配置列/主键/束缚键 (#5564)</li><li><code>[Core] [API]</code> 移除 ReadonlyConfig 扁平化个性的无用性能 (#5612)</li><li><code>[Core] [Flink & Spark]</code> 重构 Spark/Flink 执行处理器 (#5595)</li><li><code>[Core] [API]</code> 标记 <code>SeaTunnelPluginLifeCycle</code> 为废除 (#5625)</li><li><code>[Core] [API]</code> 反对为模式配置 tableIdentifier (#5628)</li><li><code>[Core] [Pom]</code> 在根 pom 中增加 junit4 (#5611)</li><li><code>[Core] [API]</code> 移除配置文件中的 catalog 标签 (#5645)</li><li><code>[Core] [API]</code> 移除来自 <code>setTypeInfo</code> 的无用转换代码 (#5647)</li><li><code>[Core] [API]</code> 确保 CatalogTable 选项和 partitionKeys 是可变的 (#5681)</li><li><code>[Core] [API]</code> 为 <code>SeaTunnelSource::getProducedType</code> 增加默认实现 (#5670)</li><li><code>[Core] [API]</code> 为 <code>SeaTunnelSink::setTypeInfo</code> 增加默认实现 (#5682)</li><li><code>[Core] [API]</code> 增加应用后备键的正告 (#5753)</li><li><code>[Core] [API]</code> 调整 flink 和 spark 引擎的睡眠模式与 zeta 统一 (#5698)</li><li><code>[Core] [API]</code> 移除 <code>Factory</code> 选项以防止无用信息 (#5754)</li><li><code>[Core] [API]</code> 将字段名称增加到 <code>DataTypeConvertor</code> 以改善谬误音讯 (#5782)</li><li><code>[Core] [API]</code> 移除应用 <code>SeaTunnelSink::getConsumedType</code> 办法并将其标记为废除 (#5755)</li><li><code>[Core] [Common]</code> 移除 assert 关键字 (#5915)</li><li><code>[Core] [Common]</code> 清理流量控制代码 (#5991)</li><li><code>[Core] [Common]</code> 将 <code>FILE_OPERATION_FAILED</code> 适配为 <code>CommonError</code> (#5928)</li><li><code>[Core] [API]</code> 为 Column 增加 <code>serialVersionUID</code></li><li><code>[Core] [Common]</code> 将 <code>SupportResourceShare</code> 扩大到 spark/flink (#5847)</li><li><code>[Core] [API]</code> 如果禁用检查点,则移除检查点超时查看 (#6231)</li></ul><h4>格局</h4><ul><li><code>[Json]</code> 应用动态对象映射器代替每次创立它 (#5460)</li><li><code>[Json]</code> 移除 assert 关键字 (#5919)</li><li><code>[Formats]</code> 替换 CommonErrorCodeDeprecated.JSON_OPERATION_FAILED (#5948)</li><li><code>[Formats]</code> 重构 <code>ignoreParseErrors</code> 的异样捕捉 (#6065)</li><li><code>[Formats]</code> 在 <code>seatunnel-format-compatible-debezium-json</code> 中应用数字格局解析 Decimal 类型 (#5803)</li><li><code>[Text]</code> 增加 dateTimeFormatter 以解析 ISO8601 (#5974)</li><li><code>[Formats]</code> 替换 <code>CommonErrorCodeDeprecated.JSON_OPERATION_FAILED</code> (#5948)</li></ul><h4>连接器-V2</h4><ul><li><code>[Connector-V2] [IoTDB]</code> 移除 IoTDB 接收器中的调度器 (#5270)</li><li><code>[Connector-V2] [InfluxDB]</code> 移除 InfluxDB 接收器中的调度器 (#5271)</li><li><code>[Connector-V2] [Dynamodb]</code> 移除 Dynamodb 接收器中的调度器 (#5248)</li><li><code>[Connector-V2] [StarRocks]</code> 移除 StarRocks 接收器中的调度器 (#5269)</li><li><code>[Connector-V2] [CDC]</code> 防止在不必要的数据库下列出表 (#5365)</li><li><code>[Connector-V2] [Jdbc]</code> 重构 AbstractJdbcCatalog (#5096)</li><li><code>[Connector-V2] [CDC]</code> 反对在 flink 上运行 cdc 作业 (#4918)</li><li><code>[Connector-V2] [Assert]</code> 反对 ‘DECIMAL’ 类型并修复 ‘Number’ 类型精度问题 (#5479)</li><li><code>[Connector-v2] [Redis]</code> Redis 反对抉择数据库 (#5570)</li><li><code>[Connector-v2] [CDC]</code> 应用 Source 输入 CatalogTable (#5626)</li><li><code>[Connector-v2] [CDC]</code> 增加 dataType datetimeoffset (#5548)</li><li><code>[Connector-v2] [Jdbc]</code> 反对读取多个表 (#5581)</li><li><code>[Connector-v2] [CDC]</code> 对立 sqlserver TypeUtils 类型转换模式 (#5668)</li><li><code>[Connector-v2] [Http]</code> 改良 http e2e 测试 (#5655)</li><li><code>[Connector-v2] [AmazonDynamicDB]</code> 增加 amazondynamicdb 源拆分 (#5275)</li><li><code>[Connector-v2] [File]</code> parquet 应用零碎时区 (#5605)</li><li><code>[Connector-v2] [Amazonsqs]</code> 更改 <code>amazonsqs</code> 为 <code>AmazonSqs</code> 作为连接器标识符 (#5742)</li><li><code>[Connector-v2] [File]</code> 对立文件源/接收器选项并更新文档 (#5680)</li><li><code>[Connector-v2] [AmazonDynamicDB]</code> 代码清理 AmazonDynamoDB 连接器 (#5791)</li><li><code>[Connector-v2] [MongoDB]</code> 实现 TableSourceFactory 以创立 mongodb 源</li><li><code>[Connector-v2] [Jdbc]</code> 优化 catalog-table 元数据合并逻辑 (#5828)</li><li><code>[Connector-v2] [Jdbc]</code> 将 <code>getCountSql</code> 重命名为 <code>getExistDataSql</code> (#5838)</li><li><code>[Connector-v2] [ClickHouse]</code> 减速 ClickhouseFile Local 生成 mmap 对象 (#5822)</li><li><code>[Connector-v2] [Jdbc]</code> 改良 Jdbc 连接器在数据类型不反对时的谬误音讯 (#5864)</li><li><code>[Connector-v2] [Jdbc]</code> 缩小 getCatalogTable 在 jdbc 中的工夫耗费 (#5908)</li><li><code>[Connector-v2] [StarRocks]</code> StarRocks 反对创立 varchar 字段类型 (#5911)</li><li><code>[Connector-v2] [StarRocks]</code> 增加 http socket 超时 (#5918)</li><li><code>[Connector-v2] [File]</code> 清理 <code>JsonWriteStrategy</code> 和 <code>ExcelWriteStrategy</code> 的内存缓冲 (#5925)</li><li><code>[Connector-v2] [StarRocks]</code> StarRocks 反对创立带惟一键的表模板 (#5905)</li><li><code>[Connector-v2] [CDC]</code> 当 <code>exactly_once</code> 敞开时禁用内存缓冲以进步稳定性 (#6017)</li><li><code>[Connector-v2] [Doris]</code> 在 doris 接收器中增加批量刷新 (#6024)</li><li><code>[Connector-v2] [Paimon]</code> 适配 Paimon 0.6 版本 (#6061)</li><li><code>[Connector-v2] [File]</code> 使 Oss 实现源工厂和接收器工厂 (#6062)</li><li><code>[Connector-v2] [File]</code> 禁用 HDFSFileSystem 缓存 (#6039)</li><li><code>[Connector-v2] [Jdbc]</code> 在 jdbc 连接器中遮蔽 hikari (#6116)</li><li><code>[Connector-v2] [Jdbc]</code> 反对 Sqlserver 小众数据类型 (#6122)</li><li><code>[Connector-v2] [Kafka]</code> 移除 kafka 连接器的无用代码 (#6157)</li><li><code>[Connector-v2] [Doris]</code> 改良 doris 接收器以随机应用 be (#6132)</li><li><code>[Connector-v2] [Http]</code> 减少自定义配置超时 (#6223)</li><li><code>[Connector-v2] [Pulsar]</code> 进步 pulsar 吞吐性能 (#6234)</li><li><code>[Connector-v2] [CDC]</code> 反对 <code>int identity</code> 类型在 sql server 中 (#6186)</li><li><code>[Connector-v2] [CDC]</code> Doris 流加载应用 FE 而不是 BE (#6235)</li><li><code>[Connector-v2] [CDC]</code> 修改名称谬误 (#6248)</li><li><code>[Connector-v2] [Tdengine]</code> 反对从 tdengine 读取 bool 列 (#6025)</li><li><code>[Connector-v2] [Jdbc]</code> 应用 PreparedStatement 从列中采样数据 (#6242)</li></ul><h4>CI</h4><ul><li><code>[CI]</code> 更新 sql-udf 文档 (#5197)</li><li><code>[CI][E2E][Zeta]</code> 减少 Zeta 检查点超时以防止 connector-file-sftp-e2e 频繁失败 (#5339)</li><li><code>[CI]</code> 修复 phoenix ci 谬误</li><li><code>[Build]</code> 将 <code>seatunnel-hadoop3-3.1.4-uber.jar</code> 放入公布二进制包 (#5743)</li><li><code>[Test]</code> 确保在 spark 中的值不会被重用 (#5767)</li><li><code>[Test]</code> 挪动 MaxCompute 测试用例文件 (#5786)</li><li><code>[CI]</code> 始终运行所有模块的单元测试 (#5800)</li><li><code>[Test]</code> 将 System.out.println 更改为日志输入 (#5912)</li><li><code>[Test]</code> 为命令应用增加一些测试用例</li><li><code>[Test]</code> 修复 sql server catalog 测试用例失败 (#6128)</li><li><code>[Test]</code> 修复 JobMetricsTest 不稳固 (#6152)</li><li><code>[Test]</code> 修复 ConnectorSpecificationCheckTest 有效 (#5820)</li></ul><h4>E2E</h4><ul><li><code>[E2E]</code> 移除不必要的代码以缩小磁盘压力 (#5613)</li><li><code>[E2E]</code> 启用 Oceanbase Mysql 模式的 IT 案例 (#5697)</li><li><code>[E2E]</code> 按需从 url 加载驱动类 (#5712)</li><li><code>[E2E]</code> Jdbc 测试检查数据一致性 (#5734)</li><li><code>[E2E]</code> 启用 e2e 日志输入并禁用控制台接收器日志 (#5879)</li><li><code>[E2E]</code> 改良所有引擎的 e2e 日志 (#5936)</li><li><code>[E2E]</code> 加强 Kudu E2E 的稳定性 (#6258)</li></ul><h4>Zeta(ST-引擎)</h4><ul><li><code>[Zeta]</code> 优化测试用例 <code>CheckpointTimeOutTest.testJobLevelCheckpointTimeOut</code> (#5403)</li><li><code>[Zeta]</code> 改良依赖包 (#5624)</li><li><code>[Zeta]</code> 将硬编码配置键更改为援用 (#5618)</li><li><code>[Zeta]</code> 更改 <code>RestJobExecutionEnvironment</code> 实现的类名 (#5671)</li><li><code>[Zeta]</code> 更改默认 Zeta 客户端 JVM 堆值 (#5674)</li><li><code>[Zeta]</code> 将 generate_client_protocol.sh 挪动到引擎模块 (#5667)</li><li><code>[Zeta]</code> 优化 SeaTunnel Zeta 引擎 Jar 包上传逻辑 (#5542)</li><li><code>[Zeta]</code> 将 <code>RestJobExecutionEnvironment</code> 挪动到 rest 包 (#5764)</li><li><code>[Zeta]</code> 从动作名称(检查点状态键)中移除 <code>result_table_name</code> (#5779)</li><li><code>[Zeta]</code> 重构 jar 包服务模块 (#5763)</li><li><code>[Zeta]</code> 将客户端 cluster-connect-timeout-millis 裸露给 yaml (#5868)</li><li><code>[Zeta]</code> 缩小检查点实现日志 (#5916)</li><li><code>[Zeta]</code> 移除 assert 关键字 (#5947)</li><li><code>[Zeta]</code> 调整工厂验证实现的日志级别 (#6153)</li><li><code>[Zeta]</code> 疏忽无用的谬误指标槽谬误 (#6135)</li><li><code>[Zeta]</code> 增加在提交失败时复原的性能 (#6101)</li></ul><h4>Transformer-V2</h4><ul><li><code>[All]</code> 为 SeaTunnel 转换增加 JsonPath 转换 (#5632)</li><li><code>[All]</code> 反对 SqlTransform Not Like 表达式 (#5768)</li><li><code>[All]</code> 增加 from_unixtime 函数 (#5462)</li><li><code>[All]</code> 反对 case when 表达式 (#6123)</li></ul><h3>个性</h3><h4>外围</h4><ul><li><code>[Core] [API]</code> 为检查点超时增加作业级配置 (#5222)</li><li><code>[Core] [API]</code> 目录增加大小写转换定义 (#5328)</li><li><code>[Core] [API]</code> 为测试增加 InMemoryCatalog 并增加新的 getCatalogTableFromConfig 办法 (#5485)</li><li><code>[Core] [Flink]</code> 反对可配置精度和规模的 Decimal 类型 (#5419)</li><li><code>[Core] [API]</code> 在 <code>SinkAggregatedCommitter</code> 中增加 <code>init</code> 和 <code>restoreCommit</code> 办法 (#5598)</li><li><code>[Core] [Flink]</code> 在 Flink 中反对流量管制 (#5509)</li><li><code>[Core] [Spark]</code> 反对 SeaTunnel 工夫类型 (#5188)</li><li><code>[Core] [Flink]</code> 移除无用的 stageType (#5650)</li><li><code>[Core] [API]</code> 反对多表接收器 (#5620)</li><li><code>[Core] [Spark]</code> 在 Spark 中反对流量管制 (#5510)</li><li><code>[Core] [Flink]</code> 增加内部配置参数 (#5480)</li><li><code>[Core] [API]</code> 移除所有无用的 <code>prepare</code>、<code>getProducedType</code> 办法 (#5741)</li><li><code>[Core] [Common]</code> 引入新的谬误定义规定 (#5793)</li><li><code>[Core] [Common]</code> 移除无用的 DeserializationFormatFactory 及其实现 (#5880)</li><li><code>[Core] [API]</code> 用 TableSchema 替换 SeaTunnelRowType 在 JdbcRowConverter 中</li><li><code>[Core] [Flink]</code> 降级 flink 源翻译 (#5100)</li><li><code>[Core] [API]</code> 为所有目录增加不反对的数据类型查看 (#5890)</li><li><code>[Core] [Flink]</code> 在 flink 引擎中反对记录指标 (#6035)</li></ul><h4>连接器-V2</h4><ul><li><code>[Connector-V2] [CDC] [SQLServer]</code> 反对多表读取 (#4377)</li><li><code>[Connector-V2] [Jdbc]</code> Jdbc 数据库反对标识符 (#5089)</li><li><code>[Connector-V2] [Jdbc]</code> jdbc 连接器反对 Kingbase 数据库 (#4803)</li><li><code>[Connector-V2] [Jdbc]</code> 增加 tidb 数据类型转换器 (#5440)</li><li><code>[Connector-V2] [Jdbc]</code> 增加 Dameng 目录 (#5451)</li><li><code>[Connector-V2] [File]</code> 反对在输入类型为文件 (CSV) 时写入列名 (#5459)</li><li><code>[Connector-V2] [File]</code> 当 FILE_FORMAT_TYPE 为 text/csv 时,增加参数 BaseSinkConfig.ENABLE_HEADER_WRITE: #5566 (#5567)</li><li><code>[Connector-V2] [CDC]</code> 反对优先应用数字字段作为宰割键 (#5384)</li><li><code>[Connector-V2] [File]</code> 反对读取空目录 (#5591)</li><li><code>[Connector-V2] [Fake&Assert]</code> 从 FakeSource/Assert 增加 <code>table-names</code> 以产生/断言多表 (#5604)</li><li><code>[Connector-V2] [Jdbc]</code> 增加 OceanBase 目录 (#5439)</li><li><code>[Connector-V2] [File]</code> 反对 <code>LZO</code> 压缩在文件读取上 (#5083)</li><li><code>[Connector-V2] [CDC]</code> 反对在 flink 上运行 MongoDB CDC (#5644)</li><li><code>[Connector-V2] [Jdbc]</code> 反对更多配置连贯参数的形式 (#5388)</li><li><code>[Connector-V2] [Kafka]</code> KafkaSource 应用 Factory 创立源 (#5635)</li><li><code>[Connector-V2] [Jdbc]</code> 增加连接器 amazonsqs (#5367)</li><li><code>[Connector-V2] [Jdbc]</code> 在 MaxCompute Source 中反对目录 (#5283)</li><li><code>[Connector-V2] [Kudu]</code> 重构 Kudu 性能并反对 CDC 数据的接收器 (#5437)</li><li><code>[Connector-V2] [CDC]</code> 优化 mysql server-id 的默认值范畴以缩小抵触 (#5550)</li><li><code>[Connector-V2] [Http]</code> HTTP 反对页面减少 #5477 (#5561)</li><li><code>[Connector-V2] [Jdbc]</code> 增加 Save Mode 性能和 Connector-JDBC (MySQL) 连接器已实现 (#5663)</li><li><code>[Connector-V2] [Jdbc]</code> 反对 XMLTYPE 数据集成 #5716 (#5723)</li><li><code>[Connector-V2] [Jdbc]</code> 反对 Hive JDBC Source 连接器 (#5424)</li><li><code>[Connector-V2] [Http]</code> Http 参数反对自定义加密 (#5727)</li><li><code>[Connector-V2] [Kudu]</code> 在 kudu 上反对 TableSourceFactory/TableSinkFactory (#5789)</li><li><code>[Connector-V2] [File]</code> LocalFileSource 反对多表</li><li><code>[Connector-V2] [Fake]</code> FakeSource 反对为 MultipleTable 生成不同的 CatalogTable (#5766)</li><li><code>[Connector-V2] [Kudu]</code> 反对 kudu 多表源读取 (#5878)</li><li><code>[Connector-V2] [Http]</code> 在 http 上反对 TableSourceFactory/TableSinkFactory (#5816)</li><li><code>[Connector-V2] [Redis]</code> 在 redis 上反对 TableSourceFactory/TableSinkFactory (#5901)</li><li><code>[Connector-V2] [Jdbc]</code> 修复 split 键不反对 BigInteger 类型</li><li><code>[Connector-V2] [File]</code> LocalFile 接收器反对多表 (#5931)</li><li><code>[Connector-V2] [Doris]</code> Doris 目录 (#5175)</li><li><code>[Connector-V2] [Kudu]</code> 反对 kudu 多表接收器个性 (#5951)</li><li><code>[Connector-V2] [File]</code> 反对应用多个 hadoop 账户 (#5903)</li><li><code>[Connector-V2] [File]</code> 将多表文件 API 放到文件根底模块 (#6033)</li><li><code>[Connector-V2] [Paimon]</code> Flink 表存储在筹备提交时失败 (#6057)</li><li><code>[Connector-V2] [File]</code> 增加多表文件接收器到根底模块 (#6049)</li><li><code>[Connector-V2] [Jdbc]</code> jdbc 源反对将字符串类型作为分区键 (#6079)</li><li><code>[Connector-V2] [File]</code> 反对读取 .xls excel 文件 (#6066)</li><li><code>[Connector-V2] [CDC]</code> 反对读取没有主键的表 (#6098)</li><li><code>[Connector-V2] [Assert]</code> 反对查看 Decimal 类型的精度和规模 (#6110)</li><li><code>[Connector-V2] [Hbase]</code> 反对数组数据 (#6100)</li><li><code>[Connector-V2] [File]</code> FTP 源/接收器增加 ftp 连贯模式 (#6077) (#6099)</li><li><code>[Connector-V2] [Jdbc]</code> 更新 sqlserver 目录以反对保留模式 (#6086)</li><li><code>[Connector-V2] [CDC]</code> 反对自定义表主键 (#6106)</li><li><code>[Connector-V2] [Doris]</code> 在 Doris 上反对 SaveMode (#6085)</li><li><code>[Connector-V2] [Jdbc]</code> 更新 oracle 目录以反对保留模式 (#6092)</li><li><code>[Connector-V2] [ElasticSearch]</code> 增加 elasticsearch save_mode (#6046) (#6092)</li><li><code>[Connector-V2] [Jdbc]</code> 改良查问列 sql 的兼容性 (#5664)</li><li><code>[Connector-V2] [Jdbc]</code> 改良查问列 sql 的兼容性 (#5664)</li><li><code>[Connector-V2] [Pulsar]</code> 增加 Pulsar 接收器连接器 (#4382)</li><li><code>[Connector-V2] [StarRocks]</code> 增加 starrocks save_mode (#6029)</li><li><code>[Connector-V2] [CDC]</code> 反对 oracle cdc (#5196)</li><li><code>[Connector-V2] [Doris]</code> 增加 Doris ConnectorV2 源 (#6161)</li><li><code>[Connector-V2] [Jdbc]</code> 反对 postgres jdbc 中的 <code>uuid</code> (#6185)</li><li><code>[Connector-V2] [CDC]</code> 反对读取没有主键的表 (#6209)</li><li><code>[Connector-V2] [CDC]</code> 修复 jdbc setFetchSize 谬误 (#6210)</li><li><code>[Connector-V2] [CDC]</code> 修复从单表切换到多表时状态复原谬误 (#6211)</li><li><code>[Connector-V2] [CDC]</code> 清理未应用的代码 (#6212)</li><li><code>[Connector-V2] [File]</code> 增加 s3file save mode 性能 (#6131)</li><li><code>[Connector-V2] [CDC]</code> 反对自定义表主键 (#6216)</li><li><code>[Connector-V2] [CDC]</code> 为拆分反对增加日期类型和浮点类型列 (#6160)</li><li><code>[Connector-V2] [CDC]</code> 反对 Postgres cdc (#5986)</li><li><code>[Connector-V2] [CDC]</code> 更新 jdbc fetchsize (#6245)</li><li><code>[Connector-V2] [CDC]</code> 默认禁用 exactly_once 以进步稳定性 (#6244)</li><li><code>[Connector-V2] [CDC]</code> 反对在拆分器中的 Short 和 Byte 类型 (#6027)</li><li><code>[Connector-V2] [Jdbc]</code> 改良查问表的大抵总行数的 SQL 兼容性 (#5972)</li></ul><h4>Zeta(ST-引擎)</h4><ul><li><code>[Zeta]</code> 增加 UNKNOWABLE 作业状态 (#5303)</li><li><code>[Zeta]</code> 在 zeta 中反对流量管制 (#5502)</li><li><code>[Zeta] [REST-API]</code> 进行运行中的作业 (#5512)</li><li><code>[Zeta]</code> 在 Kubernetes 上反对 Zeta 引擎 (#5594)</li><li><code>[Zeta]</code> 在批处理模式中,能够禁用检查点 (#5914)</li><li><code>[Zeta]</code> 将跳过触发检查点的日志级别更改为调试 (#5954)</li><li><code>[Zeta]</code> 增加新作业状态 <code>DOING_SAVEPOINT</code> 和 <code>SAVEPOINT_DONE</code> (#5917)</li><li><code>[Zeta]</code> 增加 waitForJobCompleteV2 api (#5965)</li><li><code>[Zeta]</code> 能够应用 rest api 主动向 Zeta 主节点提交作业 (#5950)</li><li><code>[Zeta] [REST-API]</code> 获取已实现作业的信息 (#5949)</li><li><code>[Zeta]</code> 修复转换动作返回雷同名称 (#6034)</li><li><code>[Zeta]</code> 对立作业环境参数 (#6003)</li><li><code>[Zeta]</code> 将 TaskGroupLocation 增加到 TaskExecutionService 的线程名称中 (#6095)</li><li><code>[Zeta]</code> 在 zeta 中应用 G1 作为默认垃圾收集器 (#6114)</li><li><code>[Zeta]</code> 修复带有无检查点文件的保留点启动时的谬误 (#6215)</li><li><code>[Zeta]</code> 反对在泛型类型中用 hocon 格调申明行类型 (#6187)</li></ul><h4>CI</h4><ul><li><code>[Bin]</code> 为所有脚本增加 .bat 脚本 (#5445)</li><li><code>[INFRA]</code> 将 CI 移至在 fork 仓库容器上运行 (#5495)</li><li><code>[Build]</code> 移除 <code>connector/seatunnel</code> 目录 (#5489)</li><li><code>[INFRA]</code> 更新 PR 模板以增加测试和用户更改问题 (#5486)</li><li><code>[INFRA]</code> 为 notify_test_workflow.yml 增加日志以追踪谬误起因</li><li><code>[INFRA]</code> 修复 notify_test_workflow.yml 不稳固</li><li><code>[Test]</code> 测试实现后在 jdbc 套件上移除 docker 镜像 (#5568)</li><li><code>[Test]</code> 为 ResourceManager 增加测试以确保工作将在不同节点上部署 (#5518)</li><li><code>[Chore]</code> 移除无用的 <code>.scalafmt.conf</code> 文件 (#5616)</li><li><code>[LICENSE]</code> 增加 hadoop 许可 (#6067)</li><li><code>[Build]</code> 将 seatunnel-spark-3-starter.jar 放入公布包 (#6044)</li><li><code>[Test]</code> 缩小反复目录测试次数 (#6207)</li><li><code>[CI]</code> 确保 notify_test_workflow.yml 谬误将被抛出 (#6226)</li></ul><h4>格局</h4><ul><li><code>[Ogg]</code> 反对读取 ogg 格局音讯 #4201 (#4225)</li><li><code>[Json]</code> 移除 assert 关键字 (#5919)</li><li><code>[Avro]</code> 反对 avro 格局 (#5084)</li><li><code>[Formats]</code> 重构 <code>ignoreParseErrors</code> 的异样捕捉 (#6065)</li><li><code>[Avro]</code> 改良 avro 格局转换 (#6082)</li></ul><h4>转换器-V2</h4><ul><li><code>[All]</code> 增加 JsonPath 转换 (#5632)</li><li><code>[All]</code> 反对 SqlTransform Not Like 表达式 (#5768)</li><li><code>[All]</code> 增加 from_unixtime 函数 (#5462)</li><li><code>[All]</code> 反对 case when 表达式 (#6123)</li></ul><h3>文档优化详情</h3><ul><li><code>[Docs]</code> 应用对立格局 Feishu 重构 connector-v2 文档 (#5343)</li><li><code>[Docs]</code> 重构 IoTDB 接收器文档 (#5306)</li><li><code>[Docs]</code> 更正单词谬误 (#5360)</li><li><code>[Docs]</code> 改良 iceberg 文档 (#5335)</li><li><code>[Docs]</code> 应用短链接 https://s.apache.org/seatunnel-slack 替换长 URL (#5363)</li><li><code>[Docs]</code> 改良 http 文档参数体形容 (#5368)</li><li><code>[Docs]</code> 应用对立格局 Slack 重构 connector-v2 文档 (#5344)</li><li><code>[Docs]</code> 更新 sql-udf 文档 (#5197)</li><li><code>[Docs]</code> 重构 MySQL-CDC 文档 (#5302)</li><li><code>[Docs]</code> 在 FtpFile 的选项形容中将 username 由 user 替换 (#5421)</li><li><code>[Docs]</code> 更新 iotdb 文档 (#5404)</li><li><code>[Docs]</code> 增加 mysql Connector 文档版本题目示例 pr (#5249)</li><li><code>[Docs]</code> 增加并行度 (#5310)</li><li><code>[Docs]</code> Http 源选项键 poll_interval_ms 在源代码中不同 (#5430)</li><li><code>[Docs]</code> 改良 kafka 接收器文档中的谬误示例 (#5527)</li><li><code>[Docs]</code> 改良控制台接收器文档 (#5230)</li><li><code>[Docs]</code> 增加如何更改 e2e 测试的日志配置 (#5589)</li><li><code>[Docs]</code> 增加 RocketMq 连接器 (#5361)</li><li><code>[Docs]</code> 在 README.md 中修复构建状态未更新 (#5574)</li><li><code>[Docs]</code> hdfsFile 的 file_format 更改为 file_format_type (#5653)</li><li><code>[Docs]</code> 改良 README.md (#5662)</li><li><code>[Docs]</code> 增加 FakeSource 连接器文档 (#5255)</li><li><code>[Docs]</code> 在 README.md 中介绍 SeaTunnel web 我的项目 (#5634)</li><li><code>[Docs]</code> 向 README 增加目录和常见问题解答 (#5693)</li><li><code>[Docs]</code> 更新 quick-start-spark.md (#5795)</li><li><code>[Docs]</code> 增加 Socket 连接器文档 #5255 (#5287)</li><li><code>[Docs]</code> 改良文件接收器文档 (#5799)</li><li><code>[Docs]</code> 增加 SqlServer 连接器文档 (#5498)</li><li><code>[Docs]</code> 更新 (#5808)</li><li><code>[Docs]</code> 增加 hive jdbc 参考值 (#5882)</li><li><code>[Docs]</code> 修改 Checkpoint-Storage 形容不正确 (#5883)</li><li><code>[Docs]</code> 重构 OssFile 连接器文档 (#5233)</li><li><code>[Docs]</code> 修复 oss 连接器无奈运行的 bug (#6010)</li><li><code>[Docs]</code> 为 jdbc-connector 更新文档 (#5765)</li><li><code>[Docs]</code> 增加 V2 连接器 jdbc 文档参数能够减速数据导入 PR (#6176)</li><li><code>[Docs]</code> 批改一些文档题目标准 (#6237)</li><li><code>[Docs]</code> 重构 Socket Source 和 SftpFile 连接器文档 (#5386)</li><li><code>[Docs]</code> 改良驱动搁置门路的文档</li><li><code>[Docs]</code> 更正数组元素类型和映射键类型的介绍 (#6261)</li></ul><h3>致谢名单</h3><p>感激所有为2.3.4版本做出奉献的社区成员,包含代码贡献者、文档撰写者和测试人员。Apache SeaTunnel的胜利离不开每一个人的致力!</p><table><thead><tr><th>用户名1</th><th>用户名2</th><th>用户名3</th></tr></thead><tbody><tr><td>Carl-Zhou-CN</td><td>halo.kim</td><td>Nick Young</td></tr><tr><td>Adarsh Jha</td><td>Hao Xu</td><td>Pritham Sriram Govindaraj</td></tr><tr><td>Alex Ting</td><td>haolinkong</td><td>pstrasser</td></tr><tr><td>Anirudh Hegde</td><td>happyboy1024</td><td>seckiller</td></tr><tr><td>asia-zengtao</td><td>He Wang</td><td>sunjane</td></tr><tr><td>bingquanzhao</td><td>Huan Liang</td><td>Tung Bui (Leo)</td></tr><tr><td>Carl-Zhou-CN</td><td>ic4y</td><td>Tyrantlucifer</td></tr><tr><td>chaos</td><td>Jarvis</td><td>Volodymyr</td></tr><tr><td>chen0623-bak</td><td>Jia Fan</td><td>wachoo</td></tr><tr><td>Chengyu Yan</td><td>john</td><td>wei zhao</td></tr><tr><td>chenyunde</td><td>kk</td><td>Wenjun Ruan</td></tr><tr><td>David Zollo</td><td>Kunni</td><td>wow_zx</td></tr><tr><td>Dennis</td><td>lightzhao</td><td>xiami</td></tr><tr><td>dependabot[bot]</td><td>lizhenglei</td><td>xiaofan2012</td></tr><tr><td>dian</td><td>luo</td><td>XiaoJiang521</td></tr><tr><td>Eric</td><td>michalrys</td><td>Yan Xiaole</td></tr><tr><td>fang</td><td>mingbei.xu</td><td>zhengyuan</td></tr><tr><td>FlechazoW</td><td>Morssssy</td><td>ZhilinLi</td></tr><tr><td>FuYouJ</td><td>MoSence</td><td>丑西蒙</td></tr><tr><td>gitfortian</td><td>muzhongjiang</td><td>老王</td></tr><tr><td>gnehil</td><td>Nick</td><td>王渔</td></tr><tr><td>Guangdong Liu</td><td>hailin0</td><td> </td></tr></tbody></table><blockquote>本文由 白鲸开源科技 提供公布反对!</blockquote></article> ...

March 4, 2024 · 9 min · jiezi

关于数据库:MySQL运维实战之备份和恢复84xtrabackup恢复全量备份

<article class=“article fmt article-content”><p><em>作者:太阳</em></p><h2>一、pg_probackup概述</h2><p>pg_probackup 是一款收费的postgres数据库集群备份工具,与其余备份工具相比,它次要有如下一些劣势:</p><ul><li>提供增量备份,增量备份肯定水平上能够节俭磁盘空间的应用并且缩小备份工夫耗费</li><li>可通过全量备份+增量备份进行增量复原</li><li>无需通过理论的数据恢复操作验证备份文件是否无效</li><li>Verification: on-demand verification of Postgres Pro instance with<br/>the checkdb command.</li><li>能够通过设置复原工夫以及备份最大文件数来进行备份文件以及WAL归档日志的保留策略</li><li>对于backup、restore、merge、delete、validate、checkdb操作都可开启并发线程执行</li><li>提供压缩备份以节俭磁盘空间</li><li>可对近程实例进行备份复原</li><li>可从standby实例进行备份</li><li>对于PGDATA外的目录数据(如:脚本、日志转储、sql dump 文件等),可应用参数额定指定进行备份</li><li>可查看已备份数据备份以及归档的列表以及相干详细信息</li><li>反对局部还原(还原局部数据库)</li></ul><p>pg_probackup 下的几种备份形式:</p><ul><li>全量备份 : 全量备份会将数据库集下所有的数据文件进行备份</li><li>增量备份 : 增量备份仅会备份上一次全量备份之后产生变更的数据,绝对于全量备份其空间占用有了极大的缩减</li><li>DELTA模式 : 在该模式下,pg_probackup会扫描所有的数据目录文件,而后将上一次备份后产生扭转的数据页进行拷贝备份。这种模式下增量备份的IO耗费根本等同于全量备份。</li><li>PAGE模式 : 在该模式下,pg_probackup仅会扫描备份上一次备份完结时刻之后的所有WAL归档日志。这种模式下的增量备份必须保障wal日志有设置正当的归档(wal_level > minimal 、archive_mode = on/always、archive_command 应用 pg_probackup进行archive-push 归档)。</li><li>PTRACK模式 : 在该模式下pg_probackup<br/>会实时跟踪源备份实例端数据页的变动,对于距上一次备份后产生更新的数据页,将其记录在 bitmap<br/>中,以此来放慢增量备份的工夫。该模式下不须要关注WAL日志归档的设置,增量备份工夫绝对于DELTA更快,然而因为须要实时跟踪发生变化的数据页,所以对源端数据库服务器是有肯定的资源耗费的。</li></ul><p>pg_probackup 工具的一些局限性:</p><ul><li>仅反对Postgres Pro 9.5以上的版本</li><li>Windows零碎不反对近程备份复原</li><li>在Unix零碎在,如果数据库版本小于等于 Postgres Pro 10 ,只能通过与OS同账号的超级用户postgres进行备份。</li><li>对于PostgreSQL 9.5版本数据库,进行备份的数据库账号必须具体superuser的角色,否则无奈备份<br/>pg_create_restore_point(text) 、 pg_switch_xlog()</li><li>备份工具与数据库 block_size 、 wal_block_size<br/>必须统一,否则无奈备份(block_size、wal_block_size在安装包源码编译时设置)</li></ul><h2>二、装置部署</h2><h3>2.1 源码装置</h3><p>1、下载安装包</p><pre><code class=“sql”># wget -c https://github.com/postgrespro/pg_probackup/archive/2.4.2.tar.gz# tar xf 2.4.2.tar.gz# cd pg_probackup-2.4.2/# ll总用量 176drwxrwxr-x 2 root root 4096 7月 1 08:07 doc-rw-rw-r– 1 root root 128060 7月 1 08:07 Documentation.md-rw-rw-r– 1 root root 4976 7月 1 08:07 gen_probackup_project.pl-rw-rw-r– 1 root root 1200 7月 1 08:07 LICENSE-rw-rw-r– 1 root root 3962 7月 1 08:07 Makefile-rw-rw-r– 1 root root 13345 7月 1 08:07 README.mddrwxrwxr-x 3 root root 4096 7月 1 08:07 srcdrwxrwxr-x 4 root root 4096 7月 1 08:07 testsdrwxrwxr-x 2 root root 4096 7月 1 08:07 travis</code></pre><p>2、编译装置</p><pre><code class=“sql”># PG_CONFIG是咱们pg_config程序所在门路,top_srcdir为postgres源码所在门路# make USE_PGXS=1 PG_CONFIG=/usr/local/pgsql/bin/pg_config top_srcdir=/usr/local/postgresql-12.2# ll总用量 612drwxrwxr-x 2 root root 4096 7月 1 08:07 doc-rw-rw-r– 1 root root 128060 7月 1 08:07 Documentation.md-rw-rw-r– 1 root root 4976 7月 1 08:07 gen_probackup_project.pl-rw-rw-r– 1 root root 1200 7月 1 08:07 LICENSE-rw-rw-r– 1 root root 3962 7月 1 08:07 Makefile-rwxr-xr-x 1 root root 445832 9月 22 21:55 pg_probackup //编译后-rw-rw-r– 1 root root 13345 7月 1 08:07 README.mddrwxrwxr-x 3 root root 4096 9月 22 21:55 srcdrwxrwxr-x 4 root root 4096 7月 1 08:07 testsdrwxrwxr-x 2 root root 4096 7月 1 08:07 travis</code></pre><p>3、版本查看</p><pre><code class=“sql”># 查看版本# ./pg_probackup –versionpg_probackup 2.4.2 (PostgreSQL 12.2)</code></pre><h3>2.2 rpm包装置部署</h3><pre><code class=“sql”>rpm -ivh https://repo.postgrespro.ru/pg_probackup/keys/pg_probackup-repo-centos.noarch.rpmyum install pg_probackup-13yum install pg_probackup-13-debuginfo</code></pre><h2>三、常用命令</h2><p>初始化备份目录</p><pre><code class=“sql”>$ pg_probackup init -B ${backup_dir}</code></pre><p>增加实例</p><pre><code class=“sql”>## 本地实例pg_probackup add-instance -B ${backup_dir} -D ${PGDATA} –instance ${instance_name}## 增加近程实例pg_probackup add-instance -B ${backup_dir} -D ${PGDATA} –instance ${instance_name} –remote-prot=ssh –remote-host=${remote_ip} –remote-port=${remote_ssh_port} –remote-user=${remote_ssh_user} –remote-path=${pg_probackup_dir}</code></pre><p>备份</p><pre><code class=“sql”>## 本地实例全量备份pg_probackup backup -B ${backup_dir} –instance ${instance_name} -b full## 近程实例全量备份pg_probackup backup -B ${backup_dir} –instance ${instance_name} –remote-user=${remote_ssh_user} –remote-host=${remote_ip} –remote-port=${remote_ssh_port} -b full## 增量备份pg_probackup backup -B -B ${backup_dir} –instance ${instance_name} -b page|detla|ptrack</code></pre><p>复原</p><pre><code class=“sql”>## 依据备份集复原pg_probackup restore -B ${backup_dir} –instance ${instance_name} -i ${backup_id}## 不残缺复原,复原局部databasepg_probackup restore -B ${backup_dir} –instance ${instance_name} –db-include=${database_name1} –db-include=${database_name2}## 按工夫点复原pg_probackup restore -B ${backup_dir} –instance ${instance_name} –recovery-target-time=‘2020-09-22 22:49:34’pg_probackup restore -B ${backup_dir} –instance ${instance_name} –recovery-target-xid=‘687’pg_probackup restore -B ${backup_dir} –instance ${instance_name} –recovery-target-lsn=‘16/B374D848’pg_probackup restore -B ${backup_dir} –instance ${instance_name} –recovery-target-name=‘before_app_upgrade’pg_probackup restore -B ${backup_dir} –instance ${instance_name} –recovery-target=‘latest’pg_probackup restore -B ${backup_dir} –instance ${instance_name} -recovery-target=‘immediate’</code></pre><p>查看备份文件可用性</p><pre><code class=“sql”>pg_probackup show -B ${backup_dir} –instance ${instance_name} -i ${backup_id}</code></pre><p>查看备份详情</p><pre><code class=“sql”>pg_probackup show -B ${backup_dir} –instance ${instance_name} -i ${backup_id}#Configurationbackup-mode = FULL //备份模式stream = false //是否启用streamcompress-alg = nonecompress-level = 1 //压缩等级from-replica = false#Compatibilityblock-size = 8192 //blocksizexlog-block-size = 8192checksum-version = 0program-version = 2.4.2server-version = 12 //PG Version#Result backup infotimelineid = 1start-lsn = 0/A000028stop-lsn = 0/B0000B8start-time = ‘2020-09-22 22:49:33+08’end-time = ‘2020-09-22 22:49:39+08’recovery-xid = 658recovery-time = ‘2020-09-22 22:49:34+08’data-bytes = 41423956wal-bytes = 16777216uncompressed-bytes = 41389959pgdata-bytes = 41389720status = OKprimary_conninfo = ‘user=postgres port=5432 sslmode=disable sslcompression=0 gssencmode=disable krbsrvname=postgres target_session_attrs=any’content-crc = 1486842437</code></pre><p>查看归档详情</p><pre><code class=“sql”>pg_probackup show -B ${backup_dir} –instance ${instance_name} –archive</code></pre><p>配置 Retention Policy</p><ul><li>-retention-redundancy=redundancy : 保留备份多少天 FULL</li><li>-retention-window=window : 可复原多少天之前备份</li></ul><pre><code class=“sql”>pg_probackup set-config -B ${backup_dir} –instance ${instance_name} –retention-redundancy 7 –retention-window 7$ /usr/local/pg_probackup-2.4.2/pg_probackup show-config -B /data/pgdata_probackup/ –instance local_5432# Backup instance informationpgdata = /data/pgsql12/datasystem-identifier = 6870373621203487994xlog-seg-size = 16777216# Connection parameterspgdatabase = postgres# Replica parametersreplica-timeout = 5min# Archive parametersarchive-timeout = 5min# Logging parameterslog-level-console = INFOlog-level-file = OFFlog-filename = pg_probackup.loglog-rotation-size = 0TBlog-rotation-age = 0d# Retention parametersretention-redundancy = 7retention-window = 7wal-depth = 0# Compression parameterscompress-algorithm = nonecompress-level = 1# Remote access parametersremote-proto = ssh</code></pre><p>删除过期数据</p><pre><code class=“sql”>pg_probackup delete -B ${backup_dir} –instance ${instance_name} –delete-expired–同时删除过期WALpg_probackup delete -B ${backup_dir} –instance ${instance_name} –delete-expired –delete-wal–应用新策略笼罩以后策略删除pg_probackup delete -B ${backup_dir} –instance ${instance_name} –delete-expired –delete-wal –retention-window=1 –retention-redundancy=1</code></pre><p>更多技术信息请查看云掣官网https://yunche.pro/?t=yrgw</p></article> ...

March 4, 2024 · 3 min · jiezi

关于数据库:管理者经典难题团队很烂但把持核心业务该怎么办

<article class=“article fmt article-content”><p>在治理畛域,修补一个蹩脚,但又把持要害零碎的团队可能是最让人心情沉重和充斥挑战的工作之一 - 你处于绝境之中,团队成员苦不堪言且工作体现低迷,仿佛你采取的任何措施都无奈扭转局面,状况继续好转。如果你过于强求,你还会放心他们全都辞职离去,而他们留下的盘根错节的工作无人可能轻易接替。</p><p>在一些状况下,你甚至担心公司可能面临解体的危机。这是一个极其蹩脚的场面。</p><p>然而,侥幸的是,不论问题看起来有多重大,大多数团队呈现问题的起因和模式都有惊人的相似性。更加侥幸的是,这些问题大多数状况下都能够通过类似的办法失去解决。接下来,咱们将探讨如何诊断并修复那些问题最重大的团队。</p><h2>团队蹩脚的起因</h2><p>体现不佳的团队通常存在一些独特的问题:</p><ul><li><strong>团队负责的是公司的要害我的项目或业务。</strong>这十分要害,因为如果团队不负责重要业务但体现不佳,通常会被间接替换或遣散。一个团队如果失败了,并且只是负责一些主要的我的项目,他们可能会被辞退,而后重组团队。性能最失调的团队往往把握着公司的命根子,这使得对他们采取迅速行动变得更加艰难。</li><li><strong>团队让他们负责的事务变得过于简单,导致其他人难以参加其中。</strong>复杂性往往是能力有余的间接结果,往往会编织简单的网,让内部人士极难参加。</li><li><strong>须要经常进行超常规的致力。</strong>这些本能够防止的致力,被团队视为不可或缺,他们自视为组织中解决无人能解之难题的英雄。有时,这种状况是因为他们构建了一个过于简单的零碎,实际上是他们本人造成的问题。</li><li><strong>他们受到的治理有余。</strong>往往只被告知「你们做得很好」,而没有失去足够的反馈来促成技能成长,只管他们的赞美和责任随着工夫的推移而减少。</li><li><strong>他们对以后的管理者十分满意。</strong>这通常是这位管理者总是通知团队成员他们很棒,把失败归咎于别人,并且造就了一种不解决基本问题的自恋文化。</li><li><strong>他们面临的不是广泛的员工散失问题(很多人曾经在那里工作很长时间),而是优良新人留存问题。</strong>你心愿能帮忙扭转团队风貌的优良新成员,往往在六个月左右就来到了。团队将此作为证据,认为即便是最优良的人才也无奈实现他们正在做的平凡工作。</li></ul><p>所有这些问题加在一起,让人感觉就像是组织的「煤气灯」。没有人晓得假相是什么,没有人晓得每件事件该由谁负责。人们很愤恨,但仿佛没有什么能解决这个问题。</p><h2>诊断</h2><p>当你遇到这样的团队时,请深呼吸 - 将来一段时间将会十分艰巨。但之后,再次深呼吸,因为问题是有解决办法的。</p><p>首先须要采取的两个关键步骤是:</p><ul><li>明确无误地诊断出问题的严重性,坚韧不拔地致力于解决问题,直到团队可能依照「优良」的规范失常运作。重要的是在这一诊断过程中放弃动摇,即便有时问题仿佛有所恶化。</li><li><p>更换以后团队的管理者,替换为一个明确通晓何为「优良」的人。这里通常有两种抉择:</p><ul><li><strong>一个教训较少但能力出众的经理可能是适宜的抉择</strong>,他们违心承当这一挑战。修复这样的团队是一项艰巨的工作,对于一个经验丰富的经理来说,承受这一工作可能有些艰难。</li><li><strong>第二种抉择是一位经验丰富的领导者</strong>,对他们而言,修复这个团队是其疾速成长路线的终点。让经验丰富的领导者来修复破碎的团队可能是最好的解决方案,因为他们可能更加自信和迅速地实现工作,但只有当这显然是通往更高的指标的跳板时,他们才会违心这么做。</li></ul></li></ul><h2>解决之道</h2><p>接手这个问题团队的人须要分明地意识到什么才是「优良」,并且要有坚持不懈的信心,每天都朝着这个指标致力,花多少工夫都在所不惜。他们的精力须要稳固而集中,如同流水般平静且继续,而不是狂躁不安。新的管理者还须要分别细节,明确团队中既有正当的埋怨也有不合理的,并违心去断定并解决这些问题。</p><h3>优化流程</h3><p>新经理首先须要着手的是优化那些生效的工作流程。问题团队存在着诸多不良流程,这些流程的问题体现在多个方面,通过改善流程能够解决,比方:</p><ul><li>常见且效率低下的日常站立会议和指标设定,通信提早频繁,工作打算和执行不足三思而行。</li><li>与其余团队之间简直没有无效的流程对接,因工作失误导致的团队间摩擦频发。常见的埋怨如「他们本应该分割咱们」和「咱们等他们等了良久」。</li><li>会议构造凌乱,更像是焦虑的机密团聚而不是高效的工作会议。<br/>改良团队中的流程,让其简略而无效,是晋升团队体现、至多让其看起来像个优良团队的无效办法。这对于向团队展现价值十分重要。</li></ul><p>团队中那些愤世嫉俗的成员可能会认为无需扭转现有流程。跟他们提出一个约定,试着依照新流程操作一段时间。良好的流程往往能迅速浮现成果,并帮忙那些持狐疑态度的人意识到,他们并非无所不知。</p><h3>排除负面因素</h3><p>随着新经理逐渐获得问题,团队中的前领导者可能会感到威逼。他们的影响力往往建设在批评管理层的根底上。可能须要逐渐淘汰那些流传负面文化的人。尽管他们有时会扭转做法,但这种状况并不常见。</p><p>要害是不要进一步提拔那些负面文化的传播者。例如,把一个负面的集体贡献者晋升为「团队领导」,不会解决任何问题,反而会使状况好转。</p><p>在解决负面文化传播者时,记住以下几点至关重要:</p><ul><li><strong>不要轻易认为有人是「站在你这边的」。</strong>你可能会想找人反对你反抗那些愤世嫉俗的团队成员,但外表上看似温和、正当的团队成员往往与你不理解的其他人有着严密的分割。一次小失误可能会引发正当(甚至致命)的投诉,因为人们试图拉帮结派。</li><li><strong>永远放弃沉着。</strong>如果你因负面的团队成员而失去沉着,那么你就输了。一次沉着的失控就足够让人们认为你不可信。记住,在简直所有状况下,你都能够说“我会考虑一下而后给你回答”,或者什么都不说。</li><li><strong>深刻问题外围。</strong>负面的团队成员往往是他们所处环境的产物 —— 被迫承当超出能力范畴的工作,是关键问题的最初防线。深刻理解问题的细节,承当起责任,这样你就能更好地了解他们的处境,给予帮助,并建设起良好的志愿。那些试图不深入实际状况就解决团队问题的管理者必定会失败。先理解那些简单的细节问题,而后着手解决。</li></ul><h3>招纳新鲜血液</h3><p>让新成员退出团队至关重要。新人可能带来全新的视角,对新任经理抱有一份初步的信赖与反对,并且通常不会轻易受到团队内既有的消极情绪的影响。</p><p>一个适合的新成员配合一个杰出的新经理,他们可能迅速地扭转团队的风貌,这种变动有时候会令人难以置信。许多团队之所以陷入困境,往往是因为多数声音嘹亮但态度消极的人士主导了舆论,而没有遇到无效的拥护。当团队中的其余成员开始反对新经理或新共事的观点时,那些持狐疑态度的人往往会失去他们愤世嫉俗的勇气。</p><h3>重塑使命</h3><p>团队的使命和责任往往须要从新定义,特地是那些导致成员适度累赘或产生组织抵触的根本权责问题。权责不明确往往是团队不良气氛的本源。</p><p>在退出新团队的前 3 至 6 个月里,你应该在流程和人员方面获得肯定的停顿,并且可能明确团队使命中须要调整的中央。你须要找出哪些方面须要明确界定,哪些方面应该放弃,以及哪些责任能够转交给别人,而后付诸实施。</p><h2>工作实现</h2><p>当新成员的退出和旧有消极文化主导者的来到,加之新流程的引入和使命的重塑,在某刻,大家加入会议时,所有仿佛顺其自然地运行起来。这样的转变,通常产生在新经理加盟后的 6 到 18 个月里。尽管你可能在最后的 1 到 2 周内看到一些成绩,但要彻底解决问题,往往须要 6 到 18 个月的致力。这段时间,大概笼罩了 1 到 2 个绩效评估周期,期间,基于高标准的决策将迫使人们作出留下或来到的抉择;同时,这也为新队友提供了足够的工夫来相熟环境并帮忙扭转团队文化;更重要的是,这段时间足以让人们慢慢忘却旧有的不满与埋怨,开始适应并享受你所营造的新环境。</p><p>但切记 - 即使是最好的团队也可能会倒退。因而,一旦你改善了团队情况,就须要额定警觉,确保不会再次回到先前的状态。</p><h2>应答危机</h2><p>有时候,你致力解救的团队可能会产生大规模到职。面对这种状况,放弃沉着至关重要 — 对事态全面失控的担心,往往比理论状况要重大得多。此时,你须要立即切换到应急模式:</p><ul><li>立刻暂停所有新的工作工作。尤其在软件开发团队中,新引入的代码简直总是新问题的本源。马斯克在接管推特时,决定暂停所有新代码的提交,以稳固零碎并通过一个精简高效的团队来实现这一指标 — 这是一个十分理智的决策。</li><li>亲力亲为,学习必要的常识来捍卫现有成绩,确保零碎运行不会呈现重大故障。</li><li>坚韧不拔地进行招聘,并将其作为优先事项。最蹩脚的状况是,你因为新工作的繁忙而疏忽了招聘,导致无奈通过减少人手来解决问题。</li></ul><h2>总结一下</h2><p>要修复破碎的团队,你须要依照以下步骤操作:</p><ul><li>首先进行精确的问题诊断,并选派一位新的领导者上任。</li></ul><p>新上任的领导者则须要:</p><ul><li>立即着手修改流程问题,并确保这些流程失去无效执行。</li><li>踊跃解决那些流传消极文化的成员,逐渐淘汰他们的影响。</li><li>亲自深刻到团队的日常工作中,全面理解零碎的运作。</li><li>至多引入一些新成员,为团队注入新鲜血液。</li><li>确保团队的使命和指标是明确且正确的。</li></ul><p>通过这些步骤,能够逐渐修复团队的问题,重建一个衰弱、高效的工作环境。</p><hr/><p> 更多资讯,请关注 Bytebase 公号:Bytebase</p></article>

March 4, 2024 · 1 min · jiezi

关于数据库:如何防止-Elasticsearch-服务-OOM

ES 和传统关系型数据库有很多区别, 比方传统数据中广泛都有一个叫“最大连接数”的设置。目标是使数据库系统工作在可控的负载下,避免出现负载过高,资源耗尽,谁也无奈登录的场面。 那 ES 在这方面有相似参数吗?答案是没有,这也是为何 ES 会被流量打爆的起因之一。 针对大并发拜访 ES 服务,造成 ES 节点 OOM,服务中断的状况,极限科技旗下的 INFINI Gateway 产品(以下简称 “极限网关”)可从两个方面动手,保障 ES 服务的可用性。 限度最大并发拜访连接数。限度非重要索引的申请速度,保障重要业务索引的访问速度。上面咱们来具体聊聊。 架构图所有拜访 ES 的申请都发给网关,可部署多个网关。 限度最大连接数在网关配置文件中,默认有最大并发连接数限度,默认最大 10000。 entry: - name: my_es_entry enabled: true router: my_router max_concurrency: 10000 network: binding: $[[env.GW_BINDING]] # See `gateway.disable_reuse_port_by_default` for more information. reuse_port: true应用压测程序测试,看看达到 10000 个连贯后,是否限度新的连贯。 超过的连贯申请,被抛弃。更多信息参考官网文档。 限度索引写入速度咱们先看看不做限度的时候,测试环境的写入速度,在 9w - 15w docs/s 之间稳定。尽管峰值很高,但不稳固。接下来,咱们通过网关把写入速度管制在最大 1w docs/s 。对网关的配置文件 gateway.yml ,做以下批改。 env: # env 下增加 THROTTLE_BULK_INDEXING_MAX_BYTES: 40485760 #40MB/s THROTTLE_BULK_INDEXING_MAX_REQUESTS: 10000 #10k docs/s THROTTLE_BULK_INDEXING_ACTION: retry #retry,drop THROTTLE_BULK_INDEXING_MAX_RETRY_TIMES: 10 #1000 THROTTLE_BULK_INDEXING_RETRY_DELAY_IN_MS: 100 #10router: # route 局部批改 flow - name: my_router default_flow: default_flow tracing_flow: logging_flow rules: - method: - "*" pattern: - "/_bulk" - "/{any_index}/_bulk" flow: - write_flowflow: #flow 局部减少上面两段 - name: write_flow filter: - flow: flows: - bulking_indexing_limit - elasticsearch: elasticsearch: prod max_connection_per_node: 1000 - name: bulking_indexing_limit filter: - bulk_request_throttle: indices: "test-index": max_bytes: $[[env.THROTTLE_BULK_INDEXING_MAX_BYTES]] max_requests: $[[env.THROTTLE_BULK_INDEXING_MAX_REQUESTS]] action: $[[env.THROTTLE_BULK_INDEXING_ACTION]] retry_delay_in_ms: $[[env.THROTTLE_BULK_INDEXING_RETRY_DELAY_IN_MS]] max_retry_times: $[[env.THROTTLE_BULK_INDEXING_MAX_RETRY_TIMES]] message: "bulk writing too fast" #触发限流告警message自定义 log_warn_message: true再次压测,test-index 索引写入速度被限度在了 1w docs/s 。 ...

March 3, 2024 · 2 min · jiezi

关于数据库:设计表时如何选择正确的数据类型

设计表时,如何抉择正确的数据类型前言假如当初有一个需要,须要创立一张orders表来存储客户的订单信息。假如表构造如下: CREATE TABLE orders ( order_id INT AUTO_INCREMENT PRIMARY KEY, -- 订单ID,主键,自增 customer_id INT NOT NULL, -- 客户ID,假如已在其余表中定义 order_date DATETIME NOT NULL, -- 订单日期和工夫 total_amount DECIMAL(10, 2) NOT NULL, -- 订单总金额,保留两位小数);这里须要设计一个status 字段,用来示意订单的以后状态。订单状态能够是以下几种:待领取、已领取、发货中、已实现、已勾销。 这个status字段在业务逻辑中十分重要,因为它会频繁地用于查问,更新等,不便用户查看本人处于不同状态的订单。 此时咱们应该好好设计该字段,在保障其满足根本业务需要的同时,性能和扩展性这些方面也要充分考虑,防止之后较大的保护老本以及性能开销。 回到这个字段的设计来说,当初咱们就有几种不同的数据类型抉择来存储这个status字段,而且也可能根本得满足业务要求,比方VARCHAR 类型,ENUM 类型,TINYINT 类型,具体设计如下: VARCHAR咱们能够抉择应用字符串类型VARCHAR来间接存储状态文本(如"待领取"、"已领取"等)。 ENUM咱们能够应用枚举类型ENUM('待领取', '已领取', '发货中', '已实现', '已勾销')来存储这些状态。 TINYINT咱们能够抉择应用较小的整数类型TINYINT,并为每种状态调配一个数字代码(如1=待领取,2=已领取等)。 这种状况下,status 字段时应该应用VARCHAR,ENUM 还是TINYINT 类型呢? 在平时开发设计时,咱们总是不可避免说会遇到相似这种抉择。这种状况下咱们应该怎么抉择呢? 能从哪些方面思考呢? 数据类型抉择的准则在 MySQL 数据表设计时,抉择适合的数据类型对于进步 数据库 的性能是至关重要且根底的。上面介绍一些简略的准则,帮忙咱们在遇到抉择时,能过做出更好的抉择。 更小的更好抉择可能在满足需要的前提下,占用最小存储空间的数据类型。 在执行查问和其余操作时会将数据加载到内存中,应用较小的数据类型能够缩小内存应用,从而容许更多的数据同时驻留在内存中,进步数据的处理速度。同时它们占用更少的磁盘、CPU缓存,并且解决时须要的CPU周期也更少。 同时,数据类型的大小也会对索引的性能产生影响。较小的数据类型也能够进步索引的效率,字段占据空间越小,该字段对应的索引更小,能够进步索引的查找速度并缩小磁盘I/O操作。这对查问性能有显著影响,尤其是对于大量数据和高负载的零碎来说。 举例来说,如果你晓得一个字段的值不会超过 255,那么应用 TINYINT 而不是 INT,这个不论是在存储空间还是查问效率上来说,都是TINYINT的性能更好。 然而要确保没有低估须要存储的值的范畴,因为扩大数据类型的范畴是一个十分耗时和苦楚的操作,也升高了零碎的可维护性和扩展性,这样子就得失相当了。 优先应用内建类型在数据库设计中,应该优先应用数据库的内置类型的示意,而不是一些通用类型。 优先应用数据库内建类型有以下益处: 性能方面,数据库都会对内建数据类型进行了优化,以提供更好的存储和检索性能。例如,内建的数值和日期类型通常比通用的字符串类型在索引、排序和比拟操作中体现得更好。 数据完整性方面,内建数据类型通常包含数据验证性能,能够在数据插入或更新时主动进行类型查看。这有助于避免有效数据的输出,从而保护数据的一致性和准确性。举例来说,DATE类型的字段将主动回绝任何不合乎日期格局的数据。 ...

March 3, 2024 · 1 min · jiezi

关于数据库:实时数据驱动API商品数据接口的三重保证助力您的业务飞跃

在当今快节奏、一直演变的商业世界中,企业如何可能迅速应答市场的瞬息万变?答案无疑是通过无效治理和利用数据资产。本文将带您深刻了解API商品数据接口如何激活这些资产,并确保您的企业在市场竞争中始终保持当先。数据整合:构建信息的核心枢纽设想一下,散落在各处的数据片段被对立拼凑成一个清晰的全景图。API商品数据接口就像是连贯这些碎片的胶水,让企业可能整合来自不同渠道和平台的数据。这个集成的过程不仅进步了数据的可靠性,还为决策提供了松软的根底,成为企业信息的外围力量。个性化体验:触动客户心弦咱们明确,每位顾客都心愿被看见、被了解。利用API获取的实时数据,企业可能洞察每位顾客的独特需要,提供他们所冀望的定制举荐和促销。这种策略不仅减少了销售机会,而且深入了客户的忠诚度,这是与顾客建设短暂关系的秘诀。动静定价:随市场起舞市场总是在变动,而企业须要随之起舞。API商品数据接口赋予企业灵便调整价格的能力,以适应市场的供需稳定。它就像一个灵活的价格指挥棒,指引企业在每一次价值最大化的机会中翩翩起舞。供应链优化:老本管制的智者供应链效率是老本管制的艺术家。通过API商品数据接口,企业能够监控库存和物流的脉搏,预测需要的变动,并及时调整策略。这样,库存危险降至最低,运输成本也被精心管制,如同一位精打细算的财务巨匠。剖析能力:将来的预言家集成API数据后,企业就领有了预感将来趋势的水晶球。先进的剖析工具帮忙企业洞悉市场动向、消费者行为和业务性能,为产品开发、市场营销和客户服务提供了数据反对的决策依据。跨平台销售:扩充影响力的高手在线上线下多个销售渠道同步产品信息和库存,就如同在地面撒下一张大网,捕获每一个销售机会。API商品数据接口让企业可能在各个平台上出现统一的产品信息,加强消费者的购买能源,这是扩充市场影响力的高超技巧。自动化营销:流动成果的放大器营销流动的自动化不仅进步了效率,还将流动成果推向新的高度。API集成使得多渠道促销流动的部署更加迅速,确保所有潜在客户都能接管到最新的优惠信息,就像确保每个顾客都收到了专属的邀请函。风险管理:巩固防线的守护者实时的商品数据是企业风险管理的守护神。API商品数据接口帮忙企业及早辨认潜在的供应链中断或市场稳定,采取预防措施,保障企业的稳固经营,就像一位时刻警觉的守夜人。结语:开启数据驱动的将来之门API商品数据接口是激活数据资产、减速决策、晋升体验、优化供应链、强化剖析和抢占市场先机的三重保障。在这个数据驱动的时代,最大化数据价值的企业将博得将来。是时候采取行动,利用API商品数据接口的弱小力量,让您的企业在一直变动的市场中怀才不遇。

March 2, 2024 · 1 min · jiezi

关于数据库:新一代湖仓集存储多模型统一架构高效挖掘数据价值

星环科技TDH始终致力于给用户带来高性能、高牢靠的一站式大数据根底平台,满足对海量数据的存储和简单业务的解决需要。同时在易用性方面继续深耕,升高用户开发和运维老本,让数据处理平民化,助力用户以更便捷、高效的形式去开掘数据价值。基于这样的主旨,星环科技TDH正式公布了9.3版本。推出了新一代湖仓集存储格局Holodesk,一份数据满足数据湖的离线实时接入、数仓的简单加工以及数据集市的剖析需要。防止数据冗余,缩小数据流转,晋升业务综合性能与时效性。同时,分布式计算引擎实现了向量化降级,综合性能大幅度晋升。此外,TDH 9.3对多模型对立技术架构进行了迭代降级,全新公布分布式向量数据库Transwarp Hippo。共反对11种模型数据对立存储管理,用对立查询处理语言实现跨模型数据流转与关联剖析,让业务开发更加便捷。新一代湖仓集一体架构突破湖仓集边界传统湖仓集混合架构,须要部署多个平台进行数据存储,造成数据冗余和存储资源节约。其次,数据须要跨平台ETL流转,流转开销高,时效性较差。数据跨平台流转中还容易导致不⼀致,影响业务正确性。此外,多平台的开发规范不统一,存在肯定的技术门槛,权限治理简单。当须要跨层数据时,重大依赖其余部门的数据⼯程师、数据科学家来加⼯数据,对数据分析师来说,数据分析摸索的效率大大降低。TDH9.3 突破数据湖、数据仓库、数据集市的边界,基于湖仓集一体平台,所有人都能够拜访实时的数据、历史的数据、原始的数据、加工过的数据。如业务分析师能够间接拜访最原始的数据,数据工程师能够更高效地建模,数据科学家能够横跨不同的数据源进行数据分析和开掘。基于TDH9.3湖仓集一体架构,各种类型的数据通过数据集成工具,通过离线或者实时的形式加载到TDH中,结构化数据统⼀由Holodesk来承载湖仓集的存储。通过统⼀SQL引擎和统⼀计算引擎,实现湖仓集数据的统⼀解决、查问、加工,撑持多种应⽤场景。配合统⼀的运维、审计、权限、告警等性能实现平台的统⼀治理,防止反复建设。一种存储格局,满足湖仓集关系型数据存储需要TDH 9.3将之前的⾼性能存储格局Holodesk进行了重构,只需一个存储格局即可同时满足湖仓集的数据接入、数仓加工和高性能数据分析。在全新的存储引擎下,能够将湖仓集的所有数据都放在对立的存储格局里,不须要针对不同的建设去应用不同的存储引擎。可能同时⽀持离线批量数据和实时数据的接入,同时也反对高性能的模型加工、批处理、在线剖析等计算需要。相比ORC,更多功能、更高性能 相比于之前版本的ORC事务表,TDH9.3的Holodesk具备更多的性能和更高的性能。无需手工分桶:ORC事务表须要手动分桶,对开发和运维人员是十分大的挑战。TDH9.3 Holodesk不须要手动分桶,存储引擎主动做数据切片和分布式,用户无需关注分桶数,大幅简化了建表流程和老本。非分桶文件主动合并:Holodesk具备更灵便,更多策略的文件管理系统,主动将任意的非分桶文件依照适合的大小进行合并,防止桶文件过大或过小的状况,缩小运维上的投入。高频实时数据写入:实时场景下,Holodesk反对实时流计算引擎Slipstream的实时数据写入和Batch Insert批量写入,满足数据湖的实时数据接入需要。性能数倍晋升:Holodesk的IO性能是ORC事务表的10倍以上,在TPC-DS 1TB数据集测试中,相⽐于ORC事务表,TDH 9.3 Holodesk的性能晋升了3倍。相比开源湖仓,翻新技术降本增效 相比于开源湖仓技术,如Hudi / Iceberg等,TDH湖仓集一体在多项技术方面实现了晋升和翻新,帮忙用户升高开发运维老本,进步开发剖析效率,晋升数据处理剖析性能。四种事务隔离级别:开源湖仓技术个别是基于快照的事务隔离,而TDH反对残缺四种事务隔离级别,特地是在简单的高并发比数仓业务场景下,用户能够依据业务需要调整事务隔离级别,满足不同事务处理的要求。小文件灵便、主动合并:开源湖仓技术小文件须要手工合并治理,须要通过代码来调⽤,保护老本较⾼。TDH具备灵便的多策略、独⽴资源来主动合并小文件,保护老本更低,读取性能更好。实时数据疾速读写:开源湖仓技术的实时数据写入基于Merge on Read,尽管写得快,但读起来很慢。TDH9.3优化了实时数据写入的合并逻辑,防止大量文件在读时再合并,实现写快读快,具备更好的剖析和加工性能。无需流转,湖仓集一体化存储:开源湖仓技术在集市剖析场景下须要流转到内部剖析引擎中,而基于TDH9.3的湖仓集一体架构,实现了湖仓集对立存储格局,数据⼀体化存储不冗余,也无额定数据流转开销,整体零碎复杂度更低,综合时效性和性能更强。向量化计算引擎降级,引入CodeGen技术TDH9.3在存储降级的同时,向量化计算引擎引入了CodeGen代码生成技术,将简单的、高开销的算⼦代码⽣成为能更⾼效调⽤GPU指令集的Native Code。生成的Native Code逻辑更简略。防止了多余的运算和函数调⽤,运⾏更⾼效,同时Native引擎也不会GC(垃圾回收),防止因GC导致性能升高。综合性能大幅晋升,再破TPC性能巅峰TDH是寰球首个通过TPC-DS基准测试并经官网审计的产品,此次存储和计算引擎的双重降级,在TPC规范测试集中,TDH再⼀次冲破了TPC-DS、TPC-BB、TPCx-HS 3个测试集的性能。在TPC-DS 10TB测试集中,TDH⽐以后公开的最好问题,性能晋升了27%。在TPC-BB 3T测试集中,TDH是以后公开的最好问题的2倍,同时零碎老本升高了67%。在TPC-HS 3T测试集中,TDH比以后公开的最好问题,性能晋升3%,同时零碎老本升高了69%。此外,通过很多理论业务的验证,通过将CDH业务迁到TDH上,简略的业务加工性能是CDH的1.26倍,简单业务加工是2.69倍,并发跑批是2倍,业务查问是1.66倍。而在替换开源数据库GP后,TDH在简单剖析上基本上能实现4-9倍的性能晋升。

March 2, 2024 · 1 min · jiezi

关于数据库:白话大模型③-我们为何需要机器学习运营平台

文言大模型系列共六篇文章,将通俗易懂的解读大模型相干的专业术语。本文为第三篇:咱们为何须要机器学习经营平台? 作者:星环科技 人工智能产品部 在人工智能、尤其是其机器学习子畛域里,“没有收费的午餐”(No Free Lunch Theorem)效应也很显著,简略的说: 1.缩小了人工去做各类特征提取(比方测量人的瞳距),就须要大量“不同”的数据,来训练模型,失去“映射关系”,至于“什么是不同,怎么不同,要的量多少,事实中这种不同很少,能不能合成或生成?”,都是必须要思考的,技术计划不同造成的优劣差距极大。 2.比拟难达到“一个模型适应所有场景”的状态,比方即使在“人脸识别”技术倒退到如此高度的明天,在 2020 年初,本来好用的手机人脸解锁,面对带口罩的人脸,也是无能为力的,不得不反复方才映射关系步骤来晋升能力。那么,在人工智能畛域“头疼医头脚疼医脚”的打补丁做落地能够么?短期能够,长期不能够。 •试验性质或概念验证性质,能够,比如说,咱们须要一个“人脸识别”小工具,咱们能够采集一些数据,训练一个模型,而后应用; •投入市场长期经营的产品,不能够。需要、数据、环境在不断扩大、变动,以机器学习和神经网络这类“数据驱动”的人工智能的运行逻辑,导致每次更新(更新大小并不是人认知的含糊的大小,而是机器能解决的数量化后的大小),都须要从新训练模型,从新采集数据,从新标注数据,从新建设模型,从新验证模型,从新上线,这个过程重来一遍是十分耗时耗力的; •事实上,绝大部份企业外面,存在大量的智能化利用,不单单是一个“人脸闸机”这么一个,于是更加不能零散治理。一个不失当的比喻,古代企业很多软件、数据的搭建,就相似一个小城市的布局建设,而不是一个房子的建设,这个时候,咱们须要的是一个城市规划师和一整套环卫、治安、电力、医疗等班底,而不是一个长期小楼的包工头的草台班子。于是,为了满足消费者(或者企业用户)一直变动和增长的需要,才有了市场才对“智能数据分析平台”这样的软件有需要(咱们下节会形容“数据分析”是什么): 要能解决和治理方才建设映射用的图像样本(即:“数据”);要能建设和治理下面从图像到向量“映射”(即:模型或“算法”);要能治理和调度图到向量,以及图查图消耗的计算资源(即:“算力”)。这些都是“智能数据分析平台”须要做的事件。 如同城市治理假如有管理中心,为了保障智能软件的长期安稳运行,也要有一个指挥、监控、运维核心: •要能对立的治理、监控“数据”、“模型”、“算力”的存储、治理、调度、应用 •要能对立依据新问题、新需要,改良“映射”(即:“模型继续晋升”) •要能对立解释“映射”和成果之间的关系:如是否合乎常识、是否法律法范、是否偏心公正。这个核心,就被称作“智能数据分析平台经营平台”(或者合乎国际惯例:“机器学习经营平台”, Machine Learning Ops Platform, i.e. MLOps platorm),特质就是“六个对立”。 不论是否是“大模型”厂商,只有致力于“将模型从实验室和原型验证推向真正生产实践”,都须要这样的平台。比方 2022 年以来最胜利大模型供应商 OpenAI,在其官网的最佳实际中,就明确写了 MLOps 的重要性,与咱们下面的形容简直如初一辙(但“大模型”要求更高)。

March 1, 2024 · 1 min · jiezi

关于数据库:白话大模型②-如何提升AI分析的准确性

文言大模型系列共六篇文章,将通俗易懂的解读大模型相干的专业术语。本文为第二篇:如何晋升AI剖析的准确性?作者:星环科技 人工智能产品部面对AI剖析落地时的数量化、准确性、泛化性等问题,让咱们略微深刻理解下以后的做法。这里只做形式化的简要概述:1.需要合成:将需要合成为若干个子问题,比方“人脸检索”能够合成为“人脸检测” 和“人脸识别”两个子问题;2.技术手段:手工提取费时费力精度低,那么:•建设映射关系:应用“数据驱动”的“深度学习”主动提取特色和建设人脸图像到人脸嵌入向量 的映射关系,再次揭示嵌入向量就是能形容人脸的一个多维度的向量;•建设人脸卡片目录:应用这个映射关系,将人脸图像转化为 ID-人脸嵌入向量对;•建设高效的查询方法:应用同样的映射关系,解决待查的图像,而后应用人脸卡片目录中的人脸嵌入向量,找到最类似的ID,而后再找到对应的人脸图像。由此,咱们构建进去了一个“人脸识别”的小工具的架子。然而问题在于:1.怎么构建这样的映射关系?答:用“数据驱动”的“机器学习”办法。2.怎么建设人脸卡片目录和构建查询方法?答:用各类“数据库”或者更狭义的“信息检索技术”。加上引号的词汇,都是“术语”,咱们不急于解释和类比,因为会产生更大的歧义。咱们看看理论生产中,是怎么做的。建设映射关系• 数据采集 :采集大量的含有清晰可见的人脸数据,依据要求和“泛化性”不同,除了正脸,咱们还须要侧脸、带口罩、大俯仰角、芜杂背景(比方人在花丛中)、多人脸(比方会议合影)等各种状况的数据;• 数据荡涤 :将显著不合乎需要的数据剔除,比方:人脸不清晰、人脸不残缺、人脸不在核心、人脸不是正脸、人脸不是人脸(比方是猫脸)等,再比方算法上有问题的:反复的(间接反复、有些地位挪动/旋转的)、数据毒害的(成心数据投毒的、比方打印的人脸/面具而不是实在人脸的)等等,荡涤出“高质量”数据理论工作远比看上去的简单得多得多;• 数据标注 :标注出 1. 人脸的地位(比方画一个框,将人头框入;但事实可能有更简单的状况:比方精确绘制出一个多边形而不仅仅是长方形了,或者图像是 3D 的) 2. 其余信息(比方人的一些 ID/性别等属性)• 特征提取 + 建设模型 :构建“人脸”(图像)到“人脸嵌入向量”(一串数字)的映射(构建办法咱们叫“算法”):• 这个映射是一个黑盒子,下面有很多旋钮,输出是“图像”,输入是“嵌入向量”;• 咱们只能调整旋钮来管制输入;• 咱们能够验证输入的后果是否合乎咱们的需要并作出:调整旋钮,考查咱们预测进去的“人脸框”和其“ID”和标注的是否一样,不一样则调整,直到合乎为止;• 调整的过程咱们叫“训练”,调整的办法咱们叫“最优化办法”,应用的人力和组织模式能够了解成“算力”。不论是否合乎普通人的认知:在应用了大量的数据后,咱们能够失去一个“人脸嵌入向量” 的“映射关系”,也就是{黑盒子自身 + 旋钮的扭转档位},这个组合可能将“人脸图像” 转化为“人脸嵌入向量”,这个向量是一个多维度的数字,咱们能够认为这个数字是“人脸”的“特色”。• 模型晋升:来了新状况,准确度等不够(比方辨认不了带口罩的人脸),咱们能够持续采集数据,而后从新训练模型,失去新的“映射关系”,做到晋升。

March 1, 2024 · 1 min · jiezi

关于数据库:白话大模型①-AI分析能做什么在实际落地中会碰到什么问题

文言大模型系列共六篇文章,将通俗易懂的解读大模型相干的专业术语。本文为第一篇:AI剖析能做什么?在理论落地中会碰到什么问题?作者:星环科技 人工智能产品部咱们应用一个简略的利用实例来解析人工智能剖析都在做什么。以繁多AI利用为例人脸检索咱们以人脸检索为例,来看看利用“人工智能”能力的流程。留神到,实际上有几个视角。•问题是什么:假如曾经有很多不同人的侧面照(比方证件照)以及对应的 ID,当初拍摄到了一张某人的新照片,咱们须要判断这张照片中是的人是谁?•步骤是什么: 根本流程大部分人脑中都有根本印象了,是一套固定的模式图 1 根底流程比方人脸的例子“采集数据”就替换成“采集人脸数据”残缺的流程 图 2 剖析典型的人脸识别要做什么一般而言,残缺的数据分析流程的步骤是绝对简短的,下面的内容展现了一个典型的“人脸识别”的 AI 利用状态在“需要剖析”角度看,在做什么。应用一个在数字化、智能化之前就存在的例子来说,这就相似在图书馆查书名、作者,能够不便的找到想要的编号(ID)和其所在的书架并借阅这本书。理论工作比较复杂简单很多,咱们上面会略微具体的叙述。首先从“数量化”开始。数量化首先,咱们须要将人脸照片转化为计算机可能了解的数据。这个过程叫做“量化”。比方晚期的图书馆检索,是通过人工编制索引卡片,而后通过卡片找到书籍的地位。这个过程就是“量化”。咱们将书籍的信息转化为了卡片的信息。图 3 我国澳门公共图书馆的卡片目录(柜)能够看到,为了检索为目标,图书卡片目录至多要1.保留书籍的信息(书名、作者、出版社、出版日期等)2.保留书籍的地位(柜号、层号、架号、排号等)3.保留书籍的编号(索书号、ISBN 等)对应到人脸识别,咱们须要保留的信息也是相似的。咱们须要保留的“人脸卡片目录”信息包含(权且认为):1.人脸的特色(比方眼睛、鼻子、嘴巴等):能够是绝对大小、色彩等2.人脸的地位:能够是绝对地位、相对地位等3.人脸的编号:能够是身份证号、学号等实际操作中,人脸卡片目录个别都“编码”成了一串固定长度,比如说 1024,的数字(也就是“向量”),其有个特定且形象的名字“嵌入向量”:将人脸的特色(比方瞳距、鼻宽等)、地位(眼绝对鼻间隔等)、编号等信息,”嵌入“到这 1024 维的“向量”中。然而,咱们须要留神到,这些信息都是“人工”提取的。这个过程是十分耗时的。而且,这些信息的提取是十分“主观”的。不同的人可能会提取出不同的信息。而且,更重要的是,这样提取,很难保障“准确性”和“泛化性”。不思考严格的学术定义,这两个带引号的词的含意是:准确性依照提取的信息,可能精确的找到对应的书籍/人脸的概率。这里,因为信息不精确等问题,通常可能检索出多个待选后果,这里的准确性个别是指排名前几的后果中,是否蕴含正确后果的概率。这比拟好了解,一位作家可能写了多本书,书名、年代可能类似,查问者记忆比拟含糊,问的不精确,都可能只能找到一个“范畴”。这个范畴内,可能有多本书,然而只有一本是正确的。这个时候,咱们就须要“筛选”了。到了“人脸检测”,这个问题可能更重大些。依据口、耳、鼻状态的的手工构建的数量化特色,排列组合可能性来找到“类似”的人脸。这样操作下来,排序后找到最类似前五名,应用十五年前最厉害的算法,真正想找的人在其中的概率连一半都不到。事实上,只管“人脸识别”这个需要自有视频监控和照相技术后就始终是刚需,但这么低的准确率始终继续到 2010 年前后。新的”办法“的呈现,才使得准确率有了质的晋升。泛化性泛化是个妨碍人工智能在利用中大规模铺开的问题。泛化性是指,对同一个问题,对于“新的数据”,人工智能模型还能保障原有的性能(比方查找精度等)。但事实上,问题很多,比方:1.检索书籍中,本来书籍题目限度在 20 字以内,然而当初有了超过 20 字的书籍,比方白居易《望月有感》的诗,题目是《自河南经乱,关内阻饥,兄弟离散,各在一处。因望月有感,聊书所怀,寄上浮梁大兄,于潜七兄,乌江十五兄,兼示符离及下邽弟妹》,共 50 个字,这个时候,原有的卡片目录抄录不下。2.检索人脸中,本来的人脸照片都是侧面照,然而当初有了侧面照,这个时候,原有的卡片目录就无奈应用了。或者,在最近两年中,本来好用的手机人脸识别解锁,在人带了口罩后(甚至遮挡并不算多),就无奈应用了。以上的例子亘古未有,这些问题都是“泛化性”问题。同一个问题, 新的数据,这些日常应用的单词,并没有数量化的定义,甚至不同人、不同畛域的认知都齐全不同,也主观上导致了事实中 AI 落地的诸多问题。

March 1, 2024 · 1 min · jiezi

关于数据库:基于图数据库构建知识图谱平台应用实践

▏摘要中信证券基于分布式图数据库StellarDB,代替国外开源图数据库产品,打造全新的企业级常识图谱平台,利用于同一客户团体画像、科创板关联发现、危险事件报告、寰球企业关联图谱、产业链图谱、投研图谱、反洗钱与稽核图谱、元数据图谱等利用场景。▏问题过来,中信证券基于Neo4j社区版构建各类图数据库利用,但社区版存在不反对多实例需要、计算资源限度及不满足高可用、不足对立治理需要等问题。▏口头• 2021年为了满足企业级利用,中信证券基于星环科技分布式图数据库StellarDB和常识图谱平台SophonKG,打造了全新的企业级常识图谱平台,常识图谱平台的图存储技术为自研KV存储,存储设计依照属性图模型设计,满足TB级存储需要;2023年5月,中信证券实现常识图谱平台的扩容,并基于StellarDB 5.0进行架构降级;• 基于常识图谱平台,中信证券构建了同一客户团体画像、科创板关联发现、危险事件报告、寰球企业关联图谱、产业链图谱、投研图谱、反洗钱与稽核图谱、元数据图谱等十余个利用。▏后果• 中信证券常识图谱平台实现了一站式运维治理、调度治理和权限治理等,满足高可用要求要求,性能晋升数倍,在金控报送方面节省时间老本约30% 。分享专家:陈辉华,中信证券高级副总裁作者:沙丘社区分析师团队案例企业中信证券股份有限公司成立于1995年10月,2003年在上海证券交易所挂牌上市交易,2011年在香港联结交易所挂牌上市交易,是中国第一家A+H股上市的证券公司,率属于中国中信集团有限公司。中信证券目前领有7家次要一级控股子公司,分支机构遍布寰球13个国家,中国境内分支机构和网点400余家。中信证券规模劣势显著,是国内首家资产规模冲破万亿元的证券公司。次要财务指标间断十余年放弃行业第一,各项业务放弃市场领先地位,多年来取得亚洲货币、英国金融时报、福布斯、沪深证券交易所等境内外机构颁发的各类奖项。我的项目背景2018年,中信证券基于Neo4j社区版构建各类图数据库利用,但社区版存在不反对多实例需要、计算资源限度及不满足高可用、不足对立治理需要等问题。2021年,随着利用激增,为了满足企业级的建设须要,中信证券基于星环科技分布式图数据库StellarDB和常识图谱平台SophonKG,打造了全新的企业级常识图谱平台,常识图谱平台的图存储技术为自研KV存储,存储设计依照属性图模型设计,满足TB级存储需要。在图数据库服务的顶层,还提供了丰盛的接口,如Java、Python、RESTful API等,不便自定义开发,重构了企业图谱及团体客户画像、危险事件报告、科创版关联发现以及联机剖析等十余个利用。2023年6月,中信证券实现了常识图谱平台的扩容,并基于StellarDB 5.0进行了架构降级。解决方案为搭建图谱独特的HTAP架构,实现对立图存储服务和多套计算引擎资源物理隔离,满足图计算和图查问工作的不同资源须要;在集群中部署1套图存储服务和3套Quark计算引擎服务,多个Quark之间能够共享元信息。构建一种基于图构造数据的端到端全流程图机器学习框架,其底层与图数据库严密对接,以实现高效的数据读写和查问过滤等预处理工作的下推。解决方案基于星环科技分布式图数据库StellarDB和常识图谱平台SophonKG,中信证券常识图谱平台实现计划如下:星环科技分布式图数据库StellarDB提供大数据处理能力和通用组件能力,反对平台内一站式运维治理;常识图谱平台为星环科技知识图谱平台SophonKG,提供图谱构建、图谱交融、图谱查问、可视化以及图谱计算、图谱分享等能力。常识图谱平台业务性能特点如下:第一,多模查问和存储。应用对立的Quark计算引擎,SQL联合图语言Cypher的多模查询语言,能够实现多模查问;反对hive、文本文件、图模型等多模态存储。第二,多场景利用。常识图谱平台撑持10余个上游利用;SophonKG提供自助剖析平台,反对业务自助摸索图谱;提供图机器学习能力,利用于ETF举荐和场外配资等场景。第三,高性能。星环科技在计算引擎侧引入local+cluster混合计算模式策略,自若应答实时和离线剖析;原生分布式图数据库,领有解决百亿级图数据的能力;搭建HTAP架构,AP算法工作和TP查问工作拆散。第四,高可用。采纳多节点HA形式,提供高可用服务;应用Raft协定,提供秒级正本切换服务;通过Kubenetes实现故障主动复原;依据DAG执行打算,重试失落/出错工作。常识图谱平台的利用场景如下:(1)同一客户团体画像中信证券采纳Louvain社区发现算法,开掘团体簇,最初在各自团体簇内企业,沿关系向上获取归属团体,联合风控提出的个性化需要,例如银行不再上穿、集体团体认定等,数据库提供丰盛的Cypher简单逻辑的解决能力。(2)科创板关联发现策略投资者持有科创版股票不容许做融券卖出,中信证券通过最短路径分析(不限定方向不定长查问,去掉任职关系),查看两者的利益关联关系。(3)危险事件报告基于统计维度(持仓、衍生品标的、客户)和业务条线(自有资金业务、资管业务、经纪业务、投行业务、托管业务),中信证券框定11种角色。通过舆情平台监控危险事件,当产生危险事件时,通过客户谱系找到成员企业及其持仓,主动通过邮件输入报告发送给业务方及领导进行实时监控。(4)寰球企业关联图谱将境外企业输入与境内企业交融,外围节点是企业、员工、关系人、产品、营收、行业、金融产品,共包含19种关系、3亿实体、4亿关系。(5)产业链图谱将第三方产业链数据加载到图谱中,为公司客户经理提供产业链服务,直观展现已开发、已服务、待开发的客户,帮忙客户经理开掘商机。(6)投研图谱从部委的政策源登程,通过NLP技术提取每条政策的外围观点和行业板块等,同时联合新闻舆情源的信息,对二者进行匹配和召回,计算政策影响因子值,通过产业链流传算法失去流传系数,联合图流传算法找到个股因子,回测成果绝对收益达到25%。(7)反洗钱与稽核图谱通过对连通子图的开掘,合规人员能够从高风险人员登程,找出潜在可疑团伙。(8)元数据图谱多跳(8+)的数据血统neo4j社区版查问不出后果,基于StellarDB弱小的多跳计算能力和改良的expand算法,实现15跳内的数据血统(溯源和影响性剖析)。价值与成果中信证券常识图谱平台实现了一站式运维治理、调度治理和权限治理等,满足高可用要求要求,性能也晋升了数倍,在金控报送方面节省时间老本约30%,目前成绩在公司内广泛应用。

March 1, 2024 · 1 min · jiezi

关于数据库:实时数据驱动API商品数据接口引领业务飞跃

在数字化浪潮中,企业必须疾速应答市场的瞬息万变。实现这一指标的外围在于无效治理和利用数据资产。本文将深入探讨API商品数据接口如何激活这些资产,并确保您的企业在强烈的市场竞争中抢得先机。数据整合:企业信息的外围力量数据整合是构建弱小信息外围的首步。API商品数据接口容许企业将扩散在各个渠道和平台的数据汇聚在一起,造成一个全面且统一的视图。这种集成不仅晋升了数据的可靠性,还为高层决策提供了松软的根底。 个性化体验:贴近客户的要害消费者渴求的是个性化体验。利用API获取的实时数据,企业可能深刻洞察客户需要,从而提供合乎他们冀望的定制举荐和促销。这种策略不仅减少了销售机会,而且增强了客户的忠诚度。 动静定价:把握市场脉搏实时市场数据使企业可能灵便调整价格策略,以适应市场供需变动。API商品数据接口提供了一个实时反馈市场稳定的工具,帮忙企业抓住每一个价值最大化的机会。 供应链优化:高效与老本的均衡艺术供应链效率间接关系到企业老本管制。通过API商品数据接口,企业能够实时监控库存和物流,预测需要稳定,并及时调整策略,从而缩小库存危险并升高运输成本。 剖析能力:预感将来趋势集成API数据后,企业能够利用先进的剖析工具来洞悉市场动向、消费者行为和业务性能。这些剖析成绩为企业在产品开发、市场营销和客户服务等方面提供了数据反对的决策依据。 跨平台销售:扩充市场影响力在多个销售渠道同步产品信息和库存对于品牌影响力至关重要。API商品数据接口让企业可能在线上线下多个平台上出现统一的产品信息,加强消费者的购买能源。 自动化营销:晋升流动成果营销流动的自动化进步了效率和成果。API集成使得多渠道促销流动的部署更加迅速,确保所有潜在客户都能接管到最新的优惠信息。 风险管理:构筑巩固防线实时的商品数据赋予企业弱小的危险预测和防备能力。API商品数据接口帮忙企业及早辨认潜在的供应链中断或市场稳定,采取预防措施,保障企业的稳固经营。 结语:开启数据驱动的将来API商品数据接口是激活数据资产、减速决策、晋升体验、优化供应链、强化剖析和抢占市场先机的要害。在这个数据驱动的时代,最大化数据价值的企业将博得将来。当初是时候采取行动,利用API商品数据接口的弱小力量,确保您的企业在一直变动的市场中放弃竞争力。

March 1, 2024 · 1 min · jiezi

关于数据库:IPv6的发展构建数字化未来的基石

随着互联网的继续倒退和数字化技术的迅猛提高,IPv6作为下一代互联网协议,正逐步成为构建数字化将来的基石。本文将探讨IPv6的倒退历程、特点以及对将来互联网倒退的影响。 IPv6的倒退历程:IPv6(Internet Protocol version 6)是IPv4的后继版本,旨在解决IPv4地址枯竭、安全性和性能等方面的问题。IPv6最早由IETF(Internet Engineering Task Force)提出,并于1998年公布了RFC 2460规范,逐步成为互联网的下一代协定。IPv6相较于IPv4具备以下几个显著特点:更大的地址空间:IPv6采纳128位地址,比IPv4的32位地址空间大得多,实践上能够提供约3.4 x 10^38个地址,解决了IPv4地址枯竭的问题。改良的安全性:IPv6内置IPSec协定,提供端到端的数据加密和身份验证,加强了网络通信的安全性。更好的移动性反对:IPv6反对更高效的移动性治理,为挪动设施提供更稳固、更牢靠的连贯。简化的头部构造:IPv6的头部构造相比IPv4更加简洁,缩小了路由器解决数据包的累赘,进步了网络性能。IPv6的影响与挑战IPv6的倒退对将来互联网的影响不可估量:推动数字化转型:IPv6的广泛应用将促成各行各业的数字化转型,推动物联网、大数据、人工智能等新技术的倒退和利用。晋升网络安全:IPv6的内置平安性能将有助于晋升网络通信的安全性,缩小网络攻击和数据泄露的危险。促成寰球互联:IPv6的地址空间微小,能够反对更多的设施连贯到互联网,促成寰球互联的倒退。然而,IPv6的推广和利用也面临着一些挑战,如网络设备兼容性、应用程序适配等问题,须要各方共同努力解决。IPv6作为下一代互联网协议,具备更大的地址空间、更好的安全性和移动性反对等劣势,将成为构建数字化将来的重要基石。随着IPv6的逐步推广和利用,咱们有信念在将来建设更加平安、高效、智能的互联网,实现数字化时代的美妙愿景。

March 1, 2024 · 1 min · jiezi

关于数据库:QPS-提升-10-倍滴滴借助-StarRocks-物化视图实现低成本精确去重

作者:滴滴 OLAP 开发工程师 刘雨飞 小编导读: 滴滴于 2022 年引入了 StarRocks。通过一年多的致力,StarRocks 逐步代替了原有技术栈,成为滴滴外部次要的 OLAP 引擎。截至 2023 年 12 月,滴滴曾经胜利建设了超过 40 个 StarRocks 集群,每日查问量在千万量级,领有超过 3000 张数据表。这一弱小的基础设施已广泛支持了滴滴公司简直所有的业务线,包含网约车、单车、能源、货运等多个畛域。 ⚠️ 对于滴滴对立 OLAP 引擎的具体内容已在“StarRocks 对立 OLAP 引擎在滴滴的摸索实际”进行了具体解说,本文将着重探讨 StarRocks 物化视图在滴滴的理论利用。 高并发精准去重 实时数据洞察的拦路虎 实时数据洞察在业务管理中的重要性无可替代。在滴滴外部,网约车实时看板是公司最要害的业务监控工具之一,蕴含着超过 20 个重要的业务指标,如实时呼叫量、冒泡数量和 GMV 等。这些实时看板数据对于业务、数据和经营团队至关重要,提供了即时见解,帮忙咱们更好地理解业务的状态和趋势。 通过实时监测这些数据,咱们可能迅速应答市场稳定,做出及时决策,例如: 实时呼叫量变动可帮忙咱们满足顶峰需要,缩短乘客等待时间,进步司机收益;冒泡数量稳定可提醒哪些地区需减少司机资源,满足潜在乘客需要;然而,要害业务指标的计算通常须要大量的准确去重操作,尤其在顶峰访问期间,这可能会对资源造成微小压力,也是泛滥 OLAP 零碎始终以来的挑战之一。为了均衡计算成本,许多零碎就义了准确性,提供含糊去重的办法,这也是滴滴过来基于 Druid 的指标计算计划所采纳的策略。然而,含糊去重办法存在计算误差,这意味着咱们可能无奈齐全精确地反映业务的理论状况,从而难以实现更精细化的经营决策。此外,即使为了升高资源耗费而就义了准确性,含糊去重节俭的资源在高并发场景下仍旧是无济于事。在大规模促销流动期间,高并发查问可能导致 Druid 集群的稳定性问题,引发性能降落、响应工夫缩短甚至零碎解体,这对一个依赖实时数据的业务来说是不可承受的。 因而,咱们迫切需要一种新的解决方案,在可控的资源开销下,实现高并发的准确去重,以更好地反对业务经营和决策。StarRocks 的物化视图帮忙咱们实现了这一指标。 StarRocks 物化视图让精准去重的落地和减速不再是夸夸其谈 实时看板场景具备以下显著特点: 高基数的准确去重。看板须要面对日增量上亿规模的明细数据,并针对明细数据进行大量 count(distinct()) 计算。并且,在理论利用中,准确去重的用户、订单 id 通常是字符串,这对计算资源造成了微小挑战。 反对灵便的维度筛选。看板查问提供了多种筛选条件,包含工夫、城市、业务线等超过十个维度字段的组合。每天的实在查问可能会波及上千种维度组合。查问并发高。尤其在大促期间,数据开发以及业务经营都会亲密关注业务刹时变化趋势,顶峰期间可能有上千规模的用户盯盘。指标数据依照分钟级别刷新,每次刷新会触发大概几十次查问计算,则顶峰期间可能有数百 QPS,对集群负载要求十分高。如果每次查问都间接应用原始明细数据进行计算,将耗费大量计算资源,这在老本上是难以承受的。 这样的业务场景对查问引擎提出了十分高的要求。自 2022 年起,滴滴曾经在网约车、单车、能源、货运等多个畛域利用了 StarRocks,咱们也在亲密关注社区的新性能。异步物化视图是针对通明查问减速、高并发场景研发的利器,自其公布之后,咱们就开始了这个场景的测试验证。尝试物化视图次要是因为其以下几个特点: 物化查问后果:物化视图能够通过 SQL 查问来将计算结果缓存下来。缓存下来的后果能够被看作是一张物理表,相比 index(同步物化视图),在高并发的场景下体现更加优良。托管刷新流程:相较于手动保护导入工作,物化视图的刷新不仅能够定时触发,还可能依据数据变更做到分区级别的增量刷新,升高刷新老本。通明查问改写:物化视图反对智能的通明改写,可能将物化的后果更大范畴的利用到更多查问减速上。用户无需感知物化视图的存在,即可减速查问体验。StarRocks 实时准确去重最佳实际 在联合业务特点和 StarRocks 的物化视图能力,咱们设计了整个看板场景的减速优化链路。以下是设计的次要思路: ...

March 1, 2024 · 3 min · jiezi

关于数据库:万字带你走过数据库的这激荡的三年

本文收集了卡内基梅隆大学计算机科学系数据库学副教授 Andy Pavlo 从 2021 到 2023 间断三年对数据库畛域的回顾,心愿通过间断三年的回顾让你对数据库畛域的技术倒退有所理解。 对于 Andy Pavlo:卡内基梅隆大学计算机科学系数据库学副教授,数据库调优公司 OtterTune 的 CEO 兼联结创始人。为了聚焦于数据库技术趋势演变,本文未对原文“寒暄式”结尾和正文性语句作翻译。此外,为了节约局部读者的工夫,本文分为“观点简述”及“历年回顾”两局部:在“观点简述”局部,你将理解到 Andy 这 3 年对数据库的认识、见解;在“历年回顾”局部,你将理解到该年具体的数据库畛域产生的事件,以及 Andy 对该事件的认识。 本文目录: 观点简述历年回顾 2023 年数据库回顾:向量数据库尽管大火,但没有技术壁垒 向量数据库的崛起 Andy 说:向量数据库没有技术护城河SQL 继续变好 属性图查问(SQL/PGQ)多维数组(SQL/MDA)Andy 说:SQL:2023 是个里程碑MariaDB 的窘境 Andy 说:数据库的名誉比以往任何时候都重要美国航空因政府数据库解体而停飞 Andy 说:历史悠久的外围数据系统,是每个数据库从业者最大的噩梦数据库的融资状况 Andy 说:无论初创公司,还是高估值的公司日子都不好过史上最贵的明码重置 Andy 说:意料之外的小人物生存2022 年数据库回顾:江山代有新人出,区块链数据库还是那个傻主见 放缓的大规模数据库融资 Andy 说:不只是 OLAP 畛域,OLTP 畛域前景也一样严厉区块链数据库还是那个蠢点子 Andy 说:有让人服气的用例才是合格的新技术新的数据系统 Andy 说:怅然看到数据库畛域的勃勃生机数据库先驱的去世 Andy 说:这是一个让人惆怅的音讯数据库的巨额财产和专制 Andy 说:Larry 干得丑陋2021 年数据库回顾:性能之争烽火起,不如低调搞大钱 PostgreSQL 的主导地位 Andy 说:PostgreSQL 只会在将来几年变得更好基准测试之争 Databricks vs SnowflakeRockset vs Apache Druid vs ClickHouseClickHouse vs TimescaleDBAndy 说:性能之争不值当大数据搞大钱 ...

March 1, 2024 · 11 min · jiezi

关于数据库:MySQL-大战-PostgreSQL-第二回呆瓜模式的分歧

去年写的全方位比照 Postgres 和 MySQL 引发了社区里不少的探讨。明天再聊一个 MySQL 和 Postgres 之间小小的不同,呆瓜模式的实现。 MySQL 的呆瓜模式MySQL 命令行工具提供了一个选项 --safe-updates 或者 --i-am-a-dummy,默认是 false。开启之后如果 UPDATE, DELETE 不带 WHERE 或者 LIMIT 就会报错。此外 SELECT 语句也能够指定返回超过肯定行数后报错。 PostgreSQL 的呆瓜模式Postgres 命令行 psql 没有提供呆瓜模式。社区已经有用户尝试间接在 Server 端加一个相似的限度,然而被驳回了。 社区于是又想了个曲线救国的办法,实现了一个 safeupdate extension,来达到相似的成果。 Bytebase 的呆瓜模式Bytebase 也有相似的呆瓜模式,能同时利用到 MySQL 和 PostgreSQL 及其他反对的数据库上。用户在 Bytebase SQL Editor 的一般模式进行非 SELECT 操作是被禁止的。 如果是一般开发者的话,就必须走工单审核流程。 如果是 DBA,则也能够抉择进入管理员模式再执行。 同时也能够在 SQL 审核规定中配置必须要有 WHERE,否则就报错。 回到 MySQL 和 PostgreSQL 在呆瓜模式上的区别,我本人还是更喜爱 MySQL 的计划,也心愿在 psql 中也提供相似的选项。不过笔者感觉 PG 社区拒掉 Server 端加呆瓜模式的补丁是正当的,只是起因和审核官 Tom Lane 给的不同。Tom 说 ...

March 1, 2024 · 1 min · jiezi

关于数据库:基于-Ractor-模型优化事务复制回放性能

一、背景当备库回放事务时,多个相互不依赖的事务能够并发回放,本办法次要用于解决多个可并发回放的事务的并发回放问题。通过并发的多个扫描线程实现并发对事物回放队列进行扫描,生成多个能够并发回放的事物,并且告诉回放线程进行并发的回放。 二、数据结构设计备库的事物数据依照事物 ID 分段存储到备库的事物数据队列中,参考如下图 1;依据事物 ID 为 UUID  齐全无序的个性,能够对 UUID 进行事物 ID 分段并发扫描。将事物 ID UUID 分段后,交给多个扫描线程协程,每个扫描线程负责某个 UUID 分区进行多个扫描线程并发扫描,扫描可回放的事物。 三、线程生命周期当扫描线程发现可回放的事物后,会将事物 ID 退出 txnList 执行 enqueu 操作,退出事物 ID 后,扫描线程会执行 notify 操作,唤醒正在睡眠的回放线程进行事务回放操作,示意图参考如下图 2。 回放线程协程的生命周期如下如图 3,回放线程刚启动后处于睡眠状态,当有事务回放时,会被随机唤醒。被唤醒的回放线程协程会执行事务回放工作,并且清理事务的依赖关系。 当发现可回放的事务时,如果发现可回放的事务数等于 1,则由以后协程进行回放缩小一次 CPU 切换的开销;当发现多余 1 个可回放事务时,回放线程协程会将除去第一个的可回放事务,退出 txnList 唤醒其余协程进行事务回放,以实现更好回放的并发性能。 四、并发切换问题在采取了并发清理时,因为 CPU 切换的问题,须要解决反复发现的可回放事务,对反复发现雷同的事务 ID 进行防御性幂等解决,如下图 4。因而,须要对每个可回放事务引入 txnIDSet 进行幂等解决。 五、如何判断回放是否完结因为采取了并发扫描以及并发回放,所以须要在全副可回放事务全副回放完结后,完结回放的流程,在此给出回放完结的定义。 当可回放事务全副回放完结后,认为回放完结。可回放事务分为 3 类,过来发现的可回放事务/当初发现的可回放事务/未来发现的可回放事务。 过来发现的可回放事务都会被退出到 txnList 中,当初发现的可回放事务正在由回放线程进行回放,未来发现的可回放事务是由扫描线程扫描 UUID 进行发现的。 过来发现的事务回放完结的条件为 txnList 为空;当初发现的事务回放完结的条件为所有的 workerStatus 总和为 0;未来发现的事务回放完结的条件为所有的扫描线程,GatherAll 扫描可回放事务无奈发现。六、性能调优依据 CPU 数量,可通过动静调整扫描线程和回放线程的回放协程数量,以正当调配两组协程的负载。这样做能够充分利用多核处理器的性能,并进步零碎的吞吐量和响应能力。

March 1, 2024 · 1 min · jiezi

关于数据库:用户案例|GreptimeDB-助力贵州某机场智慧能源物联网系统

近年来,云计算和物联网技术的飞速发展促使许多传统单位的用电、用能零碎向数字化、信息化、智能化的方向迈进,旨在实现全过程的实时智能协同,进步生产效率。而随着电力采集、监测数据性能的一直加强,数据量也在一直减少,这就须要一套更高效的数据库系统来存储、剖析数据,进而开掘更大的价值。 GreptimeDB 作为一款具备分布式、开源、云原生和兼容性强等特点的时序数据库,自开源以来强有力地撑持了能源物联网平台、金融可观测、新能源汽车数据存储剖析等业务场景的利用。 贵州某国内机场三期扩建的弱电我的项目施行过程中,经比照调研 GreptimeDB,Apache IoTDB 和 InfluxDB 等国内外产品后,最终抉择了 GreptimeDB 作为该项目标时序数据库计划。基于 GreptimeDB 的计划实现了高效、牢靠的配电时序数据写入、存储和查问操作,确保了零碎的高效稳固运行。 我的项目背景贵州省某国内机场三期扩建后,须要联合一、二期配用电零碎的现状,建设智慧能源物联网平台我的项目,优化欠缺配用电零碎数据主动采集和智能化剖析。 本我的项目波及以下利用: 物联网数据采集平台:实现全场电力表数据采集,实现近程抄表性能,同时将数据实时推送至机场大数据交换平台;机场大数据平台:通过多源数据整合,实现用电数据统计分析、能耗预测等性能。在环节二建设配电数据采集平台时,须要实现全场电力表数据的采集,并实现近程抄表性能。同时,这个平台还须要将数据实时推送至机场大数据交换平台。时序数据库在此环节中施展着核心作用,因为它可能高效地解决和存储随工夫变动的电力表数据,为近程抄表和数据实时推送提供反对。此外,时序数据库的利用也为后续的数据统计分析、能耗预测等性能奠定了数据根底。 我的项目挑战设施数量、指标繁多:机场物联网平台接入数千台不同品种的设施,其中蕴含电表、水表等,以及其它待接入设施近万台。每种设施的物模型指标繁多,均波及工夫序列数据,包含采样指标、设施状态等,每个指标的采集频率较高,均匀每隔几分钟便进行一次单项指标的数据采样,还面临大量物理设施的数据模型存储;数据量大:采样数据均为实时数据流,需具备应答解决大规模数据量的存储和查问能力;数据存储周期长:须要对数据进行压缩和存储优化,无效缩小存储空间占用,升高存储及保护老本;时序数据查问简单:大量基于工夫窗口查问和聚合操作,要对工夫序列数据进行统计分析、趋势预测等操作。物联网场景下,抉择时序数据库比传统数据库更具劣势,因为时序数据库能更好地应答挑战。在团队抉择时序数据库时,除了思考以上挑战外,还关注底层平安、易集成、便捷运维、开源等多项指标。在多家时序数据库厂商中,通过比拟如 GreptimeDB,Apache IoTDB,InfluxDB 等厂商,项目组最终抉择了国产、开源的时序数据库 GreptimeDB 作为首选计划。 在我的项目开发过程中,团队特地重视底层运行时的安全性,而 GreptimeDB 合乎根本选型指标;同时,GreptimeDB 具备国产开源软件的劣势,齐全满足咱们在国内物联网业务场景我的项目的需要。通过长达近十个月的综合运行测试比拟,GreptimeDB 已齐全胜任该我的项目所面临的挑战。 解决方案和架构GreptimeDB 在整体解决方案中的施行架构如下: 该我的项目波及到简单的物联网业务场景。在图中能够看到两个应用 GreptimeDB 的中央,一个是物联网平台,另一个是业务利用平台,它们别离位于不同的场景中。 物联网平台负责采集设施的原始数据并实时存储,同时将这些数据推送至大数据平台进行解决。解决后的数据再被推送至业务利用平台供应用。业务利用平台也应用 GreptimeDB 存储大数据平台解决后的时序数据,并利用其不便的查问和统计性能来进行业务场景的可视化展现。 最终成绩 GreptimeDB 时序数据库不仅提供了长久稳固、高效麻利的集成能力,还蕴含了丰盛的利用性能。例如,它反对基于工夫窗口的查问和聚合操作,以及对时序数据统计、剖析等实用功能。GreptimeDB 在我的项目推动中晋升了效率,在物联网实时数据采集方面大幅升高了复杂度。 合作伙伴幂速科技公司将 GreptimeDB 纳入智慧物联网的开发/应用体系中,在贵州某机场的智慧物联网场景中大大挖掘了 GreptimeDB 的价值。 作为一家物联网基础设施软/硬件供给和 AI 数字化解决方案提供商,幂速科技秉持自主翻新、中立牢靠、灵便凋谢的理念,致力于为数字世界打造先进的基石平台。凭借卓越的技术实力和自主研发能力,咱们提供先进的 MQTT 音讯服务器、边缘泛在操作系统及相干边缘采集设施,并为客户提供弱小的物联网、数字孪生等生态能力和价值。通过继续翻新,咱们致力于为客户提供高品质、高效率的物联网基础设施和 AI 数字化解决方案。 GreptimeDB 作为开源我的项目,欢送对时序数据库、Rust 语言等内容感兴趣的同学们参加奉献和探讨。第一次参加我的项目的同学举荐先从带有 good first issue 标签的 issue 动手,期待在开源社群里遇见你!Star us on GitHub Now: https://github.com/GreptimeTeam/greptimedb微信搜寻 GreptimeDB,关注公众号不错过更多技术干货和福利~ ...

March 1, 2024 · 1 min · jiezi

关于数据库:淘宝用户购物行为分析

<article class=“article fmt article-content”><p></p><p>在本案例中,咱们将应用 Databend Cloud 对来自天池实验室的淘宝用户购物行为数据集进行剖析,一起发现乏味的购物行为。</p><p>该数据集为 CSV 格局,蕴含了 2017 年 11 月 25 日至 2017 年 12 月 3 日之间,有行为的约一百万随机用户的所有行为(包含点击、购买、加购、喜爱)。数据集的每一行示意一条用户行为,由以下 5 列组成,并以逗号分隔:</p><table><thead><tr><th>列名称</th><th>阐明</th></tr></thead><tbody><tr><td>用户 ID</td><td>整数类型,序列化后的用户 ID</td></tr><tr><td>商品 ID</td><td>整数类型,序列化后的商品 ID</td></tr><tr><td>商品类目 ID</td><td>整数类型,序列化后的商品所属类目 ID</td></tr><tr><td>行为类型</td><td>字符串,枚举类型,包含:‘pv’:商品详情页 pv,等价于点击; ‘buy’:商品购买; ‘cart’:将商品退出购物车; ‘fav’:珍藏商品</td></tr><tr><td>工夫戳</td><td>行为产生的工夫戳</td></tr></tbody></table><h2>筹备工作</h2><h3>下载数据集</h3><ol><li>下载淘宝用户购物行为数据集到本地,而后应用以下命令解压:</li></ol><pre><code>unzip UserBehavior.csv.zip</code></pre><ol start=“2”><li>将解压后的数据集文件 (UserBehavior.csv) 压缩为 gzip 格局:</li></ol><pre><code>gzip UserBehavior.csv</code></pre><h3>创立内部 Stage</h3><ol><li>登入 Databend Cloud,并新建一个工作区。</li><li>在工作区中,执行以下 SQL 语句在阿里云上创立一个名为"mycsv"的内部 Stage:</li></ol><pre><code>CREATE STAGE mycsv URL = ‘s3://<YOUR_BUCKET_NAME>‘CONNECTION = ( ACCESS_KEY_ID = ‘<YOUR_ACCESS_KEY_ID>’, SECRET_ACCESS_KEY = ‘<YOUR_SECRET_ACCESS_KEY>’, ENDPOINT_URL = ‘<YOUR_ENDPOINT_URL>’, ENABLE_VIRTUAL_HOST_STYLE = TRUE)FILE_FORMAT = ( TYPE = CSV COMPRESSION = AUTO);</code></pre><ol start=“3”><li>执行以下 SQL 语句验证 Databend Cloud 是否可拜访到该内部 Stage:</li></ol><pre><code>LIST @mycsv;</code></pre><h3>上传数据集到内部 Stage</h3><p>应用 BendSQL将压缩后的数据集文件 (UserBehavior.csv.gz) 上传到内部 Stage。获取计算集群的连贯信息,请参考连贯到计算集群。</p><pre><code>(base) eric@Erics-iMac ~ % bendsql –host tenantID–YOUR_WAREHOUSE.gw.aliyun-cn-beijing.default.databend.cn \ –user=cloudapp \ –password=<YOUR_PASSWORD> \ –database=“default” \ –port=443 –tlsWelcome to BendSQL 0.9.3-db6b232(2023-10-26T12:36:55.578667000Z).Connecting to tenantID–YOUR_WAREHOUSE.gw.aliyun-cn-beijing.default.databend.cn:443 as user cloudapp.Connected to DatabendQuery v1.2.183-nightly-1ed9a826ed(rust-1.72.0-nightly-2023-10-28T22:10:15.618365223Z)cloudapp@tenantID–YOUR_WAREHOUSE.gw.aliyun-cn-beijing.default.databend.cn:443/default> PUT fs:///Users/eric/Documents/UserBehavior.csv.gz @mycsvPUT fs:///Users/eric/Documents/UserBehavior.csv.gz @mycsv┌─────────────────────────────────────────────────────────────────┐│ file │ status │ size ││ String │ String │ UInt64 │├───────────────────────────────────────────┼─────────┼───────────┤│ /Users/eric/Documents/UserBehavior.csv.gz │ SUCCESS │ 949805035 │└─────────────────────────────────────────────────────────────────┘1 file uploaded in 401.807 sec. Processed 1 file, 905.80 MiB (0.00 file/s, 2.25 MiB/s)</code></pre><h2>数据导入和荡涤</h2><h3>创建表格</h3><p>在工作区中,执行以下 SQL 语句为数据集创建表格:</p><pre><code>CREATE TABLE user_behavior ( user_id INT NOT NULL, item_id INT NOT NULL, category_id INT NOT NULL, behavior_type VARCHAR, ts TIMESTAMP, day DATE );</code></pre><h3>荡涤、导入数据</h3><ol><li><p>执行以下 SQL 语句导入数据到表格中,并同时实现荡涤:</p><ul><li>去除有效的工夫区外的数据</li><li>数据去重</li><li>生成额定列数据</li></ul></li></ol><pre><code>INSERT INTO user_behaviorSELECT $1,$2,$3,$4,to_timestamp($5::bigint) AS ts, to_date(ts) dayFROM @mycsv/UserBehavior.csv.gz WHERE day BETWEEN ‘2017-11-25’ AND ‘2017-12-03’GROUP BY $1,$2,$3,$4,ts;</code></pre><ol start=“2”><li>执行以下 SQL 语句验证数据导入是否胜利。该语句将返回表格的 10 行数据。</li></ol><pre><code>SELECT * FROM user_behavior LIMIT 10;</code></pre><h2>数据分析</h2><p>在实现了后期的筹备和数据导入之后,咱们正式开始进行数据分析。</p><h3>用户流量及购物状况剖析</h3><h4>总访问量和用户数</h4><pre><code>SELECT SUM(CASE WHEN behavior_type = ‘pv’ THEN 1 ELSE 0 END) as pv,COUNT(DISTINCT user_id) as uvFROM user_behavior;</code></pre><p></p><h4>日均访问量和用户量</h4><pre><code>SELECT day, SUM(CASE WHEN behavior_type = ‘pv’ THEN 1 ELSE 0 END) AS pv, COUNT(DISTINCT user_id) AS uvFROM user_behaviorGROUP BY dayORDER BY day;</code></pre><p></p><p>也能够通过 应用仪表盘 性能,生成折线图:</p><p></p><h4>统计每个用户的购物状况,生成新表:user_behavior_count</h4><pre><code>create table user_behavior_count as select user_id, sum(case when behavior_type = ‘pv’ then 1 else 0 end) as pv, –点击数 sum(case when behavior_type = ‘fav’ then 1 else 0 end) as fav, –珍藏数 sum(case when behavior_type = ‘cart’ then 1 else 0 end) as cart, –加购物车数 sum(case when behavior_type = ‘buy’ then 1 else 0 end) as buy –购买数 from user_behaviorgroup by user_id;</code></pre><h4>复购率:两次或两次以上购买的用户占购买用户的比例</h4><pre><code>select sum(case when buy > 1 then 1 else 0 end) / sum(case when buy > 0 then 1 else 0 end)from user_behavior_count;</code></pre><p></p><h3>用户行为转换率</h3><h4>点击/(加购物车 + 珍藏)/购买,各环节转化率</h4><pre><code>select a.pv, a.fav, a.cart, a.fav + a.cart as fav+cart, a.buy, round((a.fav + a.cart) / a.pv, 4) as pv2favcart, round(a.buy / (a.fav + a.cart), 4) as favcart2buy, round(a.buy / a.pv, 4) as pv2buyfrom(select sum(pv) as pv, –点击数sum(fav) as fav, –珍藏数sum(cart) as cart, –加购物车数sum(buy) as buy –购买数from user_behavior_count) as a;</code></pre><p></p><h4>计算一个小时实现浏览->增加到购物->并领取的用户</h4><pre><code>SELECT count_if(level>=1) as pv, count_if(level>=2) as cart, count_if(level>=3) as buyFROM( SELECT user_id, window_funnel(3600000000)(ts, behavior_type = ‘pv’,behavior_type = ‘cart’,behavior_type = ‘buy’) AS level FROM user_behavior GROUP BY user_id);</code></pre><p></p><h3>用户行为习惯</h3><h4>每天用户购物行为</h4><pre><code>select to_hour(ts) as hour, sum(case when behavior_type = ‘pv’ then 1 else 0 end) as pv, –点击数 sum(case when behavior_type = ‘fav’ then 1 else 0 end) as fav, –珍藏数 sum(case when behavior_type = ‘cart’ then 1 else 0 end) as cart, –加购物车数 sum(case when behavior_type = ‘buy’ then 1 else 0 end) as buy –购买数from user_behaviorgroup by hourorder by hour;</code></pre><p></p><p>也能够通过 应用仪表盘 性能,生成折线图:</p><p></p><h4>每周用户购物行为</h4><pre><code>select to_day_of_week(day) as weekday,day, sum(case when behavior_type = ‘pv’ then 1 else 0 end) as pv, –点击数 sum(case when behavior_type = ‘fav’ then 1 else 0 end) as fav, –珍藏数 sum(case when behavior_type = ‘cart’ then 1 else 0 end) as cart, –加购物车数 sum(case when behavior_type = ‘buy’ then 1 else 0 end) as buy –购买数from user_behaviorwhere day between ‘2017-11-27’ and ‘2017-12-03’group by weekday,dayorder by weekday;</code></pre><p></p><p>也能够通过 应用仪表盘 性能,生成柱状图:</p><p></p><h3>基于 RFM 模型找出有价值用户</h3><p>RFM 模型是掂量客户价值和客户创利能力的重要工具和伎俩,其中由 3 个因素形成了数据分析最好的指标:</p><ul><li>R-Recency(最近一次购买工夫)</li><li>F-Frequency(生产频率)</li><li>M-Money(生产金额)</li></ul><h4>R-Recency(最近购买工夫):R值越高,用户越沉闷</h4><pre><code>select user_id, to_date(‘2017-12-04’) - max(day) as R, dense_rank() over(order by (to_date(‘2017-12-04’) - max(day))) as R_rankfrom user_behaviorwhere behavior_type = ‘buy’group by user_idlimit 10;</code></pre><p></p><h3>F-Frequency(生产频率):F值越高,用户越虔诚</h3><pre><code>select user_id, count(1) as F, dense_rank() over(order by count(1) desc) as F_rankfrom user_behaviorwhere behavior_type = ‘buy’group by user_idlimit 10;</code></pre><p></p><h3>用户分组</h3><p>对有购买行为的用户依照排名进行分组,共划分为 5 组:</p><ul><li>前 1/5 的用户打 5 分</li><li>前 1/5 - 2/5 的用户打 4 分</li><li>前 2/5 - 3/5 的用户打 3 分</li><li>前 3/5 - 4/5 的用户打 2 分</li><li>其余用户打 1 分</li></ul><p>依照这个规定别离对用户工夫距离排名打分和购买频率排名打分,最初把两个分数合并在一起作为该名用户的最终评分。</p><pre><code>with cte as(select user_id, to_date(‘2017-12-04’) - max(day) as R, dense_rank() over(order by (to_date(‘2017-12-04’) - max(day))) as R_rank, count(1) as F, dense_rank() over(order by count(1) desc) as F_rankfrom user_behaviorwhere behavior_type = ‘buy’group by user_id)select user_id, R, R_rank, R_score, F, F_rank, F_score, R_score + F_score AS scorefrom(select *, case ntile(5) over(order by R_rank) when 1 then 5 when 2 then 4 when 3 then 3 when 4 then 2 when 5 then 1 end as R_score, case ntile(5) over(order by F_rank) when 1 then 5 when 2 then 4 when 3 then 3 when 4 then 2 when 5 then 1 end as F_scorefrom cte) as aorder by score desclimit 20;</code></pre><p></p><h3>商品维度剖析</h3><h4>销量最高的商品</h4><pre><code>select item_id , sum(case when behavior_type = ‘pv’ then 1 else 0 end) as pv, –点击数 sum(case when behavior_type = ‘fav’ then 1 else 0 end) as fav, –珍藏数 sum(case when behavior_type = ‘cart’ then 1 else 0 end) as cart, –加购物车数 sum(case when behavior_type = ‘buy’ then 1 else 0 end) as buy –购买数from user_behaviorgroup by item_idorder by buy desclimit 10;</code></pre><p></p><h4>销量最高的商品类别</h4><pre><code>select category_id , sum(case when behavior_type = ‘pv’ then 1 else 0 end) as pv, –点击数 sum(case when behavior_type = ‘fav’ then 1 else 0 end) as fav, –珍藏数 sum(case when behavior_type = ‘cart’ then 1 else 0 end) as cart, –加购物车数 sum(case when behavior_type = ‘buy’ then 1 else 0 end) as buy –购买数from user_behaviorgroup by category_idorder by buy desclimit 10;</code></pre><p></p><h3>用户留存剖析</h3><p>开始前,创建表格"day_users"并插入数据:</p><pre><code>create table day_users(day date,users bitmap);insert into day_users select day, build_bitmap(list(user_id::UInt64)) from user_behavior group by day;</code></pre><h4>统计每天UV</h4><pre><code>select day,bitmap_count(users) from day_users order by day;</code></pre><p></p><h4>绝对留存</h4><p>这里计算绝对于 11 月 23 日,12 月 2 号还在应用淘宝用户:</p><pre><code>select bitmap_count(bitmap_and(a.users, b.users))from (select users from day_users where day=‘2017-11-25’) a ,(select users from day_users where day=‘2017-12-02’) b;</code></pre><p></p><h4>绝对新增</h4><pre><code>select bitmap_count(bitmap_not(b.users, a.users)) from (select users from day_users where day=‘2017-11-25’) a ,(select users from day_users where day=‘2017-12-02’) b;</code></pre><p></p></article> ...

February 29, 2024 · 5 min · jiezi

关于数据库:Apache-Doris-Sink-Connector部署指南

<article class=“article fmt article-content”><p>在当今数据驱动的时代,如何高效、精确地解决和剖析大数据成为了各行各业面临的独特挑战。Apache Doris,作为一个基于 MPP 架构的高性能、实时的剖析型数据库,为大规模数据分析提供了弱小的反对。</p><p>在当今数据驱动的时代,如何高效、精确地解决和剖析大数据成为了各行各业面临的独特挑战。Apache Doris,作为一个基于 MPP 架构的高性能、实时的剖析型数据库,为大规模数据分析提供了弱小的反对。</p><p>随着Doris Connector的推出,开发者当初能够更加便捷地将数据实时导入Doris,无论是流数据还是批量数据。本指南将疏导您实现Doris及其数据接管连接器的部署过程。</p><h2>Doris</h2><p>Doris数据接管连接器反对流式和批量模式,使得数据向Doris的传输变得简略高效。它的外部实现采纳了批处理缓存和流加载导入,确保了数据处理的灵活性和可靠性。</p><p><strong>反对的版本</strong></p><ul><li>准确一次 & CDC 反对 <code>Doris 版本 >= 1.1.x</code></li><li>反对数组数据类型 <code>Doris 版本 >= 1.2.x</code></li><li>将在 <code>Doris 版本 2.x</code> 反对映射数据类型</li></ul><p>:::</p><h3>要害个性</h3><ul><li>[x] 准确一次</li><li>[x] CDC</li></ul><h3>配置项</h3><table><thead><tr><th>名称</th><th>类型</th><th>是否必须</th><th>默认值</th></tr></thead><tbody><tr><td>fenodes</td><td>string</td><td>是</td><td>-</td></tr><tr><td>username</td><td>string</td><td>是</td><td>-</td></tr><tr><td>password</td><td>string</td><td>是</td><td>-</td></tr><tr><td>table.identifier</td><td>string</td><td>是</td><td>-</td></tr><tr><td>sink.label-prefix</td><td>string</td><td>是</td><td>-</td></tr><tr><td>sink.enable-2pc</td><td>bool</td><td>否</td><td>true</td></tr><tr><td>sink.enable-delete</td><td>bool</td><td>否</td><td>false</td></tr><tr><td>doris.config</td><td>map</td><td>是</td><td>-</td></tr></tbody></table><h4>fenodes [string]</h4><p><code>Doris</code> 集群的 fenodes 地址,格局为 <code>“fe_ip:fe_http_port, …"</code></p><h4>username [string]</h4><p><code>Doris</code> 用户名</p><h4>password [string]</h4><p><code>Doris</code> 用户明码</p><h4>table.identifier [string]</h4><p><code>Doris</code> 表名</p><h4>sink.label-prefix [string]</h4><p>流加载导入时应用的标签前缀。在 2pc 场景中,须要全局唯一性以确保 SeaTunnel 的 EOS 语义。</p><h4>sink.enable-2pc [bool]</h4><p>是否启用两阶段提交(2pc),默认为 true,以确保准确一次语义。无关两阶段提交的更多信息,请参考这里。</p><h4>sink.enable-delete [bool]</h4><p>是否启用删除性能。此选项要求 Doris 表启用批量删除性能(0.15+ 版本默认启用),且仅反对惟一模型。更多详情请参考此链接:</p><p>https://doris.apache.org/docs/dev/data-operate/update-delete/…</p><h4>doris.config [map]</h4><p>流加载的 <code>data_desc</code> 参数,更多详情请参考此链接:</p><p>https://doris.apache.org/docs/dev/sql-manual/sql-reference/Da…</p><h5>反对的导入数据格式</h5><p>反对的格局包含 CSV 和 JSON。默认值:CSV</p><h3>示例</h3><p>应用 JSON 格局导入数据</p><pre><code class=“plaintext”>sink { Doris { fenodes = “e2e_dorisdb:8030” username = root password = "” table.identifier = “test.e2e_table_sink” sink.enable-2pc = “true” sink.label-prefix = “test_json” doris.config = { format=“json” read_json_by_line=“true” } }}</code></pre><p><strong>应用 CSV 格局导入数据</strong></p><pre><code>sink { Doris { fenodes = “e2e_dorisdb:8030” username = root password = "" table.identifier = “test.e2e_table_sink” sink.enable-2pc = “true” sink.label-prefix = “test_csv” doris.config = { format = “csv” column_separator = “,” } }}</code></pre><h3>更新日志</h3><p>2.3.0-beta 2022-10-20<br/>增加 Doris 数据接管连接器</p><h3>下一版本</h3><p>[Improve] 更改 Doris 配置前缀 3856</p><p>[Improve] 重构一些 Doris 数据接管代码以及反对 2pc 和 CDC 4235</p><p><strong>tip</strong></p><p>PR 4235 is an incompatible modification to PR 3856. Please refer to PR 4235 to use the new Doris connect.</p><p>随着大数据技术的不断进步,Apache Doris及其数据接管连接器将在数据处理和剖析畛域施展越来越重要的作用。通过遵循本指南,您将可能轻松部署Doris数据接管连接器,无效地将数据导入Doris,为数据驱动的决策提供强有力的反对。咱们期待看到开发者和企业通过应用Doris解锁数据分析的有限后劲。</p><p>随着Doris Connector的推出,开发者当初能够更加便捷地将数据实时导入Doris,无论是流数据还是批量数据。本指南将疏导您实现Doris及其数据接管连接器的部署过程。</p><h2>Doris</h2><p>Doris数据接管连接器反对流式和批量模式,使得数据向Doris的传输变得简略高效。它的外部实现采纳了批处理缓存和流加载导入,确保了数据处理的灵活性和可靠性。</p><p><strong>反对的版本</strong></p><ul><li>准确一次 & CDC 反对 <code>Doris 版本 >= 1.1.x</code></li><li>反对数组数据类型 <code>Doris 版本 >= 1.2.x</code></li><li>将在 <code>Doris 版本 2.x</code> 反对映射数据类型</li></ul><p>:::</p><h3>要害个性</h3><ul><li>[x] 准确一次</li><li>[x] CDC</li></ul><h3>配置项</h3><table><thead><tr><th>名称</th><th>类型</th><th>是否必须</th><th>默认值</th></tr></thead><tbody><tr><td>fenodes</td><td>string</td><td>是</td><td>-</td></tr><tr><td>username</td><td>string</td><td>是</td><td>-</td></tr><tr><td>password</td><td>string</td><td>是</td><td>-</td></tr><tr><td>table.identifier</td><td>string</td><td>是</td><td>-</td></tr><tr><td>sink.label-prefix</td><td>string</td><td>是</td><td>-</td></tr><tr><td>sink.enable-2pc</td><td>bool</td><td>否</td><td>true</td></tr><tr><td>sink.enable-delete</td><td>bool</td><td>否</td><td>false</td></tr><tr><td>doris.config</td><td>map</td><td>是</td><td>-</td></tr></tbody></table><h4>fenodes [string]</h4><p><code>Doris</code> 集群的 fenodes 地址,格局为 <code>“fe_ip:fe_http_port, …"</code></p><h4>username [string]</h4><p><code>Doris</code> 用户名</p><h4>password [string]</h4><p><code>Doris</code> 用户明码</p><h4>table.identifier [string]</h4><p><code>Doris</code> 表名</p><h4>sink.label-prefix [string]</h4><p>流加载导入时应用的标签前缀。在 2pc 场景中,须要全局唯一性以确保 SeaTunnel 的 EOS 语义。</p><h4>sink.enable-2pc [bool]</h4><p>是否启用两阶段提交(2pc),默认为 true,以确保准确一次语义。无关两阶段提交的更多信息,请参考这里。</p><h4>sink.enable-delete [bool]</h4><p>是否启用删除性能。此选项要求 Doris 表启用批量删除性能(0.15+ 版本默认启用),且仅反对惟一模型。更多详情请参考此链接:</p><p>https://doris.apache.org/docs/dev/data-operate/update-delete/…</p><h4>doris.config [map]</h4><p>流加载的 <code>data_desc</code> 参数,更多详情请参考此链接:</p><p>https://doris.apache.org/docs/dev/sql-manual/sql-reference/Da…</p><h5>反对的导入数据格式</h5><p>反对的格局包含 CSV 和 JSON。默认值:CSV</p><h3>示例</h3><p>应用 JSON 格局导入数据</p><pre><code class=“plaintext”>sink { Doris { fenodes = “e2e_dorisdb:8030” username = root password = "” table.identifier = “test.e2e_table_sink” sink.enable-2pc = “true” sink.label-prefix = “test_json” doris.config = { format=“json” read_json_by_line=“true” } }}</code></pre><p><strong>应用 CSV 格局导入数据</strong></p><pre><code>sink { Doris { fenodes = “e2e_dorisdb:8030” username = root password = "" table.identifier = “test.e2e_table_sink” sink.enable-2pc = “true” sink.label-prefix = “test_csv” doris.config = { format = “csv” column_separator = “,” } }}</code></pre><h3>更新日志</h3><p>2.3.0-beta 2022-10-20<br/>增加 Doris 数据接管连接器</p><h3>下一版本</h3><p>[Improve] 更改 Doris 配置前缀 3856</p><p>[Improve] 重构一些 Doris 数据接管代码以及反对 2pc 和 CDC 4235</p><p><strong>tip</strong></p><p>PR 4235 is an incompatible modification to PR 3856. Please refer to PR 4235 to use the new Doris connect.</p><p>随着大数据技术的不断进步,Apache Doris及其数据接管连接器将在数据处理和剖析畛域施展越来越重要的作用。通过遵循本指南,您将可能轻松部署Doris数据接管连接器,无效地将数据导入Doris,为数据驱动的决策提供强有力的反对。咱们期待看到开发者和企业通过应用Doris解锁数据分析的有限后劲。</p><blockquote>本文由 白鲸开源科技 提供公布反对!</blockquote></article> ...

February 29, 2024 · 2 min · jiezi

关于数据库:利用IP风险画像保护您的账户安全防范网络诈骗的重要利器

<article class=“article fmt article-content”><p>随着互联网的遍及和网络技术的倒退,网络欺骗事件层出不穷,给人们的财产平安和个人信息带来了重大的威逼。在这样的背景下,利用IP危险画像成为了一种重要的伎俩,帮忙人们更好地爱护本人的账户平安,无效防备网络欺骗。<br/>IP危险画像的原理:IP危险画像是一种基于用户IP地址的危险评估技术,通过剖析用户的IP地址及相干行为数据,辨认潜在的危险行为,帮忙用户进步账户安全性。其原理次要包含以下几个方面:</p><ol><li>IP地址辨认:IP地址是互联网上设施的惟一标识符,每个连贯到互联网上的设施都有一个独特的IP地址。IP危险画像通过辨认用户的IP地址,获取其地理位置、网络运营商等信息。</li><li>行为剖析:IP危险画像剖析用户的登录、注册、交易等行为模式,检测是否存在异样行为,例如频繁登录、异地登录、高风险交易等。</li><li>设施指纹识别:联合设施指纹技术,IP危险画像能够辨认用户所应用的设施类型、操作系统版本、浏览器类型等信息,进一步判断用户的真实性。<br/><br/>IP危险画像的利用案例<br/>案例:避免账户被盗<br/>小明是一名常常应用在线领取的用户。有一天,他收到了一条生疏的短信,宣称有一笔大额交易正在进行,须要验证他的身份信息。小明感觉不太对劲,便没有点击链接,而是分割了领取平台的客服进行核实。客服通知他,他的账户正蒙受到偷盗行为,但因为他的账户曾经设置了IP危险画像性能,领取平台零碎检测到了异样的IP地址登录行为,及时锁定了账户,防止了财产损失。<br/>案例剖析:在这个案例中,小明的账户平安失去了无效爱护,得益于领取平台采纳了IP危险画像技术。领取平台通过剖析小明账户的IP地址和登录行为模式,及时发现并阻止了异样的登录行为,无效避免了账户被盗的危险。<br/>IP危险画像作为一种重要的账户平安爱护技术,在防备网络欺骗和账户被盗方面施展着重要作用。通过剖析用户的IP地址和行为数据,辨认潜在的危险行为,帮忙用户进步账户安全性。咱们倡议宽广用户在应用在线服务时,尽量开启IP危险画像性能,增强账户平安防护,独特构建一个平安可信的网络环境。</li></ol></article>

February 29, 2024 · 1 min · jiezi

关于数据库:Smartbi-Insight-V11版本信创认证合集完成超20家主流软件适配认证

<article class=“article fmt article-content”><p>科技自立自强是国家倒退的策略撑持,信创产业作为科技翻新的重要畛域迎来高速倒退。信创在党政、金融行业陆续发展后,现如今已逐渐向电信、交通、能源、教育、医疗等行业浸透,国内IT厂商踊跃推动信创生态建设,放慢信创我的项目部署,并以各行业利用场景做产品研发和适配。</p><p>近日,思迈特软件Smartbi Insight V11版本在CPU处理器、操作系统、服务器、数据库、中间件、浏览器等维度,与超20家支流软件实现适配认证。再次彰显了Smartbi Insight V11版本产品自主可控的弱小实力。</p><p></p><p>Smartbi Insight V11自从去年8月份公布以来,产品创新能力和技术实力深受业界和国家权威认可,除了在信创生态畛域,前不久,Smartbi Insight V11版本取得了代码自主率98.78%的国家级权威认证,并且也获得了软件著作权,无疑必定了思迈特在数字化技术研发和产品开发等方面的外围竞争力和行业位置。</p><p>随着国产化代替过程减速、范畴扩充、利用场景丰盛,信创产业的微小市场潜能也正进一步被开释。</p><p>在助力数字中国、数字经济、数字政府等方面建设,思迈特软件在自研和国产化适配两方面同时发力:一方面是保持AI和BI核心技术全栈自研,领有自主知识产权;另一方面是在国产化适配方面做了大量的工作,Smartbi全系列产品已宽泛兼容、适配行业支流的国产芯片、国产数据库、服务器及操作系统,并通过工信部、信通院等多家权威机构严格测试,截止目前,思迈特软件曾经与海光、兆芯、鲲鹏、飞腾、龙芯等国产芯片,河汉麒麟、统信软件、中科方德等国产操作系统,西方通、金蝶天燕、宝兰德等国产中间件,华为高斯、人大金仓、南大通用、达梦、星环等国产数据库适配,并取得了相应的互认证明。</p><p>目前,思迈特软件信创版已在各大央企、国企及政府的各种组合配置的国产信创零碎中稳固运行数百万小时。今后,思迈特软件将充沛深刻赋能各行各业数字化转型降级,继续拓宽AI+BI能力及技术利用边界,为千行百业胜利实现数字化转型提供前沿先进的技术、平安翻新的产品、优质牢靠的服务。</p></article>

February 29, 2024 · 1 min · jiezi

关于数据库:给-GitLab-远程打工惊心动魄的真相-28-号员工回忆录

<article class=“article fmt article-content”><blockquote>GitLab 在 2021 年实现了 IPO,在纳斯达克胜利上市,而且的确是没有地址(参见下图)。</blockquote><p></p><hr/><p>我 2015 年 10 月退出了 GitLab,在那儿打了六年工,在 2021 年 12 月来到。<br/>只管之前我写过来到 GitLab 去 Inko 的事件,但从未探讨过在 2015-2021 年间为 GitLab 工作的经验。有两个起因:</p><ol><li>过后我疲劳过度,没有精力回顾我生存中近六年的工夫</li><li>我仍受到 24 个月 NDA(窃密协定)的束缚,不确定是否在不违反协定的状况下探讨多少内容,只管这可能并不会引起任何问题</li></ol><p>NDA 去年 12 月曾经到期,尽管我狐疑本人仍在和疲劳过度带来的结果奋斗,但当初有更多精力回顾我 GitLab 的时光了。</p><p>本文将分为两个次要局部:依据我还记得的内容概述我的 GitLab 时光以及基于工作和教训所学到的一些货色。</p><h2>纲要</h2><ul><li>GitLab 之前</li><li>2015-2017</li><li>2017-2018</li><li>2019-2021</li><li><p>经验教训</p><ul><li>可扩展性须要成为公司文化的一部分</li><li>团队须要由数据和开发者驱动</li><li>没有数据,无奈确定最小可行性产品 MVP 长啥样</li><li>SaaS 和自托管互不相容</li><li>更多的人不意味着更好的后果</li><li>对于应用 Ruby on Rails 的矛盾心理</li><li>部署代码所需的工夫对组织的胜利至关重要</li><li>依照地区定薪资是一种歧视</li></ul></li><li>总结一下</li></ul><h2>GitLab 之前</h2><p>在退出 GitLab 之前,我曾在阿姆斯特丹的一家小型初创公司工作。像大多数初创公司一样,在我到职前的几个月里,公司开始资金短缺,不得不采取一些极其的解决方案,比方出租局部办公空间。与此同时,我感觉本人在技术层面曾经做了想做和能做的所有事件。</p><p>与此同时,我还利用业余时间参加 Rubinius 我的项目,并思考过在某些场景应用它,确保咱们所有代码都能够顺利运行。这也促成了 Oga 的诞生,一个作为 Nokogiri 替代品的 XML/HTML 解析库。</p><p>可怜的是,资金短缺以及各种技术问题意味着咱们从未推动 Rubinius 的应用。多种因素叠加,我开始寻找新工作,至多这样我能够花更多工夫来改良 Rubinius,使其足够稳固以供人们在生产环境中应用。</p><p>在此期间,我加入了阿姆斯特丹各种 Ruby 见面会,并帮助组织了几次 Rails Girls 研讨会。 在其中一个研讨会上,我遇到了 GitLab CEO Sytse 和他妻子,并再次在之后另一个研讨会或 meetup(应该是,但我记忆有点含糊)。通过这个机会,我理解到了 GitLab 并对去那里工作产生趣味。</p><p>2015 年夏天,我给 Sytse 发邮件,示意心愿为 GitLab 工作并询问他们是否违心我每周一天用于开发 Rubinius。随后进行了一些谈话和面试,我于 2015 年 10 月以<strong>第 28 号员工身份开始就任于 GitLab</strong>。我负责进步 GitLab 性能,并被容许将 20% 的工夫投入到 Rubinius 我的项目中。</p><p>退职期间,我参加过很多团队,领有很大水平上自主权,多年间向 10 位不同经理汇报过,差点使公司濒临开张,构建了 GitLab 至今依然应用着各种要害组件,目击公司从 30 多名员工增长到约 2000 名员工,并最终陷入倦怠状态,或者用荷兰俗语说: “Lekker gewerkt,pik!"(干得好,笨蛋!)</p><h2>2015-2017</h2><p>我之前那份工作的 last day 是 9 月 30 日,一个星期三,紧接着第二天我就开始在 GitLab 工作。也就是说我从每周五天在办公室工作变成了每周五天近程办公。尽管以前也在家工作过,次要是当火车因为积雪或树叶而停运,适应新的安顿还是须要一点工夫。</p><p>那段时间有一个特地粗浅的记忆是我白天提着袋子买菜回家,并意识到白天做这件事比上班后早晨回家时更惬意。</p><p>另一个记忆是和我的猫一起在沙发上小憩,过后拍下了这张照片:</p><p></p><blockquote>是的,那是荷马辛普森拖鞋。</blockquote><p>过后我租住的公寓不大,只有一个小厨房、一个小客厅和一个小阁楼,也就是说我的客厅同时兼作卧室、客厅和办公室。尽管这不是很现实的布局,但那时我只能负担得起这个,兴许低廉的 Aeron 椅子与此有关。</p><p>只管 GitLab 是一家齐全近程公司,但它也是社交型公司,常常举办团聚和流动。例如,在我退出后几周,公司在阿姆斯特丹举办了一次团聚,白天进行各种流动,并在早晨共进晚餐:</p><p></p><p>过后,整个公司还能够塞进餐厅的一个角落里。</p><p>不久之后,GitLab 迎来了第一次暴发式增长,大概新增了 100 名员工(应该是?我的记忆有点含糊)。到了 2016 年奥斯丁的下次公司团聚时,一个餐厅的角落曾经不够了:</p><p></p><p>在这段时间里,也有一些负面经验。GitLab 蒙受了蹩脚的性能、频繁的宕机(简直每周都有),治理不善以及许多其余初创企业面临的问题。这导致「GitLab 运行迟缓」成为用户最常埋怨的问题之一。尤其是在 Hacker News 上,人们总是喜爱埋怨它,无论原始话题(例如新性能布告)是什么。当然 GitLab 意识到了这一点,他们延聘我的其中一个起因就是要解决这些问题。</p><p>这是一个挑战,特地是因为 GitLab 没有足够的性能监控基础设施。顺便说一下,并非夸大其词:过后惟一运行的服务只有一个 New Relic 试用账户,只容许监控<strong>一个或者两个服务器</strong>的状况(咱们那时总共应该有 15-20 台服务器)。这意味着任何数据进来都不会精确反映状况,并且使得测量和解决性能方面存在艰难。</p><p>使得解决这些问题变得更加艰难的是 GitLab 的要求:咱们应用的工具都必须对自托管客户可用,并且最好开源(或者甚至可能属于硬性要求,我记不清了)。这意味着我不仅须要改良性能,还须要构建首先进步性能所需工具。同时,在公司外部写出高效代码(或者至多不会极度迟缓)没有被视作优先事项。GitLab 还偏向于更多地听取 Hacker News 上对于投诉而非外部投诉的声音。由此产生了一个外部流传笑话:如果你心愿某事扭转,请匿名在 Hacker News 上吐槽,这比通过适当渠道提出更无效。</p><p>接下来数月工夫里我致力改善性能、构建必要工具、尝试扭转公司文化/态度以便随着时间推移真正实现改良,并解决 GitLab 对已做出改良并不称心所带来的挑战。我分明地记得至多进行过几次视频通话,在其中差点忍不住对 Sytse 大声吼叫起来,还好从未真的产生过。</p><p>只管面临这些挑战,我还是设法建设了必要的工具,并在各个局部改良了性能(其中一些是很重要的,其余则不那么重要)。这些工具成为一个名为「GitLab 性能监控」的官网 GitLab 性能,只管多年来曾经产生了很大变动。我另外构建的一个工具是 Sherlock,一个用于开发环境的高级分析器。</p><p>在此期间,GitLab 开始意识到仅靠一个人无奈解决这类问题,特地是如果性能不是公司其余部门的首要任务。由此带来的变动之一是,我不再间接向 Sytse 汇报,而是作为新性能团队的成员向专门的经理汇报,并且该团队有估算能够雇佣更多人员。我记不清具体估算数额是多少了,但并不多:可能只有两个或三个人。思考到公司总规模以及其次要关注点是尽可能推出更多功能而言,这远远不够,但却算得上一个开始。</p><p>我的第二年中很大一部分工夫都花在了这支团队中,在那里略微有些喘息空间。我持续争取取得更多资源,并将良好性能作为新代码所需满足条件之一进行提倡,但后果参差不齐;同时咱们整个团队也在继续改良性能。</p><p>与此同时,GitLab 也经验了第一波裁员和到职潮,次要起因是 GitLab 最后招聘了些谬误的人才。这意味着 GitLab 从 30+ 增长至(据我所知)130+ 名员工,而后缩减至 80+,再开始增长。</p><p>至于 Rubinius:只管咱们试图让 GitLab 在 Rubinius 上运行,咱们从未胜利过。联合 Rubinius 我的项目负责人心愿将我的项目带入另一方向以及由此引起 Ruby 社区内争议等因素,咱们最终决定放弃 Rubinius 我的项目;我也进行全力投入其中。这很遗憾,Rubinius 多年来积攒了许多劣势,却最终受制于我的项目负责人的治理形式,而无奈胜利倒退。</p><h2>2017-2018</h2><p></p><p>通过最后 1.5 年的艰巨期间,状况开始有所改善。绩效大幅晋升,GitLab 开始更加认真地看待这一问题。招聘流程失去了很大改善,就像下棋一样,GitLab 开始将适合的人放在适合的地位上。性能团队的边界也产生了变动:不再专一于总体性能,而是将重点放在数据库性能上,并且作为此举的一部分被重新命名为数据库团队。随着这一变动还带来了更多用于招聘人员的估算,并指定基础设施工程师来帮助咱们进行例如筹备新数据库等工作。</p><p>我在此期间构建的一个至关重要性能是 GitLab 的数据库负载均衡器,布告在此。该性能容许开发人员持续像平常一样编写他们的数据库查问语句,而负载均衡器会负责确保不将这些查问发送到正本或主库中。执行写操作后,负载均衡器确保主数据库被应用直到所有正本都可用于已写入更改之前,通常称为粘滞位 (sticking)。引入负载均衡器对性能产生了显著和踊跃影响,我置信如果没有这个负载平衡器,GitLab 可能会陷入麻烦。我最骄傲的是能够通明地引入这个零碎。迄今为止我还没有看到一个(更别说 Ruby on Rails)你只需增加到我的项目中并立刻投入使用就好的数据库负载平衡器 。相同,现有的解决方案更像是仅提供了拼图,须要你本人把所有货色粘合起来,1111通常没有任何模式反对粘滞。遗憾的是咱们从未想过将其提取成独立库。</p><p>这段时间不仅是我在 GitLab 和整个职业生涯中极具生产力和改良的期间,也标记着我在 GitLab 工作中最低谷和最可怕的时刻:1 月 31 日,在经验了一天长时间而缓和的解决许多问题后,直到深夜问题仍然存在,我意外<del>解决了 GitLab 的性能问题</del>删除了 GitLab 的生产数据库。随后发现咱们没有任何备份,因为零碎很长一段时间都没有运行,并且负责告诉咱们任何备份谬误的零碎也未失常工作。最终咱们进行了复原,因为当天我将生产数据复制到咱们的演示环境大概六个小时前就已实现这部分工作,只管过程破费了大概 24 小时。尽管失去约六小时数据无疑是十分蹩脚的事件,但如果过后没有做备份会产生什么事件我并不确定。能够说那一天我的心跳停了几拍,并且必定多了几根白发。</p><p>在此期间一个重复引起挫折感的起因是即便引入数据库负载均衡器之后 GitLab 仍心愿对数据库进行分片。不仅我、其余工程师以及我的经理认为这种办法并非解决方案所需之处,并且咱们还有数据反对这一观点。例如,在 GitLab 中读操作远远超过写操作(比例大抵为 10:1),分片只有在写操作显著多于读操作时才有用。此外,咱们存储数据量远远不足以证实引入分片技术所需复杂度合理化。 我分明地记得参谋也说过相似「请勿介意,然而咱们有客户负载和存储量高出数个数量级,即便对他们来说应用分片也属于杀鸡用牛刀」。尽管如此,Gitlab 在接下来几年里持续推动该打算,直至管理层做出放弃决定,而后再次提出(只是换一个稍微不同名字或想法)到我来到为止。</p><h2>2019-2021</h2><p></p><p>在 2018 至 2019 年间,我从数据库团队转入了一个新成立的交付团队,因为我曾经厌倦了过来四年始终致力于性能和可靠性工作。此外,当初有多人正在解决性能和可靠性问题,所以我感觉是时候做点新事件了。这个新团队的指标是改良 GitLab 的公布流程和工具,因为过后这方面的情况最好形容为凌乱。</p><p>例如,咱们考察了提交到主分支并部署更改到 GitLab.com 之间须要多长时间。结果显示均匀要几天,但在最蹩脚的状况下可能要长达三周。次要瓶颈在于 GitLab 社区版和企业版之间存在拆散,存在不同的 Git 仓库中,并且须要定期手动合并和解决抵触。这导致咱们破费数月工夫将两个我的项目合并为一个我的项目。尽管咱们将工作划分为前端和后端,并让各个团队负责向致力做出奉献,但最终我施行了大部分与后端相干的更改,另一位共事则负责大部分前端工作。</p><p>在此期间与团队其余成员一起,在公布流程方面获得了显著停顿,并且咱们达到能够在几小时内部署更改的阶段。只管这远远没有达到应有速度,从原来可能需三周的最差情景变成一天是最差情景,也是一个重大提高。</p><p>与以往期间一样,这段时间也并非没有动荡和变动。</p><p>2018 年是咱们最初一次举办以员工为核心的 GitLab 峰会,而 2019 年及其后的几年则更像传统会议模式,更侧重于客户而不是员工。从财务角度来看,组织 2000+ 人的团聚老本极高是能够了解的。从社交角度来看,这是一个损失,因为峰会更商业化的设置远不如旧模式乏味。我对 Sytse 在舞台上跳舞以回应团队博得较量或者 Sytse 和他的妻子衣着长颈鹿服装上健身课等美好记忆仍历历在目。这些滑稽事件在接下来的几年中将不再产生。</p><p>而后就有了笔记本电脑治理的问题:人们要求公司提供 Mac 笔记本,并基本上能够自行应用它们,或者像我一样应用本人的硬件。多年来,GitLab 管理层开始探讨应用软件远程管理笔记本电脑。在这些探讨中重复呈现的问题之一是所提议计划具都有侵入性(例如可能用于记录用户流动),没有任何避免滥用保障,并且员工(很多)提出意见却被忽视,直到要害员工开始向治理施加压力才引起留神。而后打算被搁置,只能在数月后从新开始探讨。</p><p>最引人注目的并非所提议扭转的内容,而是管理层解决反馈意见形式,以及总体变动散发出为了解决方案寻找问题的感觉。值得一提的是,大多参加此类探讨的人(包含我)都明确须要某种模式笔记本电脑治理(例如防盗),但认为所倡议的侵入性解决方案过头了。</p><p>GitLab 最终采纳了 SentinelOne 作为笔记本电脑治理解决方案。只管 GitLab 规定雇员必须装置该软件用于拜访 GitLab 资源,包含集体设施(至多正在思考),我(应用本人台式)不知何故胜利地避开了,并未被要求装置相干软件,或者因为我未应用公司配发的笔记本电脑,GitLab 忘了核实我的状况。</p><p>这些文化改革与我集体生存中的各种变动相结合,导致了能源、工作效率的降落,压力减少以及工作工夫不够稳固。团队经理(我认为是我遇到过最好的经理)也转岗到另一个职位,当初由一名新任经理领导团队。我和这位经理相处得并不好,造成了抵触,进而引发了「绩效激励打算 PEP」,旨在在须要「绩效改善打算 PIP」之前将事件从新纠正过去。绩效改善打算旨在作为最初一根稻草来改善员工、工作和雇主之间的关系。</p><p>让我感到不难受的是 GitLab 解决 PEP 的形式:我抵赖有须要改良的中央,但我感觉问题局部出自新经理的工作形式。管理层向我保障 PEP 旨在同时改善单方情况,并非只专一于我的晋升,还包含对经理进行调整。然而理论状况并非如此,PEP 只集中于我的需要做出不同解决,它对所需达成规范也有点模糊不清。原始打算是 PEP 继续一个月,在第一个月完结时我的经理决定缩短 PEP 一个月,因为他们认为这是必要的,并未明确阐明具体起因。 我抉择抗拒,并且两个月后实现了 PEP ,管理层认为后果令人满意。</p><p>乐观者会认为这可能只是第一个被放入 PEP 的员工,因而管理层必须在实践中找出解决办法。悲观者则对这一系列事件持更消极态度,但这些想法只是留在了本人心里。</p><p>在这段经验之后,我意识到兴许是时候来到了,因为 GitLab 和我正朝着不同的方向倒退,而且我过后对事物的状态感到不满。</p><p>这个机会呈现在 2021 年底:GitLab 要上市了,思考到我能行使我的股票期权的工夫,意味着我能够在 2021 年 12 月来到。因为荷兰过后期权税收政策的起因,我无奈提前来到:行使股票期权意味着必须领取全额所得税(52%)差额费用和估值之间的差额局部,即便该股票并非流动性资产。就我的状况而言,税款金额如此之高以至于无奈负担得起它,并迫使我期待直至 GitLab 上市。几个月后法律发生变化,当初你能够抉择是在行使时领取税款还是等到股票具备流动性再领取。但问题是如果你推延缴纳税款直至股票具备流动性,则需依据那个工夫点的价值来计算税款,并非基于行使股票期权时的价值。这显然并不现实且存在微小金融风险,但至多你有选择权。</p><p>因而,在取得我的股份后,在 2021 年 12 月辞职全职投入 Inko 我的项目中,并用我的贷款来付账单。</p><h2>经验教训</h2><p>历史聊完了,来看看我在 GitLab 工作期间学到的一些货色。要记住的一件事是,这些都基于我的集体教训,因而在某些方面可能是谬误的。</p><h3>可扩展性须要成为公司文化的一部分</h3><p>GitLab 犯了一个谬误,而且在我来到时仍在持续犯错,那就是对可扩展性不够器重。是的,领导们会说这很重要,并的确进行了改良,但它素来没有像其余指标那样成为首要任务。问题的外围在于 GitLab 盈利模式:次要通过客户自行托管 GitLab 企业版而非 GitLab.com 来赚钱。事实上,GitLab.com 的破费比带来的支出多得多。这天然导致对自行托管市场的关注,并且咱们在 GitLab.com 上遇到的许多性能问题并不适用于许多自行托管客户。<br/>更加令人丧气的是,许多开发人员实际上想进步性能,但却没有取得工夫和资源去做到这一点。</p><h3>团队须要由数据和开发者驱动</h3><p>另一个因素是 GitLab 产品经理主导的个性。尽管一些要害开发人员可能有影响产品决策的能力(只有他们够响且够狠),但次要还是产品经理和总监决定须要做什么。有时这些决定很有情理,而其余时候仿佛齐全基于「我在 Hacker News 上读到这是个好主见,所以咱们必须做它」。</p><p>我置信如果 GitLab 晚期采纳了更简略的层级构造,而不是明天领有传统多层次层级构造,公司会体现得更好。特地是,我认为应该放弃产品经理这个概念,转而赋予团队领导更多势力,并让他们与用户互动更多。对我来说,产品经理应该做的就是:帮忙在技术水平上构建产品,同时也作为团队与其用户之间的联络人。</p><h3>没有数据,无奈确定最小可行性产品 MVP 长啥样</h3><p>GitLab 的外围准则之一是始终从最小可行性变更 (minimal viable change) 开始。这个想法是交付能为用户带来价值的最小可行性产品 (Minimal Viable Product)。听起来很不错,但实际上,最小的定义在人与人之间并不统一。后果是一个团队可能认为性能或者良好的可用性对于某事物是否可行至关重要,而另一个团队却满不在乎。</p><p>实际中,这导致 GitLab 多年来构建了许多并不有用的性能:一个没有人要求且最终被淘汰的无服务器平台、三周内都没人留神到治理 Kubernetes 集群性能生效、咱们必须基于 CI 提供解决方案(从而引入了显著提早)而非应用现有解决方案构建 ChatOps 解决方案,或者只反对创立和查看数据(甚至不能更新或删除)的需要治理性能;这些只是近年来几个例子。</p><p>要确定什么使某事物成为最小可行性产品,须要深刻理解指标受众的欲望。尽管 GitLab 每季度进行用户考察,并且一些团队能够拜访无关用户参与度的数据,但依据我的记忆和与其余前共事交谈所学到的状况看来,这些数据更像是偶尔应用,并非每个团队工作流程中外围局部。</p><h3>SaaS 和自托管不相容</h3><p>GitLab 提供两种产品类型:自托管和 SaaS。我认为大多数公司无奈无效地提供这样的设置,包含 GitLab 在内。你不仅会因为赚取更多钱而产生利益冲突(如上所述),而且这两种设置还有不同的要求和更新利用形式。</p><p>例如,对于 SaaS,你心愿可能疾速部署,并解决产生在集中基础设施上的大量数据和工作负载。鉴于大多数自托管实例与 SaaS 提供相比拟小,许多解决方案并不能实用于遇到问题时作为 SaaS 以及其对应解决方案的情景。这实际上导致平台许多局部存在两条代码门路:一条是针对 SaaS 版本,另一条是针对自托管版本。即便代码在物理上雷同(即你为自托管装置提供某种易于应用的封装器),你还是须要思考其中的差别。</p><p>相同,当你专一于 SaaS 或自托管设置中的一种时,能够将所有注意力都放在为相干设置提供最佳体验上。当然也有例外情况,但它们的确只是常见例外。</p><h3>更多的人不意味着更好的后果</h3><p>就像之前许多其余公司一样,GitLab 在过来几年里雇佣了大量员工,现在领有超过 2000 名员工。我不晓得其中有多少是开发人员,疾速浏览团队的页面,看起来应该至多有几百人。家喻户晓,减少我的项目中的人数并不能必然进步生产力和后果(参见《人月神话》),然而简直每家东方初创企业都会漠视这一点,并雇佣数百名开发人员,即便产品实际上并不需要那么多开发者。</p><p>我没有数据反对这一点,但我狐疑大多数公司其实并不需要超过 20 名开发者,局部可能须要 20-50 名,只有极少数须要 50-100 名。当逾越 100 个开发者时,请开始思考是否在进一步雇佣更多人之前要思考你产品范畴是否曾经失控。</p><p>请留神我这里特指软件开发人员。例如如果你正在制作定制硬件,则可能须要更多人来扩大生产流程。销售和反对也是两个畛域,在这些类型的工作中通常受害于领有更多人手,因为此类工作要求较少协调性。</p><h3>对于应用 Ruby on Rails 的矛盾心理</h3><p>GitLab 是用 Ruby 和 Ruby on Rails 构建的,这在很大水平上促使它获得了明天所享有的胜利。与此同时,当我的项目规模变大且贡献者教训不同档次时,这种组合也带来了挑战。特地是 Rails 让引入性能不佳的代码变得太容易了。</p><p>例如,想显示一个我的项目列表以及显示我的项目成员数量的计数器,很容易无心中引入 N+1 查问问题。尽管 Rails(或更具体地说是 ActiveRecord)提供了解决此问题的性能,但这是一种抉择机制,最终导致开发人员遗记了这一点。我在 GitLab 头几年解决的许多性能问题都波及 N+1 查问问题。</p><p>其余框架多年来从中吸取教训,并提供更好的代替计划。通常做法是,在任意查问相干数据之前必须先传递数据进去而非随后再进行查问。益处在于如果你遗记传递数据,则会遇到一些谬误而不会像按行根底查问数据那样引入性能问题。</p><p>Ruby 自身也是一个我持有不同意见的抉择。一方面,它是一种我喜爱应用将近十年的优良语言。另一方面,其大量应用元编程使得在大型项目中难以使用,即便引入了可选类型。这不是说说,多年前写 Ruby 的动态剖析工具 (https://github.com/yorickpeterse/ruby-lint) 时我亲身经历过这种状况。</p><p>尽管如此,我不确定除了 Ruby 和 Ruby on Rails 的组合之外会举荐什么替代品。诸如 Go,Rust 或 Node.js 这样的语言可能比 Ruby 更高效,但没有一个像 Ruby on Rails 那样功能强大的框架。Python 和 Django 可能是一个抉择,但我狐疑你会遇到与 Ruby 和 Ruby on Rails 类似的问题,至多在某种程度上。如果新的 Web 框架进行困扰于如何定义路由树,并更多地专一于整体生产力,则可能会有所帮忙。</p><p>对于 Inko 我有一些大抵想法该如何解决这个问题,但在开始用 Inko 编写 Web 框架之前还须要做很多其余工作。</p><h3>部署代码所需的工夫对组织的胜利至关重要</h3><p>这是我在退出 GitLab 前就曾经晓得的事件,因为我在以前的工作中花了大量工夫设置良好的部署和测试流水线,但在 GitLab 工作强化了这种信念:你须要可能疾速部署代码,即在将更改推送到任何分支/标签/货色后最多一个小时内。 在 GitLab,咱们花了大概四年的工夫才靠近这一点,并且仍有很长的路要走。</p><p>除了显著的益处外,例如可能更无效地应答事变(无需热修补代码来解决因为部署须要数小时而导致问题),还有一种激励性益处:可能看到你做的更改实时失效是件不错的事件,因为能够理论看到并应用本人的成绩。没有比花几周工夫进行一系列更改而后再等两周能力实现部署更令人气馁了。</p><p>为达成指标,你须要缩短部署工夫以及运行测试套件所需工夫。依据应用程序类型和正在测试服务类型,在进行部署时可能会固有地须要肯定数量的测试运行工夫。 这里重点不是「测试和部署绝不能超过 X 分钟」,而是(作为一个组织)将其视为优先事项,并尽可能疾速地依照业务要求进行部署。 只管不言而喻,但我狐疑许多组织在这方面做得远不如他们本可做得那么出色。</p><h3>依照地区定薪资是一种歧视</h3><p>在 GitLab 赚的工资受到各种变量的影响,其中之一就是地点。你所在地点对工资的影响也不容忽视。当一个公司有实体办公室并须要在特定区域招聘人员时,根据地点调整薪酬可能是有情理的,否则可能无奈雇佣所需区域内必要人员。但对于没有实体办公室、在寰球设立法律实体的近程公司来说,在同样教训和责任下纯正基于居住地领取两个不同人员不同薪水没有非法理由。</p><p>举个例子:我来到 GitLab 时,我的年薪约为 12 万欧元,税前月支出约 8500 欧元。对荷兰而言这是一份不错的工资,在家全职工作很难找到提供更好条件的公司。但如果我住在旧金山湾区,我至多会赚取那个数额两倍以上甚至更多。并非因为我可能更好地实现工作或出于其余无效起因,而仅仅因为我生存在湾区而非荷兰。</p><p>无论如何解释这件事件都能够看作是一种歧视行为 - 纯正基于居住地给某人领取较少报酬与别人相比。想想看:如果一个公司因为某人肤色或性别而缩小其报酬,则该公司将陷入困境。但以居住地领取较少报酬却被认可?</p><p>如何解决这个问题?对企业来说很简略:只需依据岗位要求领取,并非申请者所处地位进行领取即可。无论你给在湾区还是菲律宾的某人报酬,薪水都是每年 10 万美元,对于企业来说老本都是一样的。至于员工们,我惟一的倡议就尝试会谈获取更高薪水了,但由此带来艰难兴许会证实辣手,因为依照地位付费通常意味着企业倔强保持。我心愿有朝一日咱们国家法规能跟上这种做法.<br/>一个仿佛在这方面做得很好的是 0xide 公司。 与其依据员工所在地领取薪水,0xide 向员工领取雷同金额,参阅此帖,我深表钦佩,并认为更多公司应该这样做。</p><h2>总结一下</h2><p>回顾过去,我在 GitLab 的时光是踊跃和消极经验的混合。我为所在团队获得的成就感到十分骄傲,也很快乐能与这些人一起工作,但最近一年左右让本来美妙的经验变得令人丧气。我对在 GitLab 工作没有任何遗憾,如果能够重来,我会做出一些扭转,因为有了上帝视角。只管有毛病,我依然举荐它作为一个值得工作的公司,因为我认为它毕竟比其余许多公司要做得<strong>好多了</strong>。</p><hr/><p> 更多资讯,请关注 Bytebase 公号:Bytebase</p></article> ...

February 29, 2024 · 3 min · jiezi

关于数据库:反哺开源我们计划把这个商业化功能贡献给Apache-DolphinScheduler

<article class=“article fmt article-content”><p>往年,白鲸开源打算将Gitops性能反馈奉献给Apache DolphinScheduler社区,这个性能次要解决了开发、生产环境的同步问题。</p><p></p><p>在没有这个性能之前,咱们只能通过导入导出的形式,以 JSON 文件作为媒介将开发环境的内容同步到生产环境,这个形式会面临两个问题。</p><ul><li>须要手动、或者自定义自动化脚本解决:Apache DolphinScheduler没有提供开箱即用的同步两个环境的办法,只能依附用户手动的导入导出。或者用户须要自定义自动化脚本,将开发环境的内容同步到生产</li><li>不反对跨我的项目导出:JSON导入导出是在我的项目维度下进行的,跨我的项目的导入导出不反对,意味着如果有多个我的项目的环境,须要进行屡次操作</li></ul><p>白鲸开源发现这个性能的优化点,剖析调研后发现GitOps是解决这个问题的可能计划,所以咱们在外部实现了GitOps用来同步开发生产环境,从而实现工作流部署。</p><h2>什么是 Git Ops?</h2><p>GitOps 是一种基于版本控制系统(通常是Git)的继续交付(Continuous Delivery)和基础设施治理的办法。</p><p>它的核心理念是将整个零碎的状态和配置存储在版本控制库中,通过Git的个性实现对系统的自动化治理和继续交付。以下是GitOps的一些要害特点和劣势:</p><ul><li>Infrastructure as Code: GitOps强调应用代码来形容和治理基础设施。通过在版本控制库中存储基础设施代码,能够轻松地重建、复制和批改整个环境。</li><li>申明性配置: 应用申明性配置,定义零碎的冀望状态而非具体的执行步骤。这样,GitOps零碎能够主动比对理论状态与冀望状态,并进行调整以使其统一。</li><li>自动化: GitOps强调自动化,通过Git中的提交和合并触发自动化流程,缩小人工干预,进步可靠性和可重复性。</li><li>版本控制: 应用版本控制系统进行配置管理,提供了可追溯性和回滚能力。每个零碎变更都通过Git提交,使得能够轻松回溯到先前的配置状态。</li><li>察看和监控: GitOps零碎通常具备察看和监控的能力,通过实时监测Git仓库的变更来驱动继续交付流程。</li></ul><h2>咱们打算做什么?</h2><p>咱们在配置核心实现了GitOps和Apache DolphinScheduler的集成,用户仅须要在配置核心配置了Git供应商的链接,零碎中集成了Commit提交、分支推送、以及部署的性能。</p><p>简略的讲就是用户能够通过点击图形化界面中的一个按钮,实现生产环境到开发环境的部署.</p><p>##### Git操作流程</p><p></p><h5>产品设计流程 </h5><p></p><p>白鲸开源已在外部实现了GitOps与Apache DolphinScheduler的深度集成,通过简化的配置,用户能够轻松实现开发与生产环境的疾速同步。此性能的引入不仅晋升了环境部署的效率,也增强了零碎的安全性和可追溯性。</p><p>展望未来,白鲸开源科技在2024年打算将这一性能奉献给Apache DolphinScheduler社区,以期为更宽泛的用户解决环境同步的挑战,推动社区的技术倒退和翻新。咱们置信,通过社区的共同努力,能够一直优化和欠缺工作流调度和治理,为用户提供更加高效、牢靠的解决方案。</p><blockquote>本文由 白鲸开源科技 提供公布反对!</blockquote></article>

February 29, 2024 · 1 min · jiezi

关于数据库:CQ-社区版-290-新增告警配置GaussDBDWS脱敏数据可明文查询等

<article class=“article fmt article-content”><p>春节已过,大家又开始了忙忙碌碌新的一年。新的一年,CloudQuery 依旧会陪伴着大家,带来更多新的性能和冲破!</p><p>上面就让咱们来看看,本月 CloudQuery 社区版 2.9.0 在各个模块都有哪些值得关注的更新吧~</p><h2>新增性能</h2><h4><strong>系统管理:新增告警配置、凋谢角色治理二级菜单</strong></h4><h5>告警配置:支持系统告警和业务告警配置</h5><p>社区版 2.9.0,新增了 CQ 平台的告警配置性能,可能灵便地设置和定制各种告警规定和参数,加强了对系统运行状态的实时监控能力,提供预警机制。</p><p>本次减少的「告警配置」次要包含「零碎告警配置」和「业务告警配置」。</p><h6>1. 零碎告警配置</h6><p>零碎告警配置次要是针对 CQ 平台在==使用性能==上的告警配置,蕴含 CPU 使用率超过阈值、内存使用率超过阈值、零碎异样、文件上传大小超过阈值、导入工作数超过阈值、文件读取大小超过阈值、文件上传大小超过阈值、license 残余天数超过阈值。</p><p></p><h6>2. 业务告警配置</h6><p>业务告警配置次要针对平台纳管数据库在<strong>操作</strong>上的告警配置,业务告警类型目前蕴含越权操作、高危操作、慢 SQL、批量操作。</p><p></p><h5>「告警配置」的应用 Tips</h5><p><strong>「零碎告警配置」的阈值调整</strong></p><p>在「零碎告警设置」中,告警类型的阈值都可进行设置。其中有三种类型的阈值须要留神,为:<strong>「文件大小」、「导入工作数」、「文件读取大小」。</strong></p><p>❗️这三种类型的阈值须要<strong>与「零碎设置」-「根底设置」中的保持一致</strong>,一处变动另一处也应跟着变动。</p><p><strong>告警形式</strong></p><p>目前可抉择的告警形式有两种:零碎音讯告诉(默认)、邮件告诉(需进行邮件配置)。</p><p><strong>音讯接管</strong></p><p><strong>「零碎告警」</strong> 的音讯接管人类型只有「集体」,音讯接管人默认为超级管理员(admin),可批改具体的接管用户。</p><p><strong>「业务告警」</strong> 的音讯接管人类型有集体、部门负责人和连贯管理员。抉择「部门负责人」和「连贯管理员」即无需抉择音讯接管人;抉择「集体」则须要抉择音讯接管人,音讯接管人反对多选。</p><p> 下图即为告警触发后系统管理员收到的零碎音讯告诉</p><p></p><h5>角色治理:零碎角色凋谢二级菜单勾选权限</h5><p>以往版本中,「角色治理」中对于不同角色的受权咱们只能勾选到一级菜单,比方对「DBA角色」凋谢「审计剖析」模块的权限,默认凋谢整个模块的权限。</p><p>本次版本,减少了二级菜单的勾选权限,如对「DBA角色」凋谢「审计剖析」模块权限,可抉择该模块下审计概览、对象审计、用户审计、权限看板局部凋谢。</p><p></p><h4><strong>批量执行</strong></h4><h5>「批量执行」性能退出到「工具权限」管制</h5><p>对于「批量执行」的性能,在本次版本中退出到了「工具权限」中。可通过权限来管制哪些连贯可进行批量操作,并抉择对哪些用户失效。</p><h5> 「批量执行」的应用门路</h5><p>❗️ <strong>「批量执行」权限设置</strong></p><p>「数据库治理」-「手动受权」,连贯层级下用户的「工具权限」-「右键菜单」,可勾选「批量执行」。</p><p></p><p><strong>用户应用门路</strong></p><p>「数据操作」- SDT树对应连贯-右键菜单</p><p></p><h5>减少脚本替换性能</h5><p>过往版本中,在创立批量执行工作后,脚本在执行过程中遇错终止后若想从新使工作执行实现,只能从新创立一个工作,这样就须要将后面执行胜利的局部再执行一遍,效率较低。</p><p>因而在这个版本中,咱们减少了创立批量工作后的「脚本替换」性能。在实现批量工作创立后,在「工作详情」-「执行详情」能够替换脚本。</p><p></p><blockquote>❗️ <strong>「脚本替换」留神点</strong><br/>脚本替换时==只反对替换同名的脚本==,因为创立完批量工作后就曾经生成了程序文件,替换的脚本必须是同名同格局脚本,==否则会提醒脚本上传不正确==。</blockquote><h5>「批量执行」的其余性能优化</h5><ul><li>上传脚本反对主动转换字符utf-8</li><li>上传文件限度,仅反对上传纯文本文件,不容许上传图片、excel、视频等格局的文件</li><li>减少 sqlplus 命令解决,不执行 sqlplus 命令,但会记录在日志中</li><li>批量工作日志下载反对谬误日志归档,即一个工作中日志下载包含全量日志和谬误日志两个文件</li></ul><h4><strong>数据操作:SDT树、SQL编辑器、后果集、导出等优化</strong></h4><h5>SDT 树模块优化</h5><ul><li><strong>SDT 树连贯名减少「批改别名」性能</strong></li></ul><p>针对不同用户应用同一个连贯,场景不同连贯名也可能不同,在之前的版本,连贯名由创建者决定,使用者不容许批改连贯名。</p><p>本次更新,针对连贯对用户凋谢「批改别名」的性能,批改别名后仅对本人可见,其它用户看见的还是原连贯名。</p><p></p><ul><li><strong>SDT 树排序优化,所有数据库对象排序默认按字符集程序</strong></li></ul><h5>SQL 编辑器优化</h5><ul><li><strong>SQL 编辑器反对 Ctrl+鼠标左键点击/Alt+s 的形式选中一条残缺的SQL</strong></li></ul><p></p><ul><li><strong>反对选中语句进行导出,不须要查问完后果从后果集中导出</strong></li></ul><p>本次更新,反对对 SQL 编辑器内语句进行间接导出。选中语句即可进行「导出选中语句」,不须要执行完后果后再导出。</p><p></p><p>❗️ <strong>「选中语句导出」权限设置</strong></p><p>「数据库治理」-「手动受权」,连贯层级下用户的「工具权限」-「导出性能」全选。</p><p></p><ul><li><strong>语句执行后果细分:解析失败/鉴权失败/审核失败/执行失败/执行胜利</strong></li></ul><p>SQL 编辑器以及批量执行中语句操作过程大抵分:解析-审核-鉴权-执行,数据变更中语句操作过程大抵分:解析-执行。</p><p>目前所有语句的操作后果都分为失败/胜利两种,并未指明是哪个流程中执行/失败,只能在错误信息中查看。本次 2.9.0 中,咱们将语句的具体执行状态后果展现进去,将执行后果细分为==解析失败、鉴权失败、审核失败、执行失败、执行胜利。==</p><p></p><ul><li><strong>数据操作模块「执行日志」减少革除日志性能</strong></li></ul><p></p><h5>后果集减少明文查问性能</h5><p>后果集工具栏中减少了「明文查看」性能。针对后果集中有敏感数据并且开启了复核的数据源,可能进行明文查问。明文查问时须要输出管理员提供的复核码,通过后即可查看明文数据。</p><p></p><p>❗️ <strong>「明文查问」留神点</strong></p><p>只有当查问的后果集中蕴含敏感数据,并且在「手动受权」-「根底配置」-「同步复核形式」开启了「otp 复核」,后果集工具栏中才会显示「明文查看」图标。</p><h5>Excel 文件导出减少水印</h5><p>在「零碎设置」-「水印设置」中,减少了「EXCEL 水印设置」,设置实现后,零碎中所有导出的 EXCEL 文件都会带上对应水印。</p><p></p><h4><strong>数据保护:新增脱敏命中率设置、减少检索性能</strong></h4><h5>数据脱敏新增设置脱敏命中率</h5><p>之前收到了一些小伙伴们的反馈,示意在进行脱敏设置后,后果集中只有被规定匹配到的数据才会脱敏,没有匹配到的则不脱敏。但在理论场景中,无奈保障某一字段的数据肯定是同类型,可能存在脏数据或者一些谬误数据。</p><p>基于这种状况,咱们决定把是否脱敏的决定权交给用户。因而,在本次版本中,咱们减少了「脱敏命中率」的设置。</p><p>在「数据保护治理」-「脱敏数据」中,用户能够自定义脱敏规定的采样数据和命中率,达到命中率就会对后果集中所有数据进行脱敏。</p><p></p><h5>数据保护治理减少检索性能</h5><p>有些状况下,咱们可能晓得库名是什么,但不分明在哪个数据库连贯下。因而凋谢了资源检索的能力。原来资源检索只在数据操作 sdt 树和连贯治理中,本次更新,在「数据保护治理」-「资源列表」中也减少了检索性能。</p><p></p><h4><strong>受权:主动受权优化创立权限集、减少失效工夫选项</strong></h4><h5>主动受权优化了权限集局部性能</h5><ul><li><strong>权限集策略优化</strong></li></ul><p>在编辑策略时,测试时反对检索所有用户并展现命中策略条件的用户。</p><p></p><ul><li><strong>对权限集内不同层级的权限继承做了页面回显的优化</strong></li></ul><p>CloudQuery 权限集中对于不同层级之前的权限继承逻辑是:上一层级装备的权限会主动继承给下一层级,而下一层级又可独自再进行权限配置。</p><p>本次更新,咱们则对权限集中不同层级之前的权限关系做了页面回显的优化:</p><ol><li>在配置完上一层级的权限后,关上下一层级默认显示从上一层级继承的权限。</li><li>在下一层级实现权限调整后,如果和上一层级权限不统一,则会在上一层级给出相干提醒:“此层级下存在其它权限设置,重置将清空下层级权限设置”</li><li>在右侧减少了权限集权限浏览窗口,可疾速查看该权限集下权限配置状况</li></ol><p></p><h5>受权时减少「失效工夫」选项</h5><p>目前,在「手动受权」中进行受权操作时,受权完失效工夫即是“永恒”,而用户进行提权申请时反对抉择「失效工夫」。</p><p>因而,在受权时咱们减少「失效工夫」字段,管理员进行用户受权时可抉择「永恒」或「自定义时间段」。</p><p></p><h4><strong>数据源反对:新增 GaussDB-DWS、Oceanbase 终端</strong></h4><h5>新增数据源:GaussDB-DWS</h5><p>在数据源反对方面,本次 2.9.0 新增了 GaussDB-DWS,反对版本为 DWS 2.0、DWS3.0。</p><p></p><h5>Oceanbase:凋谢终端能力</h5><p>针对 Oceanbase 数据源,凋谢了对应终端性能。当初,在「数据操作」 SDT树右键,即可关上终端。</p><p></p><h5>Oracle:合并包和包体</h5><p>针对 Oracle 数据库元素,咱们合并了「包」和「包体」,对立为「包」。</p><p></p><h4><strong>流程治理:工单「催一下」减少工夫限度</strong></h4><p>用户提交的流程申请,针对在「待审核」状态下的流程可进行「催一下」操作,为防止用户频繁点击,对该性能减少点击操作的工夫距离,每次操作距离为 60s。</p><p></p><h4><strong>审计剖析:记录事务提交过程</strong></h4><p>在过往版本中,对于“事务是否提交”并未退出到审计的语句明细中,无奈判断执行的语句是什么事务,是 rollback 还是 commit。</p><p>社区版 2.9.0,在审计剖析语句明细中减少一条记录,即记录用户在关上窗口时,就记录开启事务,再记录一些语句明细,最初记录是 rollback 还是 commit。</p><p></p><h2>Bugfix</h2><ul><li>修复了明码设置报错提醒不清晰的问题</li><li>修复了申请流程如果撤回目前反对删除的问题</li><li>修复了手动受权对表对象进行搜寻时只能搜寻到当前页的表的问题</li><li>修复查问后果总行数显示为 -1 的问题</li><li>修复手动受权左侧搜寻框,大写能够搜寻进去小写,小写搜寻不进去大写的问题</li><li>修复了 oscar 数据库抉择具体的 schema 上执行 sql 报错的问题</li><li>修复了系统管理-零碎设置-水印设置,点开帮忙图标文案谬误的问题</li></ul><p><strong>新版本下载</strong></p><p>下载地址:https://www.cloudquery.club/download<br/>帮忙文档:https://bintools.yuque.com/org-wiki-bintools-xniowl/do4ums</p><p><strong>用户反馈</strong></p><p>工单入口:https://www.cloudquery.club/login</p><p><strong>如果有更多你想要的性能/待优化的体验,欢送增加小助手在社群通知咱们哦</strong> </p></article> ...

February 29, 2024 · 1 min · jiezi

关于数据库:Apache-Doris-205-版本正式发布

敬爱的社区小伙伴们,Apache Doris 2.0.5 版本已于 2024 年 2 月 27 日正式与大家见面。这次更新带来一系列行为变更和性能更新,并进行了若干的改良与优化,旨在为用户提供更为稳固高效的数据查问与剖析体验。新版本曾经上线,欢送大家下载体验! 行为变更select char(0) = '\0' 返回 true,跟 MySQ L 的行为保持一致Export 导出数据反对空表新增性能利用过滤条件中的is null 谓词,将 OUTER JOIN 转换为 ANTI JOIN减少SHOW TABLETS BELONG语法,用于获取 Tablet 所属 TabletInferPredicates 反对 IN,例如:a = b & a in [1, 2] -> b in [1, 2]反对对物化视图收集统计信息SHOW PROCESSLIST反对输入连贯对应的 FEExport 导出 CSV 文件反对通过 with_bom 参数管制其是否带有 Windows BOM改良优化在无统计信息时对 Query Plan 进行优化基于 Rollup 的统计信息对 Query Plan 进行优化用户进行 Auto Analyze 后,将尽快进行统计信息收集工作缓存统计信息收集异样,防止冗余异样栈信息反对在 SQL 中自定义应用某一物化视图优化 JDBC Catalog 谓词下推列的名字符本义修复 MySQL Catalog 中to_date函数下推的问题优化 JDBC 客户端连贯敞开的逻辑异样,异样时失常勾销查问优化 JDBC 连接池的参数通过 HMS API 获取 Hudi 表面的分区信息优化 Routine Load 的内存占用和错误信息如果 max_backup_restore_job_num_per_db 参数为 0,将跳过所有备份复原工作

February 28, 2024 · 1 min · jiezi

关于数据库:致-Tapdata-全体用户2023-年我们把更多精力集中到了产品能力和稳定性上

2023 仍旧过得很快,这一年,咱们公布了 Tapdata 3.0,摸索了 Tapdata 在批发、制作、AI 等畛域的新一代解决方案;上线了 Tapdata 海外版,胜利入选谷歌出海守业加速器我的项目;并与更多数据库达成兼容性互认证,进一步壮大了实时数据生态…… 除此之外,咱们将本身大部分的能量投入到了产品能力与稳定性的继续打磨之中。因为咱们深信,产品自身才是咱们与用户实现连结的最大依仗。 以“让您应用数据就像通过自来水龙头取水那样不便简略”为使命,Tapdata 心愿充分利用实时数据集成和实时数据服务的平台能力,让陈腐数据得以真正滋润各行各业的智慧化、现代化、数字化倒退。 新春伊始,咱们在这里以迭代列表的模式向大家汇报 Tapdata 2023 年在产品层面做出的优化和更新,心愿能帮忙大家更多地理解最新版本的性能变动。 感激过来一年大家对 Tapdata 的反馈、反对与陪伴,新一年咱们还将为用户敌人们提供更多 Tapdata 教程指南以及行业解决方案的倡议,欢送大家继续关注。 Tapdata 2023 迭代列表*点击每条迭代内容,可查看该条性能对应的具体阐明哦 版本指路:点击登录 Tapdata Cloud申请试用 Tapdata 本地部署版 新增产品能力 上线实时数据中心性能,并公布基于实时数据中心的数据血统追溯能力公布全量分片能力,反对全量断点续传,为大数据量数据同步提供保障扩大和优化数据校验性能,晋升产品数据一致性查看能力。公布类型过滤、工夫运算、规范 JS、Python、Unwind 等解决节点,晋升产品数据开发能力实现 OP 版性能权限管制和数据权限管制的上线 实现数据源错误码的欠缺,提供更丰盛的问题起因剖析和解决方案举荐 外围认证数据源反对 SSL 连贯 新增云版性能 云版上线主从合并节点并提供更易操作的物化视图构建形式 云版上线全托管的 Agent 云版上线订购 MongoDB Atlas 存储作为实时数据中心的两头存储 晋升产品稳定性,欠缺针对云版服务的监控和告警能力,保障云版服务的稳固继续运行 对内,实现 CI/CD 自动化测试等精细化流程构建,并保障流程的稳定性,晋升产品继续集成和测试的效率实现与谷歌云的对接,上线谷歌云 Marketplace迭代性能具体清单数据开发工作源节点新增反对数据过滤能力,反对对全量和增量阶段数据进行过滤数据开发新增 JS 解决节点试运行能力新增追加合并节点,反对将多个雷同构造表的数据合并成一张表反对在JS节点里操作源库和指标库 新增Redis数据源作为指标新增Excel数据源作为源新增数据校验性能复制工作源节点选表新增依照表达式匹配能力,反对依照表达式来抉择要同步的表,表达式匹配模式下主动反对动静新增表新增反对在源端设置读取的 batchSize,反对在指标端设置写入的 batchSize以指定字段的排序作为轮询条件进行增量数据采集开发工作新增信息输入DUMMY 数据源能够疾速减少多个字段新增 TiDB 作为源,并反对通过轮询形式进行增量同步新增内部缓存对立配置和治理新增工作进度里程碑展现新增LDP(Live Data Platform)性能新增数据复制反对调整关联条件字段新增反对redis在数据复制工作里作为指标应用集群监控页面, 列出以后的引擎, 对外建设的所有连贯数量, 按 ip:port 归类Doris 作为指标, 反对数据校验能力(Count)新增心跳表性能,数据源配置里, 新增心跳表设置。关上后会在源库创立一个名为:_tapdata_heartbeat_table的心跳表,每隔1S更新一次其中的数据基于错误码提醒问题解决方案SQL类数据源和mongo数据源反对全量自定义查问(SQL)产品边界规定框架设计与实现,保留工作时主动对产品边界进行检测JS 中运行 MongoDB 聚合解决创立 Custom Connection 时要反对对脚本进行调试权限治理性能新增反对角色的增删改能力新增全量分片能力,目前仅反对 MongoDB新增工夫运算解决节点为API治理减少 Application 分类能力API server 新增集成 GraphQL 能力,能够通过 API Server 的地址 +graphql 来拜访集群治理新增反对获取线程资源监控和数据源应用状况数据新增反对在 Doris 上公布 API 接口复制工作,解决节点新增反对查看表模型LDP 新增反对表级溯源能力新增一个类型过滤的节点,能够将一些指定类型过滤掉不向后同步指标节点反对依照乘以系数的形式来调整字段的长度Kafka 反对自定义音讯体格式数据复制/开发工作反对依据数据记录的大小动静调整批量参数新增反对 DWS 数据源作为指标基于数据面板的工作创立疏导新增性能和数据权限管制国内站订购 Atlas 存储时新增 Free trail、M10、M20、M30新增反对 Redis 到 Redis 的同步能力新增 Python 处理器节点,用户能够通过Python脚本来对数据进行解决Kafka 数据源新增反对设置正本数新增 MongoDB 到 MongoDB 同步的 unset 反对新增物化视图构建性能 ...

February 28, 2024 · 1 min · jiezi

关于数据库:如何用CDHApache-DolphinScheduler开启Kerberos

搭建环境多台linux主机搭建集群+CDH 6.3.2 (Parcel)版本+Apache DolphinScheduler1.3.2版本,本流程在CDH已搭建实现并可失常应用后,开启kerberos性能,Apache DolphinScheduler用于大数据工作治理与执行,是很不错的任务调度平台,是否提前部署均可! 开启kerberos目标:用于用户权限治理与平安认证,在开启kerberos之前的平安防护次要采取开启防火墙的形式,当初进行替换! 本流程开启kerberos后可失常运行的服务包含: CDH集群失常启用linux用户创立kerberos权限hive、hbase、hdfs等服务在主机可失常执行DolphinScheduler装置失常,工作失常执行,定时工作失常执行dolphinscheduler的租户权限失常,可进行大数据服务运行和应用部署kerberos抉择一台主机装置Kerberos服务,执行用户为root #server端lz1.cmp14722.app sudo yum install krb5-server krb5-libs krb5-auth-dialog krb5-workstation -y同步执行集群主机装置client #client lz1.cmp14722.app02 - lz5.cmp14722.app02 for item in cat /etc/hosts | grep lz |awk '{print2}'; do sshitem "hostname; yum install krb5-devel krb5-workstation -y" ; done如果没有设置ssh免密登录其余主机,须要手动输出每个主机登录明码,倡议设置,前面也会用到,设置办法网上很多,暂略。(与一台台主机本人装置一样) 插播一句,如果ssh免密登录设置后还是不能登录,可查看所有登录主机用户目录下的.ssh文件夹权限(700)以及文件夹内authorized_keys(600)文件权限 配置文件 配置文件批改2个 /etc/krb5.conf文件中default_realm对应的值轻易起一个即可,realms局部抉择服务主机,这里我抉择装置主机对应hostnamesudo vi /etc/krb5.conf \# Configuration snippets may be placed in this directory as well includedir /etc/krb5.conf.d/ [logging] default = FILE:/var/log/krb5libs.log kdc = FILE:/var/log/krb5kdc.log admin_server = FILE:/var/log/kadmind.log [libdefaults] dns\_lookup\_realm = false ticket_lifetime = 24h renew_lifetime = 7d forwardable = true rdns = false pkinit_anchors = FILE:/etc/pki/tls/certs/ca-bundle.crt _default_realm =_BIGDATA.COM dns\_lookup\_kdc = false #default\_ccache\_name = KEYRING:persistent:%{uid} [realms] BIGDATA.COM_= {_ kdc = lz1.cmp14722.app admin_server = lz1.cmp14722.app } [domain_realm] _.cmp14722.app =_BIGDATA.COM _cmp14722.app =_BIGDATA.COM/var/kerberos/krb5kdc/kdc.conf文件我这里放弃不变sudo vi /var/kerberos/krb5kdc/kdc.conf [kdcdefaults] kdc_ports = 88 kdc\_tcp\_ports = 88 [realms] EXAMPLE.COM_= {_ #master\_key\_type = aes256-cts acl_file = /var/kerberos/krb5kdc/kadm5.acl dict_file = /usr/share/dict/words admin_keytab = /var/kerberos/krb5kdc/kadm5.keytab supported_enctypes = aes256-cts:normal aes128-cts:normal des3-hmac-sha1:normal arcfour-hmac:normal camellia256-cts:normal camellia128-cts:normal des-hmac-sha1:normal des-cbc-md5:normal des-cbc-crc:normal }将krb5.conf散发到其余主机客户端 for item in cat /etc/hosts | grep lz | grep -v 1 |awk '{print2}'; do scp /etc/krb5.confitem:/etc/ ; done启动kerberos ...

February 28, 2024 · 2 min · jiezi

关于数据库:Apache-SeaTunnel-及-Web-功能部署指南小白版

在大数据处理畛域,Apache SeaTunnel 已成为一款备受青眼的开源数据集成平台,它不仅能够基于Apache Spark和Flink,而且还有社区独自开发专属数据集成的Zeta引擎,提供了弱小的数据处理能力。随着SeaTunnel Web的推出,用户界面(UI)操作变得更加敌对,我的项目部署和治理更加便捷。 本指南旨在提供一个简明扼要的步骤,帮忙用户胜利部署SeaTunnel及其Web界面。小主曾经把可能遇到的坑都填过了,心愿大家都能安安稳稳上路,不掉坑,话不多说,走起~ 1.预置环境1.1.所需软件包及版本要求CentOS 7.6.18\_x86\_64JDK >= 1.8.151Maven >= 3.6.3Apache Seatunnel ==2.3.3Apache Seatunnel Web == 1.0.0MySQL >= 5.7.28 1.2.下载地址官网下载入口: 下载入口 apache-seatunnel-2.3.3: apache-seatunnel-2.3.3-bin.tar.gz apache-seatunnel-web-1.0.0: apache-seatunnel-web-1.0.0 1.3.筹备工作1.3.1.装置JDK装置及配置零碎环境变量略过,自行百度 1.3.2.装置Maven装置及配置零碎环境变量、配置阿里云仓库镜像, 略过,自行百度 1.3.3.创立装置软件目录创立SeaTunnel后端服务装置目录 mkdir -p /opt/bigdata/seatunnel-2.3.3/backend创立SeaTunnel前端服务装置目录 mkdir -p /opt/bigdata/seatunnel-2.3.3/web 1.3.4.下载或者本地上传安装包下载apache-seatunnel-2.3.3-bin.tar.gz 进入1.3.2中创立好的装置目录cd /opt/bigdata/seatunnel-2.3.3/backend 下载安装包wget https://dlcdn.apache.org/seatunnel/2.3.3/apache-seatunnel-2.3.3-bin.tar.gz 下载[apache-seatunnel-web-1.0.0.tar.gz 进入1.3.2中创立好的装置目录cd /opt/bigdata/seatunnel-2.3.3/web 下载安装包wget https://dlcdn.apache.org/seatunnel/seatunnel-web/1.0.0/apache-seatunnel-web-1.0.0-bin.tar.gz 如果你曾经将安装包下载到本地, 可通过FTP工具上传安装包到前后端各自的装置目录。 2.装置Apache Seatunnel2.1.解压安装包解压后端安装包tar -zxf /opt/bigdata/seatunnel-2.3.3/backend/apache-seatunnel-2.3.3-bin.tar.gz 重命名安装包mv apache-seatunnel-2.3.3-bin apache-seatunnel-2.3.3 解压前端安装包tar -zxf /opt/bigdata/seatunnel-2.3.3/web/apache-seatunnel-web-1.0.0-bin.tar.gz 重命名安装包mv apache-seatunnel-web-1.0.0-bin apache-seatunnel-web-1.0.0 2.2.配置环境变量在/etc/profile中配置环境变量 让批改配置立刻失效 source /etc/profile2.3.下载JAR包2.3.1.创立目录mkdir -p /opt/bigdata/seatunnel-2.3.3/backend/apache-seatunnel-2.3.3/connectors/flink ...

February 28, 2024 · 3 min · jiezi

关于数据库:KaiwuDB-拿下物联之星双项殊荣

2月27日,“物联之星”2023 中国物联网行业年度榜单正式公布。KaiwuDB 拿下“2023 年度中国物联网行业翻新产品”,KaiwuDB CTO 魏可伟再获“2023 年度中国物联网行业卓越人物”名称。 作为国内物联网行业最具影响力的评选活动之一,本届“物联之星”吸引到近 500 家企业携优良问题、翻新产品、标杆我的项目竞相角逐。KaiwuDB 凭借在技术创新、场景浸透、产业服务方面的突出贡献胜利入选两大重要榜单。 KaiwuDB 作为一款分布式多模数据库,继续致力面向 AIoT 场景提供以时序解决能力为一大外围,联合剖析、原生 AI 和云边端协同能力的数据智能产品和服务。依靠“就地计算”为代表的翻新技术,KaiwuDB 在收集、解决宏大简单数据量的同时满足计算端的性能需求,实现毫秒级的实时数据处理及剖析,多维度、深层次开掘数据论断,帮忙企业更好地生产数据,领导生产管理决策,降本增效。 2023年,基于对 AIoT 垂直场景需要的深刻摸索,KaiwuDB 先后推出工业物联网场景解决方案、离散制造业解决方案、数字能源解决方案等,并在工业互联网大数据中心、国网山东综能、奇瑞青岛的重点零碎落地部署,大幅晋升零碎数据实时处理和数据价值开掘的能力,实现以数据驱动的政府治理效率、企业生产经营效率的有质晋升。 将来,KaiwuDB 也将继续开掘物联网衍生的场景需要,助力企业实现治理精细化、决策科学化和服务高效化,以当先的数据运管能力拥抱物联网时代。

February 28, 2024 · 1 min · jiezi

关于数据库:网络安全与IP地址保护数字世界的关键

在当今数字化时代,网络曾经成为人们生存和工作的重要组成部分,然而随之而来的平安威逼也不可漠视。网络安全是爱护互联网和网络系统免受未经受权的拜访、毁坏、批改或泄露的威逼或攻打的畛域。在网络安全的构建中,IP地址扮演着至关重要的角色。IP数据云将探讨网络安全与IP地址之间的密切关系以及IP地址在网络安全中的作用。IP地址是互联网上的设施(如计算机、手机、路由器等)在网络中的惟一标识符。它采纳数字标识,用于在网络中定位和辨认设施。IP地址分为IPv4地址和IPv6地址两种类型,其中IPv4地址由32位二进制数字组成,通常以点分十进制示意,而IPv6地址由128位二进制数字组成,通常以冒号分隔的十六进制示意。IP地址在网络安全中的作用 设施辨认与访问控制IP地址作为设施在网络中的惟一标识符,能够用于辨认和验证设施的身份。网络管理员能够通过IP地址对网络中的设施进行辨认和分类,并基于设施的IP地址施行拜访控制策略,限度或容许特定IP地址的拜访,从而爱护网络资源的平安。流量过滤与防火墙设置网络安全设施(如防火墙)通常依据IP地址对网络流量进行过滤和治理。管理员能够依据源IP地址、指标IP地址、端口等信息设置防火墙规定,对网络流量进行检查和过滤,避免歹意流量进入网络,进步网络安全性。平安审计与日志记录IP地址能够用于进行平安审计和日志记录。网络管理员能够依据设施的IP地址追踪和记录网络流动,包含登录记录、拜访记录、数据传输记录等,以便及时发现异常行为和安全事件,进行平安剖析和考察。破绽扫描与破绽修复通过扫描网络中的设施IP地址,网络管理员能够发现潜在的安全漏洞和弱点。针对发现的破绽,管理员能够采取相应的措施进行修复和加固,进步网络系统的安全性和稳定性。IP地址在网络安全中扮演着重要的角色,它不仅是设施在网络中的惟一标识符,还能够用于设施辨认与访问控制、流量过滤与防火墙设置、平安审计与日志记录、破绽扫描与破绽修复等方面。无效地治理和爱护IP地址,对于构建平安稳固的网络环境至关重要,能够无效地防备各种网络安全威逼和攻打,爱护数字世界的平安和稳固。

February 28, 2024 · 1 min · jiezi

关于数据库:又一家硅谷明星公司误删库了

之前咱们间断剖析了两起误删库事件,Linear 删库,GitLab 删库。就在咱们筹备让这个主题告一段落时,业界又产生了一起删库事件。 这次的配角是 Resend,也是最近硅谷冉冉升起的明星初创公司。想重塑邮件体验,挑战像 Mailchimp 这样的老牌玩家。 这次的删库事件仍然是相熟的配方,在执行数据库 schema 变更时,原本是针对本地环境执行,但后果命令发给了生产数据库,就这样把数据都删没了。 而在复原的过程中,第一次复原应用了谬误的备份,导致节约了 6 个小时。又通过额定的 5 小时备份,才把数据库恢复过来,但还是有 5 分钟的数据失落了。Resend 也列出了一些后续措施: 复原 5 分钟失落的数据发出所有用户对生产环境的写权限改良本地开发流程,以升高数据库 schema 变更的危险进步故障演练的频率也因为 Resend 小有名气,所以也引来了 Hacker News 上网友们的锐评: 太业余了,像 email 这种外围组件,还是交给更加成熟的 AWS SES,Postmark,Sendgrid 这些吧。 或者这家公司基本就不该存在。 如何防止笔者认为这个故障尽管有点低级。但连错数据库这个事件,不算少见。备份过程碰到意外,也很常见。当然低级的问题,解决起来也不难。 针对第一点,引入像 Bytebase 这样的变更审核工具,所有针对生产环境的变更操作都要通过 Bytebase,通过人工审核后能力公布。 针对第二点,首先是采纳云上的托管数据库服务,因为他们提供了残缺的数据备份和复原性能。另外就是定期做灾备演练。 大家也引以为戒吧。 更多资讯,请关注 Bytebase 公号:Bytebase

February 28, 2024 · 1 min · jiezi

关于数据库:拓数派联手开源联盟-PG-分会走进北京大学研究生公选课

为促成根底软件在中国高校的流传,进一步提高在校研究生对根底软件的学习和开发实际能力,造就数据库研发人才,拓数派联手开源联盟 PG 分会,走进北京大学,同国家特色化示范性软件学院:北京大学软件与微电子学院单干,进行了 2024 年《北京大学 PostgreSQL 内核开发:从入门到进阶》研究生公选课的打造与授课。 公选课讲师及校方合影 本次课程由北京大学荆琦传授联结中国开源软件推动联盟(COPU)组织发动,面向国内一流技术企业收集优良课程,已胜利发展了 3 年。2024 年,拓数派联手 PG 开源分会精心组织了新学期的数据库内核开发从入门到进阶内容,通过评审胜利进入北京大学研究生开源开发实际公选课框架。 公选课开课报告会已于 2 月 20 日胜利举办。 公选课开课报告会合影 本次课程时长 16 周,共包含 32 个课时内容,针对数据库的数据加密、数据存取和优化器原理与实际三局部内容开展讲授。其中拓数派产品市场总监吴疆作为《优化器原理与实际》局部的讲师,联合云原生虚构数仓 PieCloudDB Database 在云原生优化器的打造教训, 将以开源数据库 PostgreSQL 作为实操数据库,针对查问优化器的基本原理和工作流程开展授课。通过周围的学习,学生将学会如何应用统计信息和老本模型来评估不同的查问执行打算,并抉择最佳的执行门路。咱们还将探讨常见的查问优化技术,包含索引抉择、连贯算法和谓词下推等。 吴疆在开课报告会上发表演讲 拓数派始终致力于促成产学研单干,通过校园行系列流动「校园 Pie」的组织与打造、高校课程的单干、联结实验室的创立等多种形式,心愿通过前沿技术、产业界案例和利用的分享,促成学术界与产业界的进一步交融,为数据库从业人才的造就和交流平台的打造提供更多的反对。新的一年,拓数派将一直致力,在产品、商业和生态的打造上持续前行!

February 28, 2024 · 1 min · jiezi

关于数据库:GreatSQL-TPCH-性能测试报告正式发布

GreatSQL TPC-H 性能测试报告 - (2024 年 2 月28日) 残缺性能测试报告:https://greatsql.cn/docs/8032-25/user-manual/10-optimze/3-3-b... 1、概述本次测试针对GreatSQL数据库基于规范 TPC-H 场景的测试。 TPC-H(商业智能计算测试)是美国交易解决效力委员会(TPC,TransactionProcessing Performance Council)组织制订的用来模仿决策反对类利用的一个测试集。目前,学术界和工业界广泛采纳 TPC-H 来评估决策反对技术方面利用的性能。这种商业测试能够全方位评测零碎的整体商业计算综合能力,对厂商的要求更高,同时也具备广泛的商业实用意义,目前在银行信贷剖析和信用卡剖析、电信经营剖析、税收剖析、烟草行业决策分析中都有宽泛的利用,TPC-H 查问蕴含八张数据表和 22 条简单 SQL 查问,大多数查问蕴含多表联接(JOIN)、子查问和聚合查问等。 GreatSQL数据库是一款开源收费数据库,可在一般硬件上满足金融级利用场景,具备高可用、高性能、高兼容、高平安等个性,可作为MySQL或Percona Server for MySQL的现实可选替换。 2、测试环境配置备注操作系统OS:CentOS Linux release 7.9.2009 (Core)<br/>内核:3.10.0-1160.el7.x86_64CPUIntel(R) Xeon(R) Gold 6238 CPU @ 2.10GHz * 4内存251G磁盘INTEL SSDPE2KE032T8数据库GreatSQL 8.0.32-25, Release 25, Revision 79f57097e3f提醒:在上面运行TPC-H测试时,设置了Rapid引擎最大可应用的内存及线程数。 greatsql> SET GLOBAL rapid_memory_limit = 68719476736;greatsql> SET GLOBAL rapid_worker_threads = 32;3、测试表构造和数据量各表数据量比照: 表名TPC-H SF100数据量TPC-H SF300数据量备注region55地区信息nation2525国家表supplier10000003000000供应商信息part2000000060000000整机表customer1500000045000000消费者表partsupp80000000240000000配件供给表orders150000000450000000订单表lineitem6000379021799989091订单明细表Rapid引擎表空间压缩率: 库名InnoDB表空间文件总大小Rapid引擎表空间总大小压缩率TPC-H SF100184570593436287283732486.42TPC-H SF300591644573888743348644437.96各表构造关系如下图所示: 4、测试后果GreatSQL 8.0.32-25中,采纳全新的Rapid存储引擎,使得其在TPC-H性能测试中体现大大优于此前的其余版本,也大大优于MySQL社区版、Percona Server MySQL、MariaDB等数据库。 在TPC-H SF100场景下,运行齐全部22个TPC-H查问SQL总耗时为79.28秒。在TPC-H SF300场景下,运行齐全部22个TPC-H查问SQL总耗时为386.195秒。 ...

February 28, 2024 · 2 min · jiezi

关于数据库:Tapdata-正式登陆-Google-Cloud-Marketplace面向全球用户提供专业的实时数据服务

近日,Tapdata 旗下产品 Tapdata Real Time Data Pipelines 正式上线 Google Cloud Marketplace。 目前,Google Cloud 寰球用户都可能通过 Google Cloud Marketplace 搜寻、发现并订阅 Tapdata 相干服务。这是继往年 9 月上架华为云 Market Place 之后,Tapdata 又一次面向更宽泛的开发者群体的市场动作。 作为一个以低提早数据挪动为外围劣势构建的古代数据平台,Tapdata 可能将企业外围数据实时集中到地方化数据平台,并通过 API 或反向同步形式,为上游的交互式利用、微服务或交互式剖析提供陈腐实时的数据。得益于突出的全链路实时劣势,和低代码简运维的无效老本管制,Tapdata 在过往的用户案例中帮忙大量用户高效落地了灵便可复用的数据解决方案。 本次 Tapdata Real Time Data Pipelines 上架 Google Cloud Marketplace,旨在为寰球用户的数字化经营治理需要输送实时数据养料,带来全新的实时数据处理体验,助力企业更高效地利用和剖析本身数据资源。 实时数据同步,助力业务实时洞察Tapdata Real Time Data Pipelines 是一款专一于实时数据同步的云服务,在古代数据库畛域具备业余劣势。内置 100+ 数据连接器,可实时同步来自关系型数据库、SaaS 和自定义应用程序等各种数据源的数据至各古代数据库,包含但不限于 MongoDB、Elastic Search、Redis、Kafka,以及数据仓库,通常以亚秒级提早实现数据同步。常见的利用场景包含客户/订单繁多视图、实时仪表盘、欺诈检测、数据库复制、库存和物流等。 全托管服务,轻松解决部署难题Tapdata 反对全托管部署。由 Tapdata 提供计算/存储资源并主动部署,同时提供对立的运行保护和资源监控以晋升运行可靠性,可实现一键交付使用,免去部署和运维精力,专一业务自身。同时所有的计费由 Google 治理。这意味着用户能够专一于业务倒退,而无需放心繁琐的部署和管理工作,大大降低经营老本。 灵便的数据管道架构Tapdata 采纳了先进的数据管道架构,反对多种数据源的集成,包含关系型数据库、NoSQL 数据库、云存储等。用户能够通过可视化界面配置数据管道,实现数据的高效流动。这种灵活性使得企业可能更好地适应一直变动的业务需要,进步数据处理的效率。 平安保障与技术支持在 Tapdata 上,用户的数据安全是首要思考的问题。通过自研的加密技术和严格的访问控制,Tapdata 保障用户的数据始终处于平安状态。同时,咱们提供全面的技术支持,确保用户在应用过程中可能失去及时的帮忙。 Tapdata 的寰球布局Tapdata Cloud 不仅依附本身力量踊跃布局海内外市场,为用户提供弱小的实时数据服务,还通过上线 Google Cloud Marketplace,实现了寰球范畴的服务笼罩,为寰球用户带来了更为便捷、高效的实时数据处理计划。 ...

February 27, 2024 · 1 min · jiezi

关于数据库:Kepler-参数化查询优化方法

写在后面本文次要介绍了公布于 2023 年 SIGMOD 的论文《Kepler: Robust Learning for Faster Parametric Query Optimization》,该文章针对参数化查问,将参数化查问优化与查问优化联合,旨在缩小查问布局工夫的同时进步查问性能。 为此,作者提出了一种端到端的、基于深度学习的参数化查问优化办法,名为 Kepler (K-plan Evolution for Parametric Query Optimization: Learned, Empirical, Robust)。 它通过一种新鲜的候选打算生成算法以及鲁棒的深度学习模型来实现查问性能上的显著晋升。一、背景参数化查问是指具备雷同 SQL 构造,只在绑定的参数值上不同的一类查问。举个例子,思考以下查问构造: 该查问构造能够看作一个参数化查问的模板,”?”处代表着不同的参数值。用户执行的 SQL 语句都具备该查问构造,只是理论的参数值可能不同,这就是一个参数化查问。这样的参数化查问在古代数据库中的应用非常频繁。因为其一直反复执行同一查问模板,为晋升它的查问性能带来了时机。 参数化查问优化 (PQO) 用于优化上述参数化查问的性能,指标是尽可能地缩小查问布局工夫,同时防止性能的回归。现有的办法适度依赖于零碎内置的查问优化器,使其受到优化器固有的次优性的限度。作者认为,参数化查问的现实零碎不应该只通过 PQO 缩小查问布局工夫,也应该通过查问优化 (QO) 进步零碎的查问执行性能。 查问优化 (QO) 用于帮忙一条查问找到其最优的执行打算。现有的改良查问优化的办法大多利用了机器学习,如基于机器学习的基数/老本预计器。但目前基于学习的查问优化办法存在一些毛病:(1)推理工夫过长;(2)泛化能力差;(3)对性能的晋升不明确;(4)不具备鲁棒性,性能可能会回归。 上述毛病为基于学习的办法带来了挑战,因为它们不能保障预测后果对执行工夫的晋升。为解决上述问题,作者提出了 Kepler:一种端到端的基于学习的参数化查问优化办法。 作者将参数化查问优化解耦为两个问题:候选打算生成和基于学习的预测构造。次要分为三个步骤:新鲜的候选打算生成、训练数据收集以及鲁棒神经网络模型设计。三者联合,缩小了查问布局工夫的同时进步了查问执行性能,同时满足了 PQO 和 QO 的指标。接下来,咱们首先介绍 Kepler 的总体架构,而后具体解说每个模块的具体内容。 总体架构Kepler 的总体架构如上图所示。首先,从数据库系统日志中获取参数化查问模板以及对应的的查问实例(即带有理论参数值的查问),组成一个工作负载。Kepler Trainer 用于为该工作负载训练神经网络预测模型。它首先在整个工作负载上生成候选打算,并在长期的数据库系统中进行执行,取得理论的查问执行工夫。 利用该查问工夫训练神经网络模型。训练实现后将其部署于生产环境下的数据库系统中,称为 Kepler Client。当用户输出一个查问实例时,Kepler Client 能够为其预测最佳的执行打算,用 plan hint 的模式交给优化器,从而生成并执行最佳打算。 候选打算生成:Row Count Evolution候选打算生成的指标在于构建一组打算,使其为工作负载中的每个查问实例都蕴含近最优的执行打算。此外,应该尽可能的小,免得后续训练数据收集过程开销过大。二者相互束缚,如何均衡这两个指标是候选打算生成的一个次要挑战。 等式 1 公式化了具体的打算生成指标。其中,为工作负载 W 上的一个查问实例,为优化器抉择的执行打算,为现实状况下,在打算集中的最优打算,ExecTime 为对应打算在实例上的执行工夫。因而,等式1的外延为,在整个工作负载上,候选打算集相比优化器生成的打算集,在执行工夫上带来的减速。算法旨在最大化该减速成果。 ...

February 27, 2024 · 2 min · jiezi

关于数据库:数据库内核那些事|PolarDB-IMCI让你和复杂低效的子查询说拜拜

1. 行列混查的优化器架构In-Memory Column Index(简称 IMCI)是云原生数据库PolarDB MySQL用于简单SQL查问加速度的技术,它通过为PolarDB存储引擎减少列格局的索引,再联合并行向量化执行的SQL算子,将实时数据上的简单剖析性能晋升1到2个数量级。让客户能够在繁多PolarDB上同时运行事务处理和简单剖析负载,简化业务架构并升高应用老本。 IMCI尽管利用了新的索引存储格局和SQL执行引擎算子,却同时保留了100%的MySQL语法兼容,用户无需做任何语法批改即可实现通明简单查问减速,这是通过PolarDB的SQL解析器和优化器独特架构来实现的: 一条SQL经Parser解决后生成一个LogicalPlan,再经行存优化器生成PhysicalPlan并计算出执行代价,对于代价超出配置阈值的SQL会再通过一次面向IMCI执行器的规定优化和代价优化过程。因为IMCI执行算子不反对间接执行子查问。这第二步的要害过程即蕴含子查问去关联,此外还蕴含JoinReorder过程。本文内容次要论述IMCI中的子查问去关联这一步骤的关键技术。 2. 关联子查问的作用关联子查问作为查问中被宽泛应用的一个个性,被宽泛的应用在用户的业务场景之中,在没有索引等形式进行优化的状况下,其根本的执行形式相似于nested loop。在数据量较大的查问下,这样的执行形式简单度过高,很难让用户承受,因而有必要在优化器中进行子查问去关联,将其改写为不带有关联项的子查问,随后通过其余更高效的join算法来进步查问的效率。因为目前IMCI的查问执行根本不利用索引执行查问,在这个场景下,nested loop join格调的关联子查询处理效率慢到难以让客户承受,因而在PolarDB-IMCI中,咱们实现了一套子查问去关联的规定,实现了对于绝大多数子查问的去关联化,为IMCI上执行的关联子查问起到了良好的减速作用。 3. 关联子查问的介绍:一个例子如以下SQL,就是一个经典的关联子查问的例子: SELECT COUNT(*) FROM t1WHERE t1.c1 > (SELECT MAX(t2.c2) FROM t2 WHERE t1.c1 = t2.c1); -- subquery在下面这个SQL中,这个子查问中的条件是t1.c1 = t2.c1,其中t1.c1援用了外层查问的值,这个查问原本的查问打算是这样。 能够看到,因为左下角这个带有关联项的filter的存在,对于t1中的每一行,咱们都要将其代入右侧的查问,以相似nested loop join的执行形式执行:对于t1的每一行,我么都须要从新执行一次右侧的查问,如果t1,t2的数据量都很大,这里的join应用的是算法是nested loop join,会导致查问耗时过久。 在一些对于SQL优化的文章中可能会提到,对于上文的SQL,咱们能够改写成这样来进行减速: SELECT COUNT(*) FROM t1, (SELECT t2.c1 as c1, MAX(t2.c2) as max_c2 FROM t2 GROUP BY t2.c1) AS tmpWHERE t1.c1 = tmp.c1 AND t1.c1 > tmp.max_c2;这样改写之后,原先子查问外面的关联项被提取了进去,关联子查问隐没了!此时查问打算变成了这样: 能够看到,原先的nested loop join隐没了,咱们不用像之前一样低效的重复执行子查问了。 ...

February 27, 2024 · 2 min · jiezi

关于数据库:为什么说第三代指标平台的本质是做轻数仓

数据价值的开掘正在成为各行各业头部企业的外围竞争力。在同大量企业交换的过程中,Aloudata 发现,一方面企业的“用数需要”日益旺盛,数据分析流动在企业各个职能中广泛开展,业务团队的“数据素养”继续晋升;而另一方面,数据平台侧则面临着日益惨重的建设、开发和管理负担,而业余数据人才的匮乏又进一步加大了 CDO 的压力。 本文尝试从数仓开发角度剖析各种“乱象”产生的起因,提出通过语义化与自动化做“轻”数仓的思路,心愿对企业数据团队有所启发和帮忙。(注:本文应用“数仓”代指蕴含数据仓库、数据湖等基础设施在内的数据存储与开发平台) 1、用数需要旺盛,加剧数仓“乱象”在计算机领域,数据仓库是一个比拟“古老”的概念,通过三十多年的倒退,建设了成熟的技术体系与方法论。然而,数据仓库是为稳态的数据分析场景而设计的,典型利用是治理驾驶舱;挪动互联网和云计算的蓬勃衰亡让“大数据”成为必然,不仅数据源、数据类型不断丰富,数据量爆炸式增长,敏态的数据分析需要更成为常态,让传统的数仓分层建模体系招架不暇。 在我国,“数字化转型”让大量传统企业在近十年开始迅速接轨互联网的商业模式和技术体系,很多数据团队来不及打牢数据平台的“地基”,不足成熟标准的数仓建设体系和团队建制,就被业务推动着通过人工开发大量报表的模式满足剖析需要。往往一个需要就是一张宽表,业务分析师 80% 工夫用于发现和筹备数据,ETL 工程师 70% 的工夫用于宽表模型的变更、生成各类汇总表以及数据链路的运维。随着工夫的推移,剖析数据集之间彼此嵌套越来越深,数据链路越来越简单,数据时效、查问性能、指标口径保障日趋艰难,最终造成盘根错节的数据治理难题。 (图 1:“数仓 + BI”模式下的 ETL 工程架构) 此外,业余数据人才的匮乏又进一步加剧了数据平台部门的压力。依据清华大学经管学院公布的《中国经济的数字化转型:人才与待业》报告显示,2021 年我国大数据畛域人才缺口高达 150 万,到 2025 年预计将达到 200 万。很多 ETL 工程师简略学习了 SQL 代码便仓促上阵,报表开发逻辑因人而异,更因团队人员更迭加剧了口径的凌乱和宽表冗余。随着云计算和大数据基础设施的突飞猛进,很多企业近几年经验了屡次的基础设施降级,从本地数仓到本地湖仓,从公有云到私有云,往往每降级一次便意味着一次全局数据的拷贝与搬运。 依据 Aloudata 与泛滥客户交换的状况,企业湖仓数据冗余均匀在 5 倍以上,这意味着大量存算老本的节约。某证券行业数据资产部门负责人认为如施行了无效的数据治理,该企业每年能够节俭超过 1,000 万元的存算老本。而上述问题最终会反映到业务部门用数效率与用数品质的抵触上。不同于管理层的“看数”需要和多数可固化的主题剖析需要,在日常经营流动中普遍存在着“探索性数据分析”场景,这类需要数量多,共性小,并且生命周期短,意味着 ETL 团队要进行频繁的数据模型变更和数据筹备,业务人员无奈疾速、灵便地实现自助剖析。而匆忙无序的宽表开发势必导致口径凌乱,业务人员面临“数据不好找、找了不敢用、用了用不对”的困境。 从根本上说,传统数仓体系重度依赖人工反范式 ETL 作业,实用于高价值、高确定性的高管“看数”场景;而在日常经营敏态“用数”场景下,该模式必然形成“效率、品质、老本”的不可能三角,CDO 的工作便是三者间无尽又艰巨的均衡与取舍。兼之人才缺失与基础薄弱,大量企业的数智化之路举步维艰。 2、探讨一种根治思路——做“轻”数仓既然依赖人工的反范式 ETL 作业从实质上便不适用于敏态用数场景,那么是否能够跳出固有办法的窠臼,采纳全新的思路和工具实现数据分析“效率、品质、老本”三者兼顾的指标呢? 这正是 Aloudata 团队多年来的外围课题。数据分析过程中发现数据有余是最失常不过也是最广泛的情景,因而须要分析师染指引入更多数据,数据筹备与数据分析被割裂成两个独立的过程,剖析过程被中断;而当探索性数据分析遇到亿级以上数据量的关联剖析场景时,查问性能有余便普遍存在,这时更加依赖 ETL 工程师的染指,经由他们业余评估后,生成各种宽表和汇总表,以及选用更适宜的数据查问引擎,这会导致更加漫长的排期与期待。上述两个常见场景导致业务人员要么在一个“数据缺失”的困境里剖析,要么在一个“IT 驱动”的困境里剖析。 突破上述困境,咱们认为最彻底的计划是实现 NoETL 的“业务自助用数”。有两个关键点: 语义化,基于数仓明细数据表造成弱小的数据语义模型,并通过配置化模板点选操作而无需 SQL 反对简单指标定义,造成对立的数据语义层,积淀企业指标语义资产,既逾越了技术与业务之间的语义“鸿沟”,又躲避了剖析时数据有余的问题;自动化,以智能的 ETL 工作引擎,实现主动编排、物化和回收数据管道,罢黜 ETL 工程师大量繁琐反复的工作,最大水平通过 ETL 作业的自动化和智能化确保查问性能,升高冗余老本,对立剖析口径。在这样的思路下,Aloudata 团队设计、开发了一款自动化的指标平台 Aloudata CAN,其核心技术便是弱小的语义模型和智能的 ETL 工作引擎,通过弱小的指标定义能力与主动物化减速能力实现任意指标可配置化定义、可自动化开发、可凋谢化利用,真正实现指标“一次定义、处处应用”、“一次变更,处处失效”,彻底杜绝指标口径定义的分散化,由零碎代持数仓应用层的 ETL 报表开发作业,实现指标剖析的敏捷性和指标口径的一致性兼顾。  (图 2:引入指标平台,对接明细层数据,零碎代持数仓应用层 ETL) 通过一款弱小的自动化指标平台,企业如何实现做“轻”数仓,兼顾数据分析的“麻利、有序与老本可控”。Aloudata CAN 设计的初衷在于彻底实现数仓应用层的 NoETL,打消凌乱、低效的本源。而实现这一指标有两个前提:可定义:任意指标可基于明细数据被业务人员配置化定义,从而指标的生产才不会回到数仓开发的老路;可查问:零碎可自动化实现“反范式的宽表/汇总表”加工,主动实现物化链路编排和查问减速,确保指标口径的一致性和保障大数据量下的查问体验,真正实现“定义即生产”。 Aloudata CAN 间接基于明细数据,利用多表关联的语义模型来定义指标,意味着用户能够跨多个表定义和剖析指标,解决了最常见的数据筹备中断数据分析的痛点;同时,Aloudata CAN 还提供弱小的指标定义函数(如窗口函数、预聚合剖析函数),反对简单指标的配置化定义(例如,近 1 年月日均 AUM 最大值、北向资金净买入额行业应有个股总数)。 在此基础上,Aloudata CAN 还反对更为简单的衍生形式,包含同环比、均值/最值、排名、占比、累加等,所有反范式的 ETL 开发过程均由指标平台通过自动生产和主动物化减速代持,确保大数据量下的查问体验。这样的设计,不仅缩小了对 ETL 工程师的依赖,还大大提高了指标加工的灵活性和深度,反对用户可能依据业务需要进行任意维度、任意粒度的数据洞察。 弱小的定义能力与自动化的指标开发能力是 Aloudata CAN 同其余指标平台相比最突出的差别,为了区别于仍旧依赖人工报表开发的指标平台,咱们定义真正具备数仓应用层 NoETL 能力的指标平台为“第三代”。 Aloudata 提倡做“轻”数仓的最佳实际如下:数据团队专一于企业公共层数据的建设,通过标准的数据荡涤和转换等操作保障明细层数据的一致性和准确性,并实现企业数据资产的无效积淀与治理;利用 Aloudata CAN,基于明细层数据实现指标的配置化定义与开发,自动化代持数仓应用层 ETL 作业,实现数据分析的麻利与有序. 依据实在案例验证,通过上述计划,某客户在一条业务线,ETL 团队只须要筹备 10 张公共层明细表实现 100 个原子指标的定义,就能够反对业务人员应用逾 300 个维度与指标组合进行灵便剖析,代替了过来数百张宽表开发与保护的工作。客户反馈 Aloudata CAN 帮忙其在工作量和老本方面真正实现了做“轻”数仓的指标,ETL 作业工作量降落 70%,存算老本节约 50% 以上,同时晋升了业务用数的满意度,解决了数据团队最大的痛点。 3、总结 最初咱们总结一下。从企业数据管理与治理的角度看,终极目标是以最优老本实现数据分析的高效率与高质量,从这个角度来看,做“轻”数仓既是伎俩也是指标,而“第三代”指标平台便是做“轻”数仓的最佳计划。 Aloudata 团队具备在中国最顶尖的数字化企业近 20 年的数据管理业余教训,从中得出的论断是:数仓应用层的大量人工反范式 ETL 开发是“效率、品质、老本”这组矛盾体造成的本源,如果依赖既往教训与门路,将数仓建设与开发、麻利 BI 工具、指标管理工具、数据治理视作彼此独立、相互接驳的工具与办法,最终必将面对此起彼伏的数据窘境,而破局的要害是从新思考,抉择失当的机会落地一套真正实现数仓应用层 NoETL 的解决方案。 从这个意义上来说,Aloudata CAN 不仅仅是一款指标平台产品,更承载了 Aloudata 团队对数据架构、数据管理办法体系多年实际与粗浅思考后,从根源登程力求“根治”的方案设计。咱们期待同更多 CDO 与数据团队建设沟通,独特摸索企业数智化的最佳门路。

February 27, 2024 · 1 min · jiezi

关于数据库:白鲸开源科技与瀚高基础软件完成产品兼容性认证开启数据管理新篇章

北京白鲸开源科技有限公司(以下简称“白鲸开源”)今日发表,其旗舰产品WhaleStudio套件已与瀚高根底软件股份有限公司(以下简称“瀚高软件”)旗下的IvorySQL数据库管理系统V3.0实现深度兼容性认证。此次单干标记着两家领军企业在数据管理畛域的严密联结,为用户提供更加稳固、高效的数据处理解决方案。 通过单方的严密单干,WhaleStudio套件曾经能够顺利装置、配置在IvorySQL数据库管理系统V3.0上,并在性能、性能和安全性方面通过了全面的测试。这一成就不仅展现了单方产品的高度兼容性,也为用户的关键性利用需要提供了无力保障。 携手共创数据管理新将来白鲸开源科技,作为云原生DataOps平台的领航者,始终致力于为企业提供高效、灵便的数据操作、调度和治理解决方案。瀚高软件的IvorySQL数据库管理系统V3.0,作为业界当先的数据库治理解决方案,以其卓越的性能、稳定性和安全性博得了宽泛认可。 “咱们很快乐看到WhaleStudio套件与IvorySQL V3.0之间的完满兼容,这是两家公司技术创新和单干共赢的又一里程碑。” 白鲸开源科技CEO示意,“通过此次单干,咱们将可能为客户提供更全面、更高效的数据管理解决方案,助力企业在数字化转型的路线上更进一步。” 瀚高软件股份有限公司的代表也表白了对单干的踊跃认识:“与白鲸开源科技的单干,不仅证实了IvorySQL数据库管理系统的弱小兼容性和可靠性,也为咱们关上了更广大的利用场景。咱们期待单方在将来可能有更多的单干机会,独特推动数据技术的倒退。” 将来瞻望此次产品兼容性认证的胜利,不仅加深了白鲸开源和瀚高软件之间的单干关系,也为用户提供了更为丰盛和优化的数据处理抉择。单方将持续摸索更深层次的技术交融和单干机会,独特为企业数据管理和数字化转型贡献力量。 对于白鲸开源科技有限公司 白鲸开源科技有限公司是一家专一于云原生DataOps畛域的开源公司,总部位于北京。公司致力于打造下一代云原生DataOps平台,帮忙企业智能化地实现大规模数据的解决、调度和治理。 对于瀚高根底软件 瀚高致力于成为国内当先的全栈数据库解决方案提供商,始终以自主研发为核心不断完善产品体系,产品涵盖在线交易、数据分析、数据传输、容灾备份等场景。产品已在电子政务、公共服务、地理信息、新能源等行业畛域广泛应用。 本文由 白鲸开源科技 提供公布反对!

February 27, 2024 · 1 min · jiezi

关于数据库:PostgreSQL开发与实战2常用命令

作者:太阳 1、连库相干#连库$ psql -h <hostname or ip> -p <端口> [数据库名称] [用户名称]#连库并执行命令$ psql -h <hostname or ip> -p <端口> -d [数据库名称] -U <用户名> -c "运行一个命令;"备注: 能够将连贯命令中的参数在环境变量中指定;比方环境变量中配置如下,那么执行psql等同于执行psql -h 192.168.56.11 -p 5432 testdb postgres。export PGDATABASE=testdbexport PGHOST=192.168.56.11export PGPORT=5432export PGUSER=postgres2、一些查看命令#查看命令语法的帮忙命令\h#查看有哪些库\l#进入指定数据库\c $db_name#查看以后库下的所有pattern(表、视图、索引、序列)信息\d#查看以后库下的pattern(表、视图、索引、序列)信息,并输入具体内容\d +#查看以后库下某张表的构造定义或某个表的索引信息\d $table_name/$index_name#只查看以后库下表的信息\dt#只查看以后库下的索引信息\di#只查看以后库下的序列信息\ds#只查看以后库下的视图信息\dv#只查看以后库下的函数信息\df#列出以后库下所有shcema\dn#列出所有的表空间\db#列出所有的用户/角色的高级权限\du或\dg#列出表/视图/序列及拜访它们的相干权限\dp或\z#列出默认权限\ddp3、批改库名1.先敞开该库下的连贯会话: # SELECT pg_terminate_backend(pg_stat_activity.pid)FROM pg_stat_activity WHERE datname='t1' AND pid<>pg_backend_pid(); pg_terminate_backend ---------------------- t(1 row)阐明:pg_terminate_backend:用来终止与数据库的连贯的过程id的函数。pg_stat_activity:是一个零碎表,用于存储服务过程的属性和状态。pg_backend_pid():是一个零碎函数,获取附加到以后会话的服务器过程的ID。 2.再用alter批改库名: # alter database t1 rename to t2;ALTER DATABASE4、复制数据库到雷同的实例# 创立targetdb库并将sourcedb库中的数据复制到targetdbCREATE DATABASE targetdb WITH TEMPLATE sourcedb;5、schema相干#查看库下的schema: SELECT * FROM information_schema.schemata; 或者\dn#创立schema: create schema $schema_name;#创立schema并指定owner用户 create schema $schame_name authorization $user_name;#批改schema名称或属主 alter schema $old_name rename to $new_name; alter schema $schema_name owner to $new_owner;#查看以后所在的schema: show search_path;#切换schema: set search_path to $schema_name;#删除一个空的schema(其中所有对象已被删除): drop schema $schema_name;#删除schema及其中蕴含的所有对象: drop schema $schema_name cascade;6、查看沉闷会话#查看沉闷会话select * from pg_stat_activity where state<>'idle' ;#查看蕴含在事物内的会话select * from pg_stat_activity where state like '%idle%transaction%';#查看耗时1s以上的沉闷会话select * from pg_stat_activity where state<>'idle' and now()-query_start > interval '1 s' order by query_start ;pg_stat_activity视图各字段含意: ...

February 27, 2024 · 2 min · jiezi

关于数据库:探索IP定位接口如何选择适合您的IP数据服务

在当今数字化时代,IP定位接口成为了许多企业和开发者不可或缺的工具,用于实现地理位置信息的查问和利用。然而,抉择适宜本人需要的IP定位接口并不容易,本文将探讨如何筛选IP定位接口,以及IP数据云接口的稳定性和数据精准性。 确定需要和用处在抉择IP定位接口之前,首先须要明确本人的需要和用处。不同的利用场景可能须要不同精度和稳定性的地理位置信息。例如,某些利用可能须要准确到街道级别的地理位置信息,而其余利用可能只须要大抵的城市或地区信息。因而,依据本人的需要来确定所需的精度和稳定性程度是十分重要的。评估数据准确性和稳定性IP定位接口的数据准确性和稳定性是抉择的关键因素之一。稳固的接口可能保障在任何工夫都可能失常应用,而精确的数据则可能满足用户的需要。在抉择IP定位接口时,能够参考用户评估和第三方评测机构的评估,理解接口的理论体现和性能。思考数据反对和服务质量除了数据的准确性和稳定性之外,还须要思考接口提供的数据反对和服务质量。例如,一些接口可能提供丰盛多样的附加数据,如天文编码、时区信息等,而其余接口可能只提供根本的地理位置信息。此外,接口的服务质量也很重要,包含响应速度、技术支持等方面。抉择IP数据云接口IP数据云接口作为一种当先的IP定位服务,具备稳固的性能和精准的数据反对,是许多企业和开发者的首选。IP数据云接口提供了寰球范畴内的地理位置信息查问服务,无论是准确到街道级别还是大抵的城市信息,都能满足用户的需要。而且,IP数据云接口提供了丰盛多样的附加数据反对,如天文编码、时区信息等,为用户提供更全面的服务。此外,IP数据云接口还具备稳固的性能和优质的技术支持,可能保障用户在任何工夫都可能失常应用,并且及时解决遇到的问题。隐衷和平安思考在抉择IP定位接口时,还须要思考隐衷和平安问题。确保所抉择的接口可能非法、平安地应用用户的地理位置信息,并且恪守相干的隐衷政策和法律法规,爱护用户的集体信息安全。抉择适宜本人需要的IP定位接口是十分重要的。通过评估数据准确性和稳定性、思考数据反对和服务质量、抉择IP数据云接口等步骤,能够帮忙用户找到适宜本人的IP定位接口,实现地理位置信息的精准查问和利用。同时,也要留神隐衷和平安问题,爱护用户的集体信息安全。

February 27, 2024 · 1 min · jiezi

关于数据库:Databend-开源周报第-133-期

Databend 是一款古代云数仓。专为弹性和高效设计,为您的大规模剖析需要保驾护航。自在且开源。即刻体验云服务:https://app.databend.cn 。What's On In Databend摸索 Databend 本周新进展,遇到更贴近你情意的 Databend 。 理解对凋谢表格局的引擎反对Databend 通过表引擎反对不同类型的凋谢表格局,以满足不同技术栈数据湖计划的高级剖析需要。 目前 Databend 通过表引擎提供对 Apache Iceberg 和 Delta 两种目前最受欢迎的凋谢表格局的反对。参考应用形式如下: --Set up connectionCREATE CONNECTION my_s3_conn STORAGE_TYPE = 's3' ACCESS_KEY_ID ='your-ak' SECRET_ACCESS_KEY ='your-sk';-- Create table with Open Table Format engineCREATE TABLE test_engine ENGINE = [Delta | Iceberg]LOCATION = 's3://testbucket/admin/data/' CONNECTION_NAME = 'my_s3_conn';如果您想理解更多信息,欢送分割 Databend 团队,或查看上面列出的资源。 Docs | Table Engines - Apache Iceberg EngineDocs | Table Engines - Delta EngineCode Corner一起来摸索 Databend 和周边生态中的代码片段或我的项目。 ...

February 27, 2024 · 1 min · jiezi

关于数据库:终于我们拿下了硅谷的那个-Linear

就像设计畛域的 Figma,文档畛域的 Notion,Linear 同样在软件开发治理畛域推出了革命性的工具。而且以其名字 Linear Style 命名的设计格调,也成为了一股软件设计潮流。 Linear 于 2019 年在美国 旧金山创建。目前服务的对象涵盖了从新兴初创到出名上市公司的宽泛范畴,其中包含 Vercel、Arc、Runway,Supercell 和 OpenSea 等知名企业。其产品因能显著晋升团队生产力和合作效率而成为近几年硅谷新兴公司的首选。 Linear 应用 Bytebase 治理其数据库的全开发生命周期。收口员工查询数据库操作,通过 Bytebase API 将数据库变更集成进现有 CI/CD 工作流。 Linear 的员工对立在 SQL 编辑器查问数据,通过权限管控、数据脱敏及行为审计,限度查问范畴、监控行为并满足合规需要。 通过 Bytebase API 将数据库变更的审核部署集成进现有的代码提交部署工作流中,触发在 Bytebase 中建设工单,主动进行 SQL 预审核以缩小人力升高谬误可能性;依据变更的危险等级,通过自定义审批流确保相应的审批治理;并且,通过变更记录的查问性能,便于锁定特定的变更,以利于后续的审计。此外,单点登录 (SSO),双因子身份验证 (2FA) 等性能进一步为账户治理带来了便利性和安全性保障。 将来 Linear 还将利用 Bytebase 的批量变更能力治理部署在不同地区的同构数据库。 对开发者工具极其挑剔的 Linear 最终抉择了 Bytebase。正如咱们在 2021 年公布 Bytebase 时构想的那样,Bytebase 会站上世界最高的舞台,成为古代软件研发工具链上的外围一环。 更多资讯,请关注 Bytebase 公号:Bytebase

February 27, 2024 · 1 min · jiezi

关于数据库:邀请函-2024年数据技术嘉年华集结号已吹响期待您参会

龙腾四海内,风云际会时,2024年中国数据嘉年华如约而至。从起初小范畴的网友聚会,到现在面向全国各地从业者、爱好者的年度集会,纵使岁月更迭,咱们初心仍旧。咱们在各自最好的年华里独特见证了中国数据库行业的蓬勃发展,感恩所有同行者! 由墨天轮数据社区及中国数据库联盟(ACDU)主办的 第十三届『数据技术嘉年华』 (DTC 2024) 将于4月12-13日在北京新云南皇冠假日酒店隆重开启。本次嘉年华以 “智能·云原生·一体化——DB与AI协同翻新,模型与架构交融倒退” 为主题,汇聚80余位行业卓越技术首领、学术精英、行业实践者、生态布道者,将带来1+12场精彩绝伦的主题演讲,当初让咱们一探到底! 大会官网:https://www.modb.pro/dtc2024 以后,人工智能与数据库深度交融,云原生与一体化成为关键词,这些趋势独特推动着数据库技术的翻新倒退。那么数据库行业到底迎来了怎么的技术革新?提出了哪些行业解决方案?本专题特邀产学研领军人物,深度解读数据库行业前沿倒退翻新与关键技术冲破,同时咱们还邀请到工业和信息化部电子第五研究所与中国计算机学会(CCF)数据库业余委员会作为领导单位,独特引领数据库交融倒退的将来路线。 在数据技术嘉年华的隆重舞台上,12个分论坛如繁星般闪耀,铸就了一幅璀璨夺目的星河画卷,其中汇聚了业内顶尖专家和学者,涵盖了数据库畛域的多个专业性议题。这些分论坛将深入探讨数据库技术的最新倒退,为参会者出现一场对于数据库行业前沿的业余盛宴。 —— 论坛1 :数据库内核翻新 ——工夫:4月12日14:00-17:00 专题介绍:作为技术倒退的外围引擎,内核翻新驱动着零碎和软件的一直演进。本专题聚焦于压缩、索引、优化器、分布式和可观测性等要害畛域,探讨如何推动计算机系统的性能、效率和可维护性的晋升,通过对内核的翻新来解决当今数据库行业中面临的挑战。 —— 论坛2 :数据库学术前沿 ——工夫:4月12日14:00-17:00 专题介绍:数据库行业中学术研究不仅引领着技术的提高和翻新,还为解决行业面临的各种挑战提供了实践反对。业内顶尖传授、院士以及高校学者将汇聚于此,分享最新研究成果及前沿技术动静。让咱们一起在学术的星空中彼此启迪,拓展技术边界,感触全面而粗浅的科研魅力。 —— 论坛3 :数据库一体化 ——工夫:4月12日14:00-17:00 专题介绍:随着业务数量和业务要求的一直攀升,数据库架构也从原来的扩散部署逐步适度到交融一体化,例如解决剖析一体化、单机分布式一体化、多模解决一体化、SQL引擎一体化、云上云下一体化、离在线一体化等,通过一体化的解决方案让用户真正回归业务,降本增效。 —— 论坛4 :数据库与人工智能 ——工夫:4月12日14:00-17:00 专题介绍:在AI技术飞跃发展的当下,数据库也从中获益,借助AI能力实现数据库系统的自调优、自诊断、自平安、自运维、自愈,基于大模型的NL2SQL、业余知识库也在扭转着数据库的基础架构。同时库内AI、多模等数据库技术也在减速人工智能的利用倒退。 —— 论坛5 :云原生数据库 ——工夫:4月13日9:00-12:00 专题介绍:随着云计算时代的到来,灵便、实用、池化、弹性且安全可靠的云原生数据库解决方案也成为支流趋势。通过在私有云、公有云、混合云等平台上构建、部署和交付整套数据库服务,从而升高用户技术门槛、缩小保护老本、晋升用户体验、节俭资源费用。 —— 论坛6 :数据库极致个性 ——工夫:4月13日9:00-12:00 专题介绍:在数据库技术畛域,谋求极致个性已成为一种不可漠视的趋势和迫切需要。数据库作为要害数据的承载者,对业务顺利进行提供了不可或缺的反对。本专题将深入探讨数据库在新技术、新硬件、新架构驱动下的极致个性,涵盖高性能、高安全性、高可扩展性、高可用性等方面。 —— 论坛7 :数据仓库 ——工夫:4月13日9:00-12:00 专题介绍:数据仓库技术始终是企业数据管理的外围,面对日益增长的数据量和多样化的数据类型,数据仓库技术也在不断创新和降级。本专题将聚焦于实时数仓、数据湖和湖仓一体等外围概念,探讨数据仓库在古代数据架构中的角色与挑战。 —— 论坛8 :数据库生态软件 ——工夫:4月13日9:00-12:00 专题介绍:生态软件作为数据库利用的重要组成部分,涵盖中间件、操作系统、迁徙备份、开发平台、监控治理等多个方面。本专题将聚焦生态软件的发展趋势和翻新利用,为您带来最新的生态软件技术动静和实际案例。 —— 论坛9 :金融行业利用 ——工夫:4月13日14:00-17:00 专题介绍:金融行业因其独特的社会性能,对数据库的稳定性、安全性、一致性和运行效率都有至高要求。面对简单的业务场景与严苛要求,数据库技术该如何翻新及落地,保障业务零碎稳固、高效和平安的运行?本专场将深入研究数据库在金融畛域简单且高标准要求下的最佳实际。 —— 论坛10 :数据库新技术 ——工夫:4月13日14:00-17:00 专题介绍:技术创新是推动企业一直倒退的引擎,而数据库作为信息管理的外围,其更新换代更是技术提高的要害节点。本专题聚焦商业、开源、国产数据库的新兴技术,深度探讨新版本的外围个性、技术劣势,以及在理论业务中的利用案例,帮忙您更好地了解并把握这些重要的技术创新。 —— 论坛11 :NoSQL数据库 ——工夫:4月13日14:00-17:00 专题介绍:为了解决大数据及大模型场景中海量、多源和多格局的数据处理问题,向量、时序、图、搜寻等NoSQL数据库计划在近几年获得飞速成长,也受到越来越多的关注。本专题将深度分析各类NoSQL数据库的特点和实用场景,带您探寻NoSQL数据库的翻新技术和理论利用。 ...

February 26, 2024 · 1 min · jiezi

关于数据库:2024年Apache-DolphinScheduler-RoadMap引领开源调度系统的未来

十分欢送大家来到Apache DolphinScheduler社区!随着开源技术在寰球范畴内的疾速倒退,社区的贡献者 “同仁” 始终致力于构建一个弱小而沉闷的开源调度零碎社区,为用户提供高效、牢靠的任务调度和工作流治理解决方案。 在过来的一段时间里,咱们获得了一些重要的成就,但咱们的愿景远未实现。为了更好地满足用户需要和推动我的项目的倒退,咱们在2024 新春伊始,制订了以下Roadmap,将在将来的版本中实现一系列激动人心的性能和改良。 以后社区状态2024 年 roadmap 有两个起源,局部是来自 2023 年发动然而没有开始施行,或者施行了局部的议题,另一部分是最新新增的议题。2024 年 roadmap 能够分成如下几个局部 云原生相干: 咱们心愿减少 K8S executor 复用 K8S 提供的能力做弹性资源管理、监控和失败重试等 工作插件加强: 咱们收到了用户对于工作插件的诉求,将会进一步反对 streaming 类型的工作、trigger 类型插件等,除此之外,咱们还心愿对立在worker 和master 中运行的工作、以及为工作插件减少生命周期的接口。于此同时咱们会继续关注动静工作组件的性能,心愿当前能够对工作组件独自发版保障迭代频率 DataOps 相干:心愿引入 data ops 相干性能,通过集成 git 供应商来实现 git ops,最终实现工作流 CICD  测试: 咱们会持续欠缺和减少我的项目单元测试覆盖率,并且逐渐补充 API 局部的测试 其余优化:引入工作流事件触发性能;优化审计日志 云原生相干咱们心愿引入 K8S executor 作为 dispatcher 将 dolphinscheduler 的工作散发到 K8S 中,K8S executor 的益处是咱们能够有更高的资源利用率;沿用 K8S 的监控机制,实现 pod level 的监控;沿用 pod 容错做工作容错。 这个设计的外围是将executor 的形象进去变成可配置的, 用户能够抉择 K8S 或者非 K8S 的 executor,如果抉择 K8S executor ,dolphinscheduler 会将工作提交到 K8S API server ,每个工作启动一个 worker,运行一个 pod。这一点的益处是 worker 不是一个长期运行的资源,而是仅当有工作的时候才须要启动。当业务低谷的时候,咱们有空运行的worker 来期待工作运行。 ...

February 26, 2024 · 2 min · jiezi

关于数据库:PostgreSQL开发与实战1安装部署

作者:太阳PostgreSQL是一款开源的高度可扩大、跨平台的关系型数据库管理系统,反对简单数据类型、ACID事务、触发器、存储过程等个性,具备弱小的查问优化器和完整性束缚,领有宏大的寰球社区反对。它实用于各种规模和类型的利用,提供稳固牢靠的数据库解决方案。上面将别离介绍 PostgreSQL的rpm包装置和源码装置部署的具体步骤。 一、rpm包装置部署1、装置RPM包 # yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm# yum install -y postgresql12-server# rpm -qa | grep postgrespostgresql12-12.4-1PGDG.rhel7.x86_64postgresql12-libs-12.4-1PGDG.rhel7.x86_64postgresql12-server-12.4-1PGDG.rhel7.x86_642、增加用户 # groupadd postgres# useradd -g postgres postgres3、配置数据、日志目录 # mkdir -p /data/pgsql/{data,logs}# chown -R postgres:postgres /data/pgsql4、初始化数据库 # su - postgres$$ /usr/pgsql-12/bin/initdb -E utf8 -D /data/pgsql/data/The files belonging to this database system will be owned by user "postgres".This user must also own the server process.The database cluster will be initialized with locale "en_US.UTF-8".The default text search configuration will be set to "english".Data page checksums are disabled.fixing permissions on existing directory /data/pgsql/data ... okcreating subdirectories ... okselecting dynamic shared memory implementation ... posixselecting default max_connections ... 100selecting default shared_buffers ... 128MBselecting default time zone ... Asia/Shanghaicreating configuration files ... okrunning bootstrap script ... okperforming post-bootstrap initialization ... oksyncing data to disk ... okinitdb: warning: enabling "trust" authentication for local connectionsYou can change this by editing pg_hba.conf or using the option -A, or--auth-local and --auth-host, the next time you run initdb.Success. You can now start the database server using: /usr/pgsql-12/bin/pg_ctl -D /data/pgsql/data/ -l logfile start5、启动数据库 ...

February 26, 2024 · 3 min · jiezi

关于数据库:IP定位在网站上的应用

在当今数字化的时代,网站领有了越来越多的个性化和定制化性能,以满足用户的需要并晋升用户体验。其中,IP定位性能作为一种常见的技术手段,在网站上失去了宽泛的利用。IP数据云将探讨IP定位性能在网站上的利用,以及它给用户和网站运营者带来的好处。1. 什么是IP定位性能?IP定位性能是通过用户拜访网站时的IP地址,确定用户的地理位置,从而实现对用户地理位置的粗略定位。这种技术能够提供用户所在的国家、地区、城市等地理位置信息,而无需用户手动输出。2. IP定位性能在网站上的利用个性化内容举荐:基于用户的地理位置信息,网站能够向用户举荐与其所在地区相干的内容,如当地的新闻、天气、流动等,从而晋升用户的趣味和参与度。本地化服务展现:通过IP定位性能,网站能够展现用户所在地区的本地化服务或商家信息,如左近的餐厅、商场、医院等,为用户提供更加贴近理论需要的服务。天文定向广告:网站能够依据用户的地理位置向其展现定向广告,从而进步广告的精准度和点击率。例如,在用户所在城市举办的流动或特地优惠可能更吸引用户的留神。交易安全控制:IP定位性能也能够用于辨认可能存在的欺诈行为。通过比对用户所在地与交易地的IP地址,网站能够进行危险评估和安全控制,保障交易的安全性。3. IP定位性能的好处晋升用户体验:个性化的内容举荐、本地化的服务展现等性能能够晋升用户的体验,让用户感触到网站的关注和关心。减少用户参与度:通过向用户展现与其所在地相干的内容和服务,能够减少用户的参与度和留存率,进步网站的用户粘性。进步广告成果:天文定向广告能够更精确地锁定目标用户群体,进步广告的点击率和转化率,从而进步广告主的投资回报率。加强安全性:IP定位性能能够帮忙网站辨认潜在的欺诈行为,增强交易的安全性,爱护用户和网站的利益。IP定位性能作为一种常见的技术手段,在网站上失去了宽泛的利用。它不仅能够晋升用户体验和参与度,还能够加强广告成果和交易安全性,为网站运营者带来了诸多好处。然而,在利用IP定位性能时,网站必须充分考虑隐衷和平安问题,爱护用户的集体信息安全,以确保用户信赖和满意度的晋升。

February 26, 2024 · 1 min · jiezi

关于数据库:分享一个基本的故障复盘报告模版

故障难以完全避免,而故障复盘 (postmortem) 也是解决故障的一个重要环节。以下提供一个繁难的故障复盘报告模版供大家参考。 具体例子能够看最近 Linear 的故障复盘。 概览名称 日期 故障级别 故障类型服务不可用 / 数据失落 / 平安 / 资损责任人 参加人 影响面xxx 工夫线xxx 根因剖析xxx 处理过程xxx 改良点改良点负责人优先级实现日期 更多资讯,请关注 Bytebase 公号:Bytebase

February 26, 2024 · 1 min · jiezi

关于数据库:Slave被误写入数据如何恢复到主库

背景在GreatSQL主从复制环境中,有时候可能会呈现一些误操作,将本应该写入到主库的数据写入到了从库,导致主从数据不统一,影响数据同步。是否能够将写入从库的数据同步写入主库呢? 测试环境角色IP地址数据库凋谢端口版本主库192.168.137.1793308GreatSQL 8.0.32从库192.168.137.1803308GreatSQL 8.0.32复制链路: greatsql> show slave status\G;*************************** 1. row *************************** Slave_IO_State: Waiting for source to send event Master_Host: 192.168.137.179 Master_User: root Master_Port: 3308 Connect_Retry: 60 Master_Log_File: binlog.000001 Read_Master_Log_Pos: 157 Relay_Log_File: oracle_dts-relay-bin.000002 Relay_Log_Pos: 367 Relay_Master_Log_File: binlog.000001 Slave_IO_Running: Yes Slave_SQL_Running: Yes表数据主库greatsql> select * from dept;+--------+------------+----------+| DEPTNO | DNAME | LOC |+--------+------------+----------+| 10 | ACCOUNTING | NEW YORK || 20 | RESEARCH | DALLAS || 30 | SALES | CHICAGO || 40 | OPERATIONS | BOSTON || 60 | it | 成都 |+--------+------------+----------+5 rows in set (0.00 sec)greatsql> insert into dept select 70,'IT','CTU';Query OK, 1 row affected (0.01 sec)Records: 1 Duplicates: 0 Warnings: 0greatsql> commit;Query OK, 0 rows affected (0.00 sec)从库greatsql> select * from dept;+--------+------------+----------+| DEPTNO | DNAME | LOC |+--------+------------+----------+| 10 | ACCOUNTING | NEW YORK || 20 | RESEARCH | DALLAS || 30 | SALES | CHICAGO || 40 | OPERATIONS | BOSTON || 60 | it | 成都 || 70 | IT | CTU |+--------+------------+----------+6 rows in set (0.00 sec)主库写入的数据失常同步到从库 ...

February 26, 2024 · 3 min · jiezi

关于数据库:数据库设计

数据库表设计1.设计思路a.进行需要剖析,梳理业务流程,辨认业务实体,明确数据库表的性能和指标。b.确定各个实体的属性,建设各实体之间的关系,包含一对一,一对多,多对多等等。c.遵循数据库三范式(列不可分割,属性齐全依赖主键,属性之间不相互依赖)进行具体表字段设计。2.

February 25, 2024 · 1 min · jiezi

关于数据库:揭秘IP地址的地理位置如何查找IP地址所在地

在当今数字化的世界里,IP地址(Internet Protocol Address)扮演着至关重要的角色,它是互联网上用于标识设施的独特标识符。每台连贯到互联网的设施都有一个惟一的IP地址,无论是您的个人电脑、智能手机还是连贯到网络的任何其余设施。通过IP地址,您能够定位到设施所在的地理位置,这为网络安全、天文定位服务、内容定位等方面提供了极大的便当。IP数据云将摸索IP地址的地理位置,以及如何查找IP地址所在地的办法。IP地址是由一组数字形成的标识符,它由32位(IPv4)或128位(IPv6)二进制数字序列组成,通常以点分十进制示意。例如,IPv4地址可能是相似于"192.168.1.1"的数字序列,而IPv6地址可能是相似于"2001:0db8:85a3:0000:0000:8a2e:0370:7334"的数字序列。这些数字序列在寰球范畴内是惟一的,它们充当着连贯互联网上设施的“地址”。 IP地址地理位置的查询方法 在线IP地址查问服务:有许多在线工具和网站提供了IP地址地理位置查问的服务。您只需输出要查问的IP地址,就能够获取到该IP地址所对应的地理位置信息,通常包含国家、城市和经纬度等信息。一些罕用的在线IP地址查问服务包含IP数据云等。地理位置数据库查问:一些业余的地理位置数据库能够提供更加精确和具体的IP地址地理位置信息。这些数据库通常由业余的地理信息公司或数据提供商提供,能够用于各种商业和钻研用处。然而,这些数据库通常是付费的,而且须要更新以确保数据的准确性。利用场景网络安全:网络管理员能够利用IP地址地理位置查问来辨认和阻止潜在的网络攻击,从而增强网络安全。内容定位:在线内容提供商能够依据用户的地理位置提供定制化的内容,例如依据用户所在地区提供不同的新闻报道或广告服务。广告定向:市场营销人员能够利用IP地址地理位置信息来针对特定地区或用户群体进行广告投放,从而进步广告的精准度和有效性。服务定位:基于IP地址地理位置查问,服务提供商能够将用户重定向到最近的服务器,从而进步网络服务的速度和性能。IP地址地理位置查问是一项重要的技术,它为咱们提供了理解网络世界的地理位置的路径。通过查找IP地址的地理位置,咱们能够实现网络安全监控、内容定位、广告定向等多种利用。然而,在应用这些技术时,咱们也须要留神爱护用户隐衷和数据安全,以确保数据的非法和平安应用。

February 24, 2024 · 1 min · jiezi

关于数据库:足不出户闹元宵挑战-IT-人专属灯谜

又是一年元宵时,火树银花人离散 除了吃汤圆、闹花灯、舞龙舞狮之外 不猜灯谜怎么能叫过元宵节? 为此 PieCloudDB 社区筹备了几道特地的灯谜 据说只有“IT人”能力答对全副哦~ 快带上你的小伙伴来挑战一下吧!

February 24, 2024 · 1 min · jiezi

关于数据库:探索IP地址信息的奥秘从数字到地理位置

IP地址是互联网通信中设施的惟一标识符,它承载着丰盛的信息,从数字到地理位置,揭示着网络世界的神秘。通过理解IP地址的信息,咱们能够更好地治理网络资源、辨认网络威逼、提供个性化服务等。IP地址是互联网上设施的惟一标识符,用于在网络中定位和辨认设施。IP地址由32位(IPv4)或128位(IPv6)二进制数字组成,通常以点分十进制示意。IP地址的构造:IPv4地址由4个8位字段组成,每个字段示意0~255之间的一个十进制数。IPv6地址由8组16位字段组成,每个字段示意0~65535之间的一个十六进制数。IPv4和IPv6地址均分为网络地址和主机地址两局部。IP地址的分类:依据IP地址的调配形式和用处,IP地址能够分为公共IP地址和公有IP地址。公共IP地址用于互联网通信,公有IP地址用于局域网通信,不间接裸露在公网中。IP地址的地理位置定位:利用IP地址的地理位置信息,能够进行地理位置定位,即通过IP地址确定设施的地理位置。这一技术罕用于网络管理、安全监控、个性化服务等畛域。通过查问IP地址与地理位置的映射关系,能够确定设施的大抵地理位置,包含国家、地区、城市等信息。IP地址信息的利用:IP地址信息在各个领域都有宽泛的利用,次要包含网络管理、安全监控、个性化服务等。例如,通过剖析用户的IP地址信息,能够为其提供与所在地区相干的个性化举荐、本地化服务等。IP地址信息承载着丰盛的内容,从数字到地理位置,揭示着网络世界的神秘。通过深刻理解IP地址的信息,咱们能够更好地治理和利用网络资源,进步网络安全性,提供更加个性化的服务。

February 23, 2024 · 1 min · jiezi

关于数据库:AP引擎助力加速生产SQL运行

Rapid存储引擎简介从GreatSQL 8.0.32-25版本开始,新增Rapid存储引擎,该引擎使得GreatSQL能满足联机剖析(OLAP)查问申请。 Rapid引擎采纳插件(Plugin)形式嵌入GreatSQL中,能够在线动静装置或卸载。 Rapid引擎不会间接面对客户端和应用程序,用户无需批改原有的数据拜访形式。它是一个无共享、内存化、混合列式存储的查询处理引擎,其设计目标是为了高性能的解决剖析型查问。 并且在TPC-H性能体现优异在32C64G测试机环境下,TPC-H 100G测试中22条SQL总耗时 仅需不到80秒 上面是几个不同TPC-H数据量级的压缩率数据: TPC-H仓库大小InnoDB引擎数据文件大小Rapid引擎数据文件大小压缩率TPC-H 1GB20030260762765742087.24TPC-H 100GB184570593436287283732486.42TPC-H 500GB11677951428481467230453767.96通过GreatSQL社区的测试剖析能够看出,相较于InnoDB存储引擎,Rapid存储引擎在存储效率上取得了极大晋升。在寄存雷同的数据集时,Rapid的数据文件所须要的空间仅为InnoDB的6~7分之1,大概 升高了85% 左右。 实在生产案例测试为了全面验证AP引擎的性能晋升,咱们胜利获取了实在生产环境下的SQL语句、表构造以及通过脱敏解决的数据。在此,特别感谢潲同学和贵司的帮助! 测试环境介绍本次测试采纳的环境是 Arch Linux x86_64,机器配置为12C15G $ uname -aLinux myarch 6.6.3-arch1-1 #1 SMP PREEMPT_DYNAMIC Wed, 29 Nov 2023 00:37:40 +0000 x86_64 GNU/Linux$ cat /proc/cpuinfo | grep "processor" | wc -l12$ free -h totalMem: 15Gi采纳的GreatSQL版本为 GreatSQL 8.0.32-25 版本 $ mysql --version mysql Ver 8.0.32-25 for Linux on x86_64 (GreatSQL, Release 25, Revision 79f57097e3f)实在生产SQL展现行将进行测试的生产SQL(这里不深刻探讨该SQL是否存在优化的可能性): select c.id, c.dept_id, c.user_id, c.type, c.source, c.charge_no, c.amount, c.from_bank, c.to_bank, c.receipt,c.status, c.remark, c.create_by, c.create_time, c.update_by, c.update_time,c.reason,c.fr_no, d.dept_name, dt.company_name, cp.company_name from charge cleft join dept d on c.dept_id = d.dept_idleft join user u on c.user_id = u.user_idleft join dept_tax dt on c.dept_id = dt.dept_idleft join dept_info di on c.dept_id = di.dept_idleft join company_bank cb on di.sign_cbid = cb.idleft join company cp on cb.company_id = cp.company_idlimit 3313445,10;实在生产表构造生产SQL波及7张表,咱们将逐个展现每张表的表构造。为了爱护隐衷,咱们对局部字段进行了脱敏解决以及一些微调 ...

February 23, 2024 · 6 min · jiezi

关于数据库:百亿美金的设计深度剖析-GitLab-的-Postgres-数据库-schema

原文链接 这篇文章写于 2022 年,前一年 GitLab 刚好实现 IPO。目前 GitLab 市值超过 100 亿美金,它的所有支出都来源于同名产品 GitLab,而这篇文章就是全面剖析 GitLab 这个产品的数据库 schema。我花了一些工夫钻研 GitLab 的 Postgres schema。GitLab 是 Github 的一个替代品。你能够自部署 GitLab,因为它是一个开源的 DevOps 平台。 我之所以要理解 Gitlab 这样的大我的项目的 schema,是为了与我正在设计的 schema 进行比拟,并从他们的 schema 定义中学到一些最佳实际。我的确从中受害良多。 我分明的晓得,最佳实际取决于具体情况,不能自觉利用。 GitLab 的数据库 schema 文件 structure.sql [1] 蕴含超过 34000 行代码。GitLab 实质上是一个集成式的 Ruby on Rails 利用。尽管通常咱们会用 schema.rb 文件来治理数据库的版本迁徙,但 GitLab 团队在他们的问题追踪零碎中的一个探讨 [2] 阐明了他们抉择 structure.sql 的起因。 起因在于 schema.rb 只能蕴含规范的迁徙操作(应用 Rails DSL),这样做是为了使数据库 schema 文件对数据库系统保持中立,抽象化特定的 SQL 操作。这导致咱们无奈利用 PostgreSQL 的一些高级个性,如触发器、分区、物化视图等。 为了充分利用这些高级个性,咱们应该思考应用纯 SQL 格局的schema 文件 structure.sql,而不是 Ruby/Rails 的规范架构文件 schema.rb。 ...

February 23, 2024 · 8 min · jiezi

关于数据库:从-Elasticsearch-到-Apache-Doris统一日志检索与报表分析360-企业安全浏览器的数据架构升级实践

导读:随着 360 企业平安浏览器用户规模的一直扩张,浏览器短时间内会产生大量的日志数据。为了提供更好的日志数据服务,360 企业平安浏览器设计了对立运维治理平台,并引入 Apache Doris 代替了 Elasticsearch,实现日志检索与报表剖析架构的对立,同时依赖 Doris 优异性能,聚合剖析效率呈数量级晋升、存储老本降落 60%....为日志数据的可视化和价值施展提供了松软的根底。作者|360 企业平安浏览器 刘子健 近年来,随着网络攻击和数据泄露事件的减少,使得浏览器平安问题变得更加紧迫和严厉。破绽一旦被利用,一个简略的链接就能达到数据浸透的目标,而传统浏览器在安全性和隐衷爱护方面存在一些限度,无奈满足政企畛域对于平安浏览的需要。在此背景下,360企业平安浏览器成为政企客户的首选,以提供对立治理、降本增效、平安可控的解决方案。 在 360 企业平安浏览器弱小平安防护能力的背地,对海量平安日志进行深入分析和开掘是及时发现潜在危险的重要伎俩。为了提供更好的日志数据服务,360 企业平安浏览器设计了对立运维治理平台,引入 Apache Doris 作为日志剖析架构的外围组件,实现数据导入、计算和存储的对立,保障了数据的准确性和一致性,实现了低成本、高效的实时查问能力与同步能力,为日志数据的可视化和价值施展提供了松软的根底。 业务需要随着 360 企业平安浏览器用户规模的一直扩张,浏览器短时间内会产生大量的日志数据,这些数据具备格局多样化、信息维度丰盛、时效要求高、数据体量大和隐衷安全性低等特点。如果可能对这些数据进行无效剖析,可及时发现潜在威逼并晋升网站应用体验,因而咱们设计了对立运维治理平台。该平台旨在对终端层、应用层和平安层进行监控和剖析,并进行多维度剖析和可视化展现。 在应用层,提供利用总览、拜访剖析、性能剖析、体验剖析以及异样剖析等性能,可全面理解利用的运行状况,及时发现并解决利用中存在的问题。在终端层,提供终端导览和终端沉闷剖析性能,及时把握终端设备情况,从而更好地治理和优化终端性能。在平安层,提供策略预警和策略倡议等性能,可及时发现和预防平安危险,进步零碎的安全性。 对于政企相干单位而言,浏览器受到攻打可能导致大量隐衷数据泄露,给单位和集体带来难以预料的结果。因而,为保障客户信息的平安,对立运维治理平台应具备以下几个能力: 实时告警:局部客户对查问性能有较高的要求。比方:实时统计服务异样或零碎解体的次数,并第一工夫反馈给相干负责人解决。导入性能:在业务运行过程中,生成的日志数据会被保留在服务器上。在高并发的状况下,日志数据量十分宏大,因而对导入性能有较高的要求。数据一致性: 数据一致性对任何行业来说都是要害思考因素,只有在数据统一的根底上进行指标计算,能力确保统计后果的准确性。部署简略:因 360 企业平安浏览器次要为政企提供服务,通常采纳私有化部署的形式,这意味着服务和客户端将齐全集成在客户本地环境中。这就要求架构要足够精简,在确保在实现性能的同时,尽可能升高部署的复杂度。架构 1.0 :基于 Elasticsearch 的简洁日志解决架构为满足对立运维治理平台的要求,咱们首先设计了一个简洁的日志解决架构。在该架构中,浏览器客户端发动申请后,通过业务层的服务 API 解决,日志数据在服务应用层进行解决,并最终存储于 MySQL、Elasticsearch 和 Redis 等数据存储系统中。 MySQL 次要存储业务相干数据以及大量计算实现的统计数据,用于治理平台中随查随用,Elasticsearch 次要用于存储日志类数据,以反对数据实时剖析和检索需要。Redis 次要用于存储热数据和治理平台的配置信息,以进步接口性能。 在架构 1.0 应用过程中,咱们发现几个痛点问题: Elasticsearch 索引不反对变更:Elasticsearch 一旦创立索引,不再反对更改,分词参数和字段类型也无奈批改。当提出新的业务需要时,就须要创立新的索引,并须要编写脚本将历史数据迁徙至新索引中,这就带来较高的操作和开发成本。Elasticsearch 聚合性能差:当执行简单的聚合查问或存在大量聚合工作时,Elasticsearch 须要为聚合操作调配大量的内存,如果计算资源有余,会造成聚合操作执行工夫过长,从而影响查问效率。架构 1.1:引入 Apache Doris 1.0 版本据前文可知,Elasticsearch 聚合性能较差,而在理论的应用场景中存在大量需深度聚合的数据表,因而咱们决定对架构进行降级改良。在正式降级之前,咱们对多个数据分析组件进行调研,并发现 Apache Doris 具备许多个性合乎咱们的需要,无望解决以后存在的问题。以下列举咱们较为关注的特点: 反对多种数据模型:反对 Aggregate、Unique、Duplicate 三种数据类型,其中 Aggregate Key 模型可能在疾速且精确的写入数据的同时进行数据聚合,即通过提前聚合大幅晋升查问性能。采纳列式存储:Doris 按列进行数据编码压缩和读取,从而实现极高压缩比,该存储形式也缩小了大量非相干数据的扫描,进步 IO 和 CPU 资源的利用率。反对物化视图:既能对原始明细数据进行任意维度的剖析,也能疾速对固定维度进行剖析查问,对于查问性能的晋升有显著的成果。基于这些劣势,咱们在架构 1.0 的根底上先引入了 Apache Doris 1.0 版本,并将其作为数据存储层。Apache Doris 在架构中次要代替 Elasticsearch 进行实时计算,并将相干统计报表的计算和存储都迁徙到 Doris 中来进行,由 Doris 提供对立数据服务。 ...

February 22, 2024 · 3 min · jiezi

关于数据库:众安保险基于Apache-SeaTunnel的生产应用实践

*> 文|曾力 众安保险大数据开发高级专家 编辑整理| 曾辉*前言众安保险从2023年4月就开始了数据集成服务的预研工作,意在通过该服务解决以后数据同步场景下的两大痛点,服务化能力单薄和无分布式同步能力。咱们对多种开源数据同步中间件的调研和性能测试,最终抉择Apache SeaTunnel 及其新的Zeta引擎,进行服务化包装。 2023年10月,咱们 基于2.3.3版本,开始进行二次开发。次要是欠缺服务化接口、适配连接器个性相干工作。2024年除夕前后,咱们实现了数据集成服务的开发,并开始基于MaxCompute到ClickHouse的同步场景开始批量替换存量DataX作业,目前已切换数百个,作业安稳运行,并达到预期的性能晋升成果。 后续咱们将在理论利用中一直收集反馈、优化和欠缺服务,并向社区提交迭代和优化倡议。 数据集成的痛点众安保险在2015年左右就开始通过DataX来作为数据集成的同步工具,从淘宝外部的2.0版本到后续社区的3.0版本,其稳定性和效率失去了验证。 但随着工夫的推移,咱们每日的数据同步作业量由最后的几千个晋升3.4万个,面对每天20TB的数据入仓数据量和15TB的数据出仓数据量,以及与流媒体交互场景下单日最大40亿条记录的增量同步场景,DataX展现出了其局限性。 DataX作为一款经典单机多线程的数据集成工具,其作业配置化、多并发、插件可插拔、内存数据传递的设计思维是优良的,为后续很多集成中间件的设计指明了路线。然而其不足服务化及分布式解决能力,这限度了其在大规模数据同步场景下的利用。 升高耦合:外部场景中,DataX服务化的局限性,导致其与外部研发、调度平台的重大耦合。 这导致DataX作业运行时的资源耗费(CPU),会重大影响服务性能。 能力扩大:面对将来存算拆散和云原生等技术趋势,咱们意识到须要一种可能提供服务化能力,反对不同的集成中间件,并适配疾速的配置替换。 资源隔离及弹性扩大:咱们冀望数据同步资源可能更加弹性地被管制和治理,特地是面对咱们的3.4万个DataX工作,这些工作被部署在6台配置为16核64GB内存的ECS上,通过逻辑上的三个集群实现部门与子公司之间的隔离。然而,资源应用的不平均性,尤其是在夜间工作高峰期资源负载可能极高的状况下,强化了对资源弹性可控应用的需要。 面对将来存算拆散和云原生等技术趋势,咱们意识到须要一种可能提供服务化能力,反对不同执行中间件,并能适应疾速倒退需要的数据集成工具。 Apache SeaTunnel正是在这样的背景下被选中,它不仅能帮忙咱们解决现有的数据集成挑战,还能为咱们提供一个平滑迁徙的门路,确保数据同步工作的高效和稳固执行。此外,Apache SeaTunnel在CDC实时同步方面的能力,以及缩小数据同步回流工夫的个性,也是咱们抉择它的重要思考因素。 为什么抉择Zeta简略易用多模式部署:反对单过程/集群两种模式,反对容器化Kubernetes/Docke部署;连接器丰盛:社区已提供几十种类型的连接器,并提供了绝对欠缺的性能。社区通过几个版本的迭代,曾经可能笼罩DataX的次要性能;转换器:提供DAG级别的转换器,绝对于DataX行级转换器是一个很大的提高;服务化能力:提供零碎RestApi、客户端代理等多种模式接入服务;反对场景:离线/实时同步,整库同步等;依赖较少:zeta standalone模式能够不依赖第三方组件实现分布式数据同步;扩展性连接器:可插拔设计,可能轻松地反对更多的数据源,并且能够依据须要扩大模式;多引擎:同时反对Zeta、Flink、Spark三种引擎,并提供对立的翻译层进行对接扩大;众安目前的基础架构次要是基于MaxCompute,咱们没有Hadoop这类的大数据集群,因而Zeta的分布式能力能够很好的解决该问题。同时若将来进行大数据基座迁徙(迁徙其余云EMR或自建集群),能够实现作业的无缝连接。Zeta多资源管理器:目前仅反对Standalone,将来社区会反对yarn/k8s模式;高效稳固更疾速:在雷同资源配置下,相比于DataX可能提供15%~30%的性能晋升;资源节俭:咱们尝试通过优化配置极限压迫内存资源,后果发现在放弃同步速度不变的状况下,相比DataX,SeaTunnel能够节俭30%到40%以上的内存。这意味着一旦SeaTunnel反对在Kubernetes上运行,对内存的总体耗费将大大减少。SeaTunnel利用共享线程技术缩小了上下文切换的开销,从而进一步提高了数据同步的速度。容错复原:作业级别实现了pipeline级别的checkpoint,集群级别实现了Hazecast内存网络IMAP的异样复原。基于外部oss存储场景,咱们扩大了相干插件。社区活跃度Apache SeaTunnel的社区活跃度十分高,作为一个由国内开发者主导的社区,咱们与社区的其余成员,包含高老师和海林老师等,有着十分顺畅的交换和单干,他们提供的及时领导和问题剖析对咱们帮忙微小。社区还定期举办周会,为大家提供了一个探讨设计模式、分享问题解决方案的平台。 对立数据集成服务以后设计 咱们打造了一个对立的数据服务平台,这一平台将数据源治理和数据集成的配置过程简化,反对数据开发流程从开发到测试再到公布的全过程。咱们通过在IDE中治理数据源和集成配置,而后通过调度零碎在夜间调配作业到执行节点,进一步提高了数据处理的自动化和效率。 这种形式尽管无效,但咱们意识到在服务化方面还有晋升空间,特地是思考到在高负载状况下CPU资源的高耗费和对监控和作业管理的需要。 服务化设计为了解决这些挑战,咱们决定将局部性能从调度零碎中独立进去,使得调度更加纯正和高效。咱们的指标是将数据集成服务转变为SaaS模式,以便更好地集成进咱们外部的各种零碎中,并疾速接入集成服务能力(例如如CDP零碎和自助报表平台)。 该服务相似于Apache SeaTunnel Web,可能配置作业、设置调度模式、查看执行记录以及治理数据源。为了进步灵活性和不便将来的集群降级,咱们引入了名为“quota”的虚构资源组概念,咱们的设计包含两种集群:主执行集群和备用执行集群,用以反对作业的主动降级。 在现实状况下,主执行集群应用SeaTunnel,而在备用执行集群中应用Data X。这种设计模拟了如B站等公司外部采纳的Data X和Apache SeaTunnel并行零碎,目标是在繁多零碎内实现作业的无缝降级,例如当SeaTunnel作业失败时,零碎会尝试在Data X集群上从新调度执行该作业。 为了治理这一简单的流程,咱们设计了外围服务和执行服务。外围服务负责作业的调度、降级、日志清理、回调服务以及配置和资源管理。执行服务则专一于作业的理论执行和监控,包含作业执行线程和协调线程。 在作业执行前,咱们会依据作业配置和集群资源状况来决定作业在哪个集群上执行,并确保有足够资源来执行作业。 Datax作业迁徙咱们还着重进行了Data X到SeaTunnel的迁徙工作。 插件兼容性这包含比照社区提供的连接器和咱们外部应用的插件性能,确保它们之间的兼容性,并对最罕用的数据回流场景进行了特地关注,即从MC到ClickHouse(CK)的数据回流工作。咱们有大概3.4万个工作,其中约1.4万个工作专门用于将自助剖析报表的底层元数据日常推送至CK,针对这些场景咱们进行了特定的兼容性开发。 作业切换接口为了反对作业的平滑迁徙和开发,咱们实现了一个作业开发切换接口。这容许咱们基于作业号和连接器的适配状况,灵便地进行作业迁徙。迁徙实现后,新工作会被注册到集成服务中,并以公共配置格局保留,从而便于在治理服务端通过脚本模式或页面疏导化配置进行操作。 配置形象咱们制订了一套外部公共配置规范,旨在兼容Apache SeaTunnel和Data X作业的配置形式。这一做法不仅简化了多环境数据源的替换过程,还加强了安全性,防止了在配置中间接裸露敏感信息如用户名和明码。 咱们在作业执行前进行作业配置翻译,这种设计参考了Seatunnel的翻译层设计,包含本地变量和数据源参数的替换,以及针对不同引擎的配置翻译。这种双层翻译机制,一层负责将特定中间件插件配置转换为公共配置(Pre transform),另一层则将公共配置转换为指定引擎配置(失常的transform),极大地加强了作业配置的灵活性和兼容性。一个公共层的存在是必要的,因为它容许在不同数据集成工具之间进行灵便的翻译和配置转换,从而实现数据服务执行在多引擎间的执行降级; Zeta 集群资源管控问题:Zeta资源管理Slot目前仅是逻辑隔离,若采纳动静slot模式,会创立大量线程进行资源争抢,肯定水平会拖慢多并发作业的整体速度,或导致集群OOM。该模式比拟适宜于CDC实时同步多批次,少数据量分片的场景。 解决方案应用动态slot模式对于离线批处理工作,该模式更为适合,其能够肯定水平的管制资源耗费,避免因大量数据缓存导致的内存溢出(OM)问题。 依据集群的CPU/内存大小进行评估,适当的CPU超卖,并配置适合的资源槽数量,以确保数据处理作业的效率和集群资源的无效利用。 新增集群slot服务RestApi通过扩大SlotService和ResourceManager,在Hazelcast中扩大存储集群全slot和已调配slot状况 ,并欠缺集群启动、节点高低线、作业提交、作业开释时的slot资源状况解决,并提供RestApi查问。 作业slot计算晚期,咱们尝试依据物理执行打算来评估作业的并发度,但起初的版本变更要求咱们基于作业配置来进行slot资源计算。 在并发度统一的状况下,作业资源占用计算公式如下: 该办法能够实用于大多数端到端数据同步场景,但在更简单的作业配置中,这种办法可能不够灵便。咱们也期待社区外部实现一个相似SQL explain的API进行资源计算。 作业控制作业提交前依据配置计算耗费的slot资源;作业提交前会校验集群slot资源总数和可用资源是否能够满足作业资源耗费,若能够则通过RestApi提交; Zeta RestAPI 对接问题问题集群http服务地址挂载阿里云slb之后,发现集群大量连贯被近程敞开的谬误。起因:slb开启健康检查后,发动探测会发送syn包,后端响应syn+ack,而后会重置连贯。解决方案:在尝试hazelcast组网模式和slb配置均未无效的状况下,咱们再服务端通过集群配置信息,在http申请前进行了一次随机路由解决; 问题非Master节点无奈解决作业提交、终止、集群slot获取等操作起因:2.3.3版本通过HazelcastInstance在非master节点上无奈获取Master服务的相干实例; Hazelcast.getAllHazelcastInstances() 并没有多个,是还须要有额定的代码来批改么,无奈跨节点提交作业。 ...

February 22, 2024 · 1 min · jiezi

关于数据库:再聊对架构决策记录的一些思考

1 引言第一次在社区发文聊ADR(架构决策记录)是在2022年8月份,在文章( 轻量级ADR机制 )中,具体介绍了以下几个主题: •团队研发面临的次要问题 •ADR的构造分析 •ADR的存储模式 •ADR在研发流程中所处的地位 •ADR常见的误区与疑难 在实践中发现依然有一些普遍性问题与挑战能够探讨。 2 研发团队一些普遍现象视角一:架构决策缺失是问题长期存在的广泛问题,但团队广泛短少治理普遍存在的景象是团队对系统演进过程中的要害架构决策不足记录,尽管需要迭代过程中技术团队会产生系列的“技术计划”,依附这些“技术计划”追溯零碎的要害决策和演进仍然面临挑战: •其一,“技术计划”个别会随着不同需要迭代散落在文档零碎中,不便于整合 •其二,技术计划是设计决策的“快照”信息,其体现的是决策的后果,并不能反映决策的演进过程和还原决策的上下文 •其三,技术计划个别是长文档,其“过期和不统一”的概率较大,少数状况下团队短少对历史技术计划的保护修改。 组织架构及业务调整,团队面临接手新的零碎,或者新的团队成员的退出,面对遗留/新的零碎,疾速相熟零碎是高效反对迭代建设的前提。但,大多数状况对遗留零碎的理解过程困难重重,很多时候依赖于可能曾经过期和散落的技术计划(技术视角),或者不得不梳理零碎代码以取得更多零碎常识。 对于技术而言,如果能有清晰明确的决策记录肯定水平上可能减速理解零碎的效率,升高认知老本。不论是从对现有零碎常识的积淀梳理,还是团队间技术决策的同步,亦或是在零碎交接场景下晋升信息传递效率,ADR都是极具性价比且极易落地的实际。 视角二:对ADR的排挤很多同学“排挤”ADR的起因常见的是: •其一:文档化与技术人员的第一直觉相悖:“不太违心花太多的精力在文档撰写上” •其二:排挤“评审”:认为ADR的评审是一种强流程的正式评审,大家不违心加入“评审会”,发起人也“不违心抛出本人的决策让大家在会上探讨”。这显然与ADR机制相悖,实质上,团队实际的该当是一种十分轻量级的、不应有太多累赘的架构决策机制,大家头脑风暴式的探讨、共识。 •其三:不确定什么场景下须要写ADR,会感觉实际过程无准则可依 对于起因一和起因二的解决形式非常简单:放弃ADR模版的简略和轻量,突破对文档化的固有认知 对于起因三,其实少数状况下零碎负责人能够明确的感知哪些决策对团队或零碎的影响“比拟大”,比方: •新建子系统或零碎职责合并 •引入新的技术组件/框架或者中间件等基础设施 •工程构造的重大调整 •代码标准的变更 •其余 视角三:技术气氛不够凋谢,团队自组织水平较低ADR是一种架构决策,与参加零碎建设的每个人非亲非故,其要害价值不仅仅在于决策的留存和追溯,更为重要是在于通过干系人的探讨使得决策常识在团队间高效同步。大家对决策的制订独特参加、共识,越凋谢的气氛越有利于对决策充沛探讨,同时也有利于决策无效落地。 同时,麻利文化推广的轻文档机制与轻量级ADR并不抵触,ADR与麻利文化相符合,在“自组织”团队中人造的适宜引入ADR。 3 倡议倡议一:先做起来,写一个ADR邀请团队成员一起探讨、决策共识 倡议二:ADR放弃足够轻量,在体现其价值的同时尽量减少团队累赘 倡议三:构建凋谢的技术气氛【重要】 探讨气氛肯定要放弃凋谢,切忌一言堂、强压式的决策,让团队成员都参加进来,抛出本人的观点或疑难,直到决策共识、通过 4 结语不论是从治理视角还是技术视角,ADR有着十分高的潜在价值,极度举荐大家在团队中进行实际。放弃文档构造的简洁轻量和探讨的开放性,团队会十分乐于承受和参加这种高效的决策程和常识同步过。

February 22, 2024 · 1 min · jiezi

关于数据库:IP地址定位具体位置技术原理与实现方法

IP地址作为互联网上设施的惟一标识,定位其具体位置对于网络管理、安全监控和个性化服务至关重要。本文将深入探讨IP地址定位具体位置的技术原理、实现办法以及相干的利用场景,旨在为读者提供全面的理解和实用领导。在互联网时代,IP地址定位具体位置是网络管理和个性化服务中的重要一环。理解IP地址的地理位置信息能够帮忙咱们追踪网络流量、辨认潜在的平安威逼、提供个性化的服务等。IP数据云将介绍IP地址定位具体位置的技术原理和实现办法。IP地址定位具体位置的技术原理次要基于以下几个方面:IP地址数据库:通过查问IP地址与地理位置的映射关系,从寰球范畴的IP地址数据库中获取IP地址的地理位置信息。地理位置标记技术:利用GPS、Wi-Fi、基站等地理位置标记技术获取设施的实时地理位置信息。数据交融与算法优化:将多种数据源和算法进行交融,通过数据挖掘和机器学习等技术优化查问后果的准确度和精度。要实现IP地址定位具体位置,能够采纳以下几种办法:IP地址数据库查问:通过查问寰球范畴的IP地址数据库,获取IP地址所对应的地理位置信息。地理位置标记技术:利用GPS、Wi-Fi、基站等地理位置标记技术,获取设施的实时地理位置信息。联合多种数据源:联合多种数据源和算法进行交融,进步定位精度和准确度。IP地址定位具体位置的技术在各个领域都有宽泛的利用,次要包含以下几个方面:网络管理与安全监控:监控设施的地位信息,预防和应答网络安全事件。个性化服务:依据用户的地理位置信息提供个性化的服务,如本地化举荐、地位导航等。广告投放与市场剖析:基于用户地位信息进行精准的广告投放和市场剖析,进步广告投放的成果和精准度。IP地址定位具体位置技术在实现精准定位和个性化服务方面施展着重要作用。通过理解技术原理和实现办法,能够更好地利用和治理该技术,为社会和集体带来更多的便当和平安保障。

February 22, 2024 · 1 min · jiezi

关于数据库:头疼管理-MySQL-数据库-Schema开源工具大盘点

MySQL 是世界上最风行的开源关系型数据库管理系统 (RDBMS),然而对 MySQL 数据库做 schema 变更 (schema migration) 还是有点难搞的。 本文中,咱们盘点一些好用的针对 MySQL 的开源数据库 schema 迁徙工具,简略聊一下它们提供的不同的性能和体验。 gh-ostgh-ost 是一个无需触发器的 MySQL 在线 Schema 迁徙工具,它是基于触发器的在线 Schema 迁徙工具 pt-online-schema-change 的继任者。该工具由 GitHub 开发,并在 2016 年作为开源我的项目公布。 gh-ost: GitHub 的 Online Schema Transmogrifier/Transfigurator/Transformer/Thingy传统的在线 schema 迁徙计划通常波及长时间保护窗口或须要将数据库脱机。gh-ost 旨在通过提供非阻塞和在线模式更改解决方案来解决这些限度。 所有现有的在线模式更改工具操作形式相似:它们创立一个和原始表类似的 ghost (幽灵) 表,将该表迁徙为空,逐渐从原始表复制数据到 ghost 表,同时公布正在进行中的更改(对表利用任何 INSERT, DELETE, UPDATE)到 ghost 表。最初,在失当的时候,他们用 ghost 表替换原始表。gh-ost 应用雷同的模式,然而它不同于所有现有工具,因为它不应用触发器,而是利用 MySQL binlog 捕捉表更改,并异步地将其利用于 ghost 表之上。 SkeemaSkeem 是一个用于 MySQL 和 MariaDB 的 Schama 管理系统。它通过纯 SQL 以申明形式实现对表定义和模式更改的治理。 ...

February 22, 2024 · 1 min · jiezi

关于数据库:墨天轮2023年度数据库获奖名单

随着数字化转型深刻推动和数据量的爆炸式增长,千行百业利用对数据库的需要变动推动数据库技术减速翻新,寰球数据库产业疾速倒退,我国已迈入第一梯队。2023年国产数据库在技术创新、市场竞争和国内单干等方面获得了显著的成就,展现出振奋人心的倒退态势。 墨天轮数据社区以近50个主观中立的指标为根底,通过精心遴选,评比出了2023年的中国数据库行业重要奖项。咱们冀望通过这些数据展现中国数据库产业的全貌,为行业的继续倒退提供反对与能源!接下来,让咱们一起摸索2023年度哪些中国数据库怀才不遇,成为行业的亮点。 2023年度最具影响力数据库奖“2023年度最具影响力数据库奖”评比规范从技术能力、市场体现以及生态建设等三个维度登程,通过考量技术创新与研发能力、市场份额、财务状况、融资能力,以及顶级会议论文数、高校单干、专利数等近多项指标遴选出获奖产品,该奖项代表了产品作为国产数据库领军者,具备弱小的品牌影响力以及行业凝聚力。 OceanBase 产品介绍: OceanBase齐全自主研发,已间断 11 年稳固撑持双 11 ,翻新推出“三地五核心”城市级容灾新规范,是寰球惟一在 TPC-C 和 TPC-H 测试上都刷新了世界纪录的原生分布式数据库。产品采纳自研的一体化架构,兼顾分布式架构的扩展性与集中式架构的性能劣势,用一套引擎同时反对 TP 和 AP 的混合负载,具备数据强统一、高可用、高性能、在线扩大、高度兼容 Oracle/MySQL、对利用通明、高性价比等特点。 获奖理由: OceanBase在“墨天轮中国数据库风行度排行”中间断14个月排名第一(截至2024年1月),并持续保持当先趋势。2023年OceanBase继续做技术投入,继续践行“一体化”产品策略,实现单机分布式一体化、TP和AP一体化、云上云下一体化。通过一个数据库、一套架构、一个技术栈、一份数据、一个引擎,构建反对多模型、多兼容模式、多租户、多工作负载、单机分布式、多基础设施的一体化数据库,用一个数据库满足80%的数据库场景需要。目前OceanBase数据库已服务超过1000家行业客户,客户数年增长150%,其中30%客户将其利用于外围零碎,OceanBase正在成为外围系统升级的首选数据库。在金融畛域,OceanBase已成为市场占有率第一的分布式数据库。 PolarDB 产品介绍: PolarDB是阿里云瑶池数据库旗下、国内首款自研的云原生数据库,在存储计算拆散架构下,PolarDB利用软硬件联合等技术劣势,为用户提供秒级弹性、高性能、海量存储、安全可靠的数据库服务。PolarDB产品具备多主多写、多活容灾、HTAP等个性,交易性能最高可达开源数据库的6倍,剖析性能最高可达开源数据库的400倍,TCO低于自建数据库50%。100%兼容MySQL和PostgreSQL生态,高度兼容Oracle语法。PolarDB同时反对分布式扩大,用户可依据业务需要抉择适合的版本。PolarDB分布式版反对分布式事务、全局二级索引等个性,让开发者像应用单机数据库一样、取得高性能分布式数据库的一体化体验。 获奖理由: 以PolarDB为代表的云数据库向云原生纵深倒退。据理解,PolarDB在过来3年实现400%的增速,目前用户数已超过10000家,宽泛落地于政务、金融、电信、物流、互联网等畛域的外围业务零碎。云原生数据库PolarDB始终以客户需要为导向,已上线的云原生HTAP、Serverless、PolarDB4AI、集中与分布式一体化等业内当先的新个性,帮忙客户解决了泛滥业务问题。1月17日,首届阿里云PolarDB开发者大会在京举办,会上,云原生数据库PolarDB公布“三层拆散”全新版本,基于智能决策实现查问性能10倍晋升、节俭50%老本。 openGauss 产品介绍: openGauss是一款开源关系型数据库管理系统,采纳木兰宽松许可证v2发行。openGauss内核深度交融华为在数据库畛域多年的教训,联合企业级场景需要,继续构建竞争力个性。同时 openGauss 也是一个开源的数据库平台,激励社区奉献、单干。 获奖理由: openGuass开源三年多以来,厚积薄发,一路乘风破浪,一直积攒技术教训,翻新架构,拥抱开源,与产业,行业,开发者共建、共享、共治,在产业、生态、技术、商业四个方向上获得了微小的提高,并在业界建立了标杆。三年期间,openGauss社区企业数增长 100 倍,开源贡献者增长 50 倍,版本下载量减少 38 倍,代码量增长 16 倍,从2020 年 6 月开源的 130 万行代码倒退到今曾经 2100 万行, 规模利用于十大要害行业外围场景,2023年线下集中式新增市场份额达到 21.9%,逾越生态拐点,从拓展期进入疾速发展期。此外,openGauss 已有 17 家发行版搭档,8 家OGSP 搭档,4 家一体机搭档,无效反对了千行万业的数字化转型。从拓展期到发展期,openGauss 就像一匹黑马,在数据库畛域掀起一股热潮。 2023年度卓越体现数据库奖“2023年度卓越体现数据库奖” 旨在表彰在国内乃至国内上占有肯定市场份额,并在要害行业和畛域失去了广泛应用的数据库产品。除市场份额与占有率外,还综合考量了技术实力、产品翻新、应用领域、投产数量、业务覆盖率等多维度指标,代表着获奖产品在行业中具备深厚的市场影响力。 达梦数据 产品介绍: 达梦数据是国内当先的数据库产品开发服务商,公司向大中型公司、企事业单位、党政机关提供各类数据库软件及集群软件、云计算与大数据产品、数据库一体机等一系列数据库产品及相干技术服务。 获奖理由: 达梦数据是国内当先的数据库产品开发服务商,是国内数据库根底软件产业倒退的要害推动者。多年来,公司始终保持原始翻新、独立研发的技术路线,公司外围团队在数据库畛域领有 40 余年研发教训及技术积攒。目前,公司已把握数据管理与数据分析畛域的外围前沿技术,并领有次要产品全副外围源代码的自主知识产权。产品胜利利用于金融、能源、航空、通信、党政机关等数十个畛域。依据赛迪参谋及IDC公布的报告显示,近年来公司产品市占率位居中国数据库管理系统市场国内数据库厂商前列。 TDSQL 产品介绍: TDSQL是腾讯云自主研发的一款金融级分布式数据库产品,旗下涵盖金融级分布式、云原生等多引擎交融的残缺数据库产品,提供业界当先的金融级高可用、存算拆散、企业级平安等能力,同时具备智能运维平台、Serverless版本等欠缺的产品服务体系,是金融及泛滥企业客户外围替换的优选数据库。 ...

February 22, 2024 · 1 min · jiezi

关于数据库:TPCH-基准测试Databend-Cloud-与-Snowflake-对比

疾速概览TPC-HTPC-H 基准测试是评估决策支持系统的规范,专一于简单查问和数据保护。在这项剖析中,咱们应用 TPC-H SF100(SF1 = 600万行)数据集比拟了 Databend Cloud 和 Snowflake,该数据集蕴含 100GB 数据和大概 6 亿行,逾越 22 个查问。 免责申明 TPC 基准测试™ 和 TPC-H™ 是交易解决性能委员会(TPC)的商标。咱们的基准测试尽管受到 TPC-H 的启发,但与官网 TPC-H 后果不间接可比。 Snowflake 和 Databend CloudSnowflake:Snowflake 因其先进的性能而闻名,例如拆散存储和计算、按需可扩大计算、数据共享和克隆能力。Databend Cloud:Databend Cloud 提供与 Snowflake 相似的性能,是一个云原生数据仓库,也将存储与计算拆散,并依据须要提供可扩大的计算能力。 它是从开源 Databend 我的项目倒退而来,定位为 Snowflake 的现代化、高性价比替代品,特地适宜大规模剖析。性能和老本比拟在数据加载方面,Databend 的老本比 Snowflake 低约 67%。在查问执行方面,Databend 比 Snowflake 约高出 60% 的老本效率。留神 基准测试中没有进行调优。后果基于 Snowflake 和 Databend Cloud 的默认设置。 记住,不要只是置信咱们的话 —— 咱们激励您本人运行并验证这些后果。 数据加载基准测试 表名Snowflake(695s, 老本 $0.77)Databend Cloud(446s, 老本 $0.25)行数customer18.13713.43615,000,000lineitem477.740305.812600,037,902nation1.3470.70825orders103.08864.323150,000,000part19.90812.19220,000,000partsupp67.41045.34680,000,000region0.7430.7255supplier3.0003.68710,000,000总工夫695s446s 总成本$0.77$0.25 存储大小20.8GB24.5GB 查问基准测试:冷启动 查问Snowflake(总计 207s, 老本 $0.23)Databend Cloud(总计 166s, 老本 $0.09)TPC-H 111.7038.036TPC-H 24.5243.786TPC-H 38.9086.040TPC-H 48.1084.462TPC-H 59.2027.014TPC-H 61.2373.234TPC-H 79.0827.345TPC-H 810.8868.976TPC-H 918.15213.340TPC-H 1013.52512.891TPC-H 112.5822.183TPC-H 1210.0998.839TPC-H 1313.4587.206TPC-H 148.0014.612TPC-H 158.7374.621TPC-H 164.8641.645TPC-H 175.36314.315TPC-H 1819.97112.058TPC-H 199.89312.579TPC-H 208.5388.836TPC-H 2116.43912.270TPC-H 223.7441.926总工夫207s166s总成本$0.23$0.09查问基准测试:热启动 ...

February 22, 2024 · 1 min · jiezi

关于数据库:当事人复盘-GitLab-史上最严重的数据库故障

故事来源于当事人最近发表的回忆录相干节选。 GitLab 官网上还有当年这次事变的纪录,事件产生在 2018 年 2 月 1 日。 误删库起因GitLab.com 应用的是 PostgreSQL,一主一备两个集群,别离是 db1.cluster.gitlab.com 和 db2.cluster.gitlab.com。当事人 发现 db2 集群无奈从 db1 同步数据过去,再尝试了几种办法都不见效后,就决定尝试重置 db2,也就是清空 db2 的数据目录。只是当事人操作在了主集群 db1 上,当他意识到问题时,300 GB 的数据只剩下 4.5 GB 了。 主库被误删,GitLab.com 只能立马下线了。 复原过程 GitLab 官网提到有好几道防线,所以最初还是复原了过去。不过就像一开始当事人回顾里提到的,差一点点就完蛋了。事实上 GitLab 设置的所有防线其实都被击穿了: 每天的主动备份不见效,因为备份所用的 pg_dump 版本和 GitLab 的 PG 版本不统一,所以每次备份只产生了几个 bytes 的数据。在 Azure 上的磁盘备份没有在数据库服务器上启用。到 S3 的备份也是坏的,目录为空。所幸的是,当事人在操作前的 6 小时,因为晓得要解决数据库负载平衡问题,所以做了一个手工备份。所以最初 GitLab.com 花了 24 个小时,把这个手工备份复原了进去,然而 6 小时的数据是齐全没了。 复盘备份复原须要定期演练。不演练还不如不要备份。这点其实也从侧面体现了云数据库服务商的劣势。因为他们可能保障备份的有效性,也提供了 Point-in-time-recovery (PITR) 这样的闪回能力。GitLab 是本人在云主机上搭了数据库服务,手搓一套备份/复原的计划,后果齐全不可用。不要在疲劳时操作数据库。当事人原本曾经因为工夫很晚,筹备劳动了。但因为忽然呈现的同步问题,持续熬夜。 尽可能通过工具而不是人肉操作。GitLab 的这个故障应该是当事人间接登上服务器,进行命令行操作的。这里至多有 2 个卡点能够引入工具,一个是登陆服务器,一个是登陆后在服务器上执行命令。如果通过工具操作的话,工具界面会提醒正在操作生产库,并且进一步能够设置审批流程。危险操作事先先备份。这个故障能够挽回在于当事人还是一个新手,所以做了事先手工备份,否则结果不堪设想。前段时间 Linear 误用 TRUNCATE 也造成了其史上最大故障。对生产环境,尤其是数据库上的操作永远要心怀敬畏。操作时应该尽量通过工具自动化。万不得已须要手动挡,始终也要确保有可用备份兜底。 更多资讯,请关注 Bytebase 公号:Bytebase ...

February 22, 2024 · 1 min · jiezi

关于数据库:大数据计算技术秘史上篇

在之前的文章《2024 年,一个大数据从业者决定……》《存储技术背地的那些事儿》中,咱们粗略地回顾了大数据畛域的存储技术。在解决了「数据怎么存」之后,下一步就是解决「数据怎么用」的问题。 其实在大数据技术衰亡之前,对于用户来讲并没有存储和计算的辨别,都是用一套数据库或数据仓库的产品来解决问题。而在数据量爆炸性增长后,状况就变得不一样了。单机零碎无奈存储如此之多的数据,先是过渡到了分库分表这类伪分布式技术,又到了 Hadoop 时代基于分布式文件系统的计划,起初又到了数据库基于一致性协定的分布式架构,最终演进为当初的存算拆散的架构。 最近十几年,Data Infra 畛域的计算技术以及相干公司层出不穷,最终要解决的基本问题其实只有一个:如何让用户在既灵便又高效,架构既简略又兼具高扩展性,接口既兼容老用户习惯、又能满足新用户场景的前提下应用海量数据。 解读一下,需要如下: 数据量大、数据品种多、数据逻辑简单 反对 SQL 接口,让习惯了 SQL 接口的 BI 老用户们实现无缝迁徙,同时要想方法反对 AI 场景的接口——Python 交互式查问提早要低,能反对简单的数据荡涤工作,数据接入要实时 架构尽量简略,不要有太多的运维老本,同时还能反对纵向、横向的程度扩大,有足够的弹性 据太可研究所(techinstitute)所知,目前市面上没有哪款产品能同时满足以上所有要求,如果有,那肯定是骗人的。所以在计算畛域诞生了泛滥计算引擎、数据库、计算平台、流解决、ETL 等产品,甚至还有一个品类专门做数据集成,把数据在各个产品之间来回同步,对外再提供对立的接口。 不过,如果在计算畛域只能选一个产品作为代表,那毫无疑问肯定是 Spark。从 09 年诞生起到当初,Spark 曾经公布至 3.5.0 版本,社区仍旧有很强的生命力,能够说穿梭了一个技术迭代周期。它背地的商业公司 Databricks 曾经融到了 I 轮,估值 430 亿,咱们无妨沿着 Spark 的倒退历史梳理一下计算引擎技术的改革。 Vol.1大数据计算的场景次要分两类,一是离线数据处理,二是交互式数据查问。离线数据处理的的特点产生的数据量大、工作工夫长(工作时长在分钟级甚至是小时级),次要对应数据荡涤工作;交互式查问的特点是工作工夫短、并发大、输入后果小,次要对应 BI 剖析场景。 工夫拨回 2010 年之前,彼时 Spark 还没开源,过后计算引擎简直只有 Hadoop 配套的 MapReduce 能够用,早年间手写 MapReduce 工作是一件门槛很高的事件。MapReduce 提供的接口非常简单,只有 mapper、reducer、partitioner、combiner 等寥寥几个,工作之间传输数据只有序列化存到 hdfs 这一条路,而真实世界的工作不可能只有 Word Count 这种 demo。所以要写好 MapReduce 必定要深刻了解其中的原理,要解决数据歪斜、简单的参数配置、工作编排、两头后果落盘等。当初 MapReduce 曾经属于半入土的技术了,但它还为业界留下了大量的徒子徒孙,例如各个云厂商的 EMR 产品,就是一种传承。 Spark 开源之后为业界带来了新的计划,RDD 的形象能够让用户像失常编写代码一样写分布式工作,还反对 Python、Java、Scala 三种接口,大大降低了用户编写工作的门槛。总结下来,Spark 能短时间内取得用户的青眼有以下几点: ...

February 21, 2024 · 2 min · jiezi

关于数据库:如何查询IP所属公司探究技术原理与实用方法

在网络安全和治理中,理解IP地址所属的公司或组织是十分重要的。通过查问IP所属公司,能够帮忙网络管理员辨认和监控网络流量,追踪潜在的网络安全威逼。IP数据云将深入探讨查问IP所属公司的技术原理和实用办法,为读者提供全面的理解和利用指南。在互联网上,每个设施都有一个惟一的IP地址,而理解IP地址所属的公司或组织能够帮忙咱们更好地治理网络资源、追踪网络流动、辨认潜在的威逼等。本文将介绍如何查问IP所属公司的办法和技术原理。查问IP所属公司的技术原理次要基于IP地址与公司注册信息的关联。其中一种罕用的办法是通过WHOIS数据库查问IP地址的注册信息,该数据库蕴含了寰球各个IP地址的注册信息,包含所属公司或组织等信息。另一种办法是通过IP地址的ASN(Autonomous System Number)查问IP地址的归属网络,而后再通过ASN数据库查问网络的注册信息,从而得悉IP所属公司。要查问IP所属公司,能够采纳以下几种实用办法:WHOIS查问:通过WHOIS查问工具或网站,输出IP地址即可查问其注册信息,包含所属公司或组织。应用在线IP查问工具:一些在线IP查问工具提供了查问IP所属公司的性能,用户能够间接输出IP地址进行查问。应用业余网络工具:一些业余的网络管理工具或平安工具提供了IP查问性能,用户能够利用这些工具查问IP所属公司,并进行更加具体的网络分析和监控。查问IP所属公司的技术在网络管理、安全监控等方面有着宽泛的利用场景。例如:网络流量监控:网络管理员能够通过查问IP所属公司,监控和治理网络流量,辨认异样流量和潜在的平安威逼。安全事件响应:在网络安全事件产生时,查问IP所属公司能够帮忙疾速定位和响应安全事件,减小损失和影响。网络审计和合规性查看:企业能够利用查问IP所属公司的技术进行网络审计和合规性查看,确保网络资源的非法应用和平安运行。查问IP所属公司是网络管理和安全监控中的重要一环,通过理解技术原理和实用办法,咱们能够更好地利用这一技术来保障网络安全和管理效率。在理论利用中,咱们应该联合具体情况抉择适合的办法和工具,确保查问后果的准确性和可靠性。

February 21, 2024 · 1 min · jiezi

关于数据库:人人都是架构师清晰架构-京东物流技术团队

前言理解清晰架构之前须要大家先相熟以下常见架构计划: EBI架构(Entity-Boundary-Interactor Architecture) 畛域驱动设计(Domain-Driven Design) 端口与适配器架构(Ports & Adapters Architecture,又称为六边形架构) 洋葱架构(Onion Architecture) 整洁架构(Clean Architecture) 事件驱动架构(Event-Driven Architecture) 命令查问职责拆散模式(CQRS,即Command Query Responsibility Segregation) 面向服务的架构(Service Oriented Architecture)清晰架构(Explicit Architecture,直译为显式架构)是将上述架构的局部劣势整合之后产生的另一种架构,因其2017年曾经呈现,曾经不算是一种新的架构,理论利用的我的项目尚且较少。以下次要介绍架构的造成及各步骤的意义。 1 架构演化过程1.1 零碎的根本构建块端口和适配器架构明确地辨认出了一个零碎中的三个根本代码构建块: 运行用户界面所需的构建块;零碎的业务逻辑,或者利用外围;基础设施代码。 1.2 工具在远离【利用外围】的中央,有一些利用会用到的工具,例如数据库引擎、搜索引擎、Web 服务器或者命令行控制台(尽管最初两种工具也是传播机制)。 把命令行控制台和数据库引擎都是利用应用的工具,要害的区别在于,命令行控制台和 Web 服务器通知咱们的利用它要做什么,而数据库引擎是由咱们的利用来通知它做什么。 1.3 将传播机制和工具连贯到利用外围连贯工具和利用外围的代码单元被称为适配器(源自端口和适配器架构)。适配器无效地实现了让业务逻辑和特定工具之间能够互相通信的代码。 “告知咱们的利用应该做什么”的适配器被称为主适配器或被动适配器,而那些“由咱们的利用告知它该做什么”的适配器被称为从适配器或者被动适配器。 1.3.1 端口适配器须要依照利用外围某个特定的入口的要求来创立,即端口。在大多数语言里最简略的模式就是接口,但实际上也可能由多个接口和 DTO 组成。 端口(接口)位于业务逻辑外部,而适配器位于其内部,这一点要特地留神。要让这种模式依照构想发挥作用,端口依照利用外围的须要来设计而不是简略地套用工具的 API。 1.3.2 主适配器或被动适配器主适配器或被动适配器包装端口并通过它告知利用外围应该做什么。它们将来自传播机制的信息转换成对利用外围的办法调用。 换句话说,咱们的被动适配器就是 Controller 或者控制台命令,它们须要的接口(端口)由其余类实现,这些类的对象通过构造方法注入到 Controller 或者控制台命令。 再举一个更具体的例子,端口就是 Controller 须要的 Service 接口或者 Repository 接口。Service、Repository 或 Query 的具体实现被注入到 Controller 供 Controller 应用。 此外,端口还能够是命令总线接口或者查问总线接口。这种状况下,命令总线或者查问总线的具体实现将被注入到 Controller 中, Controller 将创立命令或查问并传递给相应的总线。 ...

February 21, 2024 · 2 min · jiezi

关于数据库:2024年2月中国数据库排行榜PolarDB夺魁首登顶TiDB攀升回探花

银装素裹覆大地,春意初醒待降临。2024年2月墨天轮中国数据库风行度榜单出炉,体现最亮眼的无疑是PolarDB,其自23年7月以来一路高歌猛进,此次更是一举夺魁,彰显了云原生数据库的蓬勃发展态势,OceanBase、TiDB紧接拿下榜眼探花。榜单前十中,开源与商业平分秋色、各家数据库乘云直上,你追我赶展示中国数据库技术的疾速提高和行业的凋敝态势。 图1: 2024年2月排行榜TOP10得分详情表 一、PolarDB首度夺魁,四升四降开启新篇章本月PolarDB首次夺得榜首,刷新榜单总分记录,胜利突破了OceanBase间断14个月的冠军位置。只管OceanBase略居第二,但其间断14个月的领先地位和弱小的品牌影响力不可漠视。TiDB回升一位,夺得探花位置。而openGauss和人大金仓紧随其后,在开源生态和技术创新方面体现卓越,稳居榜单中。GaussDB、GBASE、达梦数据、GoldenDB和TDSQL等其余参与者也以独特的技术创新和市场体现稳居前十。这些问题不仅代表了各自品牌的技术实力,同时也反映了数据库行业在满足日益增长的数据管理需要中的重要作用和将来后劲。让咱们一起来看看排行榜前十名厂商的得分以及排名状况。 PolarDB以856.07分的高分,轻松当先第二名达129.02分,荣膺2月排行榜的冠军宝座。自23年7月以来,PolarDB一路高歌猛进,屡次夺得榜单榜眼,此次更是一举夺魁,彰显了云原生数据库的蓬勃发展态势。本月业内最引人瞩目的无疑是是阿里云PolarDB开发者大会的胜利举办,该大会在北京隆重召开,吸引了海量开发者的参加。大会期间,阿里云推出了PolarDB的划时代“三层拆散”新版本,该版本利用先进的智能决策技术,不仅将查问性能晋升至原来的十倍,还实现了老本的显著升高。得益于这些技术创新,PolarDB已广泛应用于我国的政务、金融、电信、物流、互联网等外围业务零碎中。据悉,PolarDB在寰球范畴内领有超过10,000名企业级用户,部署实例超百万核CPU,三年间增长率高达400%,成为最受欢迎的国产数据库。 OceanBase虽未能守住排行榜首的宝座,以727.05分取得榜眼,但其在“墨天轮中国数据库风行度排行”中继续14个月雄踞榜首,已足以展现其在中国数据库畛域的弱小品牌影响力和综合产品实力。OceanBase在墨天轮公布的2023年度数据库评比中荣获“年度最具影响力数据库奖”,进一步印证了其行业领先地位。目前,OceanBase已为超过1000家行业客户提供服务,年客户增长率达到惊人的150%,其中30%的客户已将OceanBase利用于其外围零碎。OceanBase正在成为外围系统升级的首选数据库。TiDB以641.97分优雅攀升至2月排行榜的探花地位,展示了其继续的技术提高和市场接受度。值得注意的是,基于TiDB技术的杭州银行新一代外围业务零碎于1月5日胜利上线,标记着业界首次将云原生、分布式和全栈国产化技术利用于银行外围零碎的实际。这一冲破不仅在金融科技领域引起了宽泛关注,也证实了TiDB在解决简单、高要求的金融业务场景中的弱小能力。随着更多企业和开发者的退出,TiDB及其背地的PingCAP正成为寰球开源社区的要害力量,推动着开源技术的倒退和翻新。openGauss以610.16分的问题稳居本月排行榜第四位,仅以渺小的差距错失前三。在2023年的中国数据库市场上,openGauss系列产品的市场份额显著增长至21.9%,象征着openGauss已胜利逾越生态拐点,正式踏入生态发展期。这一成就不仅反映了openGauss在开源软件驳回度、社区规模扩张,以及商业化过程中获得的突出成绩,还凸显了其在推动开源生态系统倒退中的踊跃作用。人大金仓本月以588.82分稳坐排行榜前五,展示了其在数据库畛域的继续领先地位。得益于其在技术创新、规范研制、生态建设、行业利用及人才培养等多方面的卓越成就,人大金仓已间断四年被授予“信息技术利用翻新工作委员会卓越贡献成员单位”荣誉,这一系列荣誉不仅必定了人大金仓在推动信息技术利用翻新和规范制订方面的重要奉献,也突显了其在促成行业生态倒退和人才培养上的踊跃致力。GaussDB本月攀升两位,荣登排行榜第六。1月16日,在2023年第三届数字经济领航者大会及翻新影响力年会上,华为云GaussDB以其卓越的产品性能荣获“2023年度国产云数据库利用举荐优良产品奖”,彰显了其在云数据库畛域的技术实力和市场认可。GBASE继续展示稳定性,稳坐排行榜第七位。最近,GBASE南大通用胜利博得金融行业的9个重要我的项目,刷新了历史记录,这包含与多家银行、保险公司、信托公司及央企的建设项目。此外,GBASE也荣获多项重要奖项,包含“2023年度信创工委会卓越贡献成员单位”和“大数据产业年度翻新服务企业”,同时其为河北银行打造的“湖仓一体”数据平台被评为“大数据产业年度优良案例”。达梦数据本月排名降落两位,位列第八。作为国产数据库的领军企业,达梦数据被选为2023年国家技术创新示范企业,这反映了行业对其继续自主翻新和技术自立的高度认可。达梦数据因技术创新能力和显著的翻新成就与市场影响力,在墨天轮2023年度数据库评比中取得了“年度卓越体现数据库奖”。GoldenDB本月排名回升至第九,得分310.58分。依据沙利文公布的《2023中国金融数据库行业钻研》报告,GoldenDB在金融畛域的体现卓越,不仅在银行业金融级分布式数据库市场份额中排名第一,还在银行外围零碎(包含次外围及非银外围零碎)的市场投产数量中位列行业前列,再次博得了市场的宽泛认可。TDSQL放弃在排行榜前十,以285.37分的问题展示了其在数据库畛域的竞争力。依据IDC公布的《2023年上半年中国关系型数据库软件市场跟踪报告》,腾讯云数据库TDSQL在支出同比增长和市场占有率增幅上均当先于其余中国云服务商。目前,已有超过4000家来自金融、公共服务和电信等行业的客户采纳TDSQL,包含超过30家金融机构在内的重要客户,证实了其技术实力和市场影响力。二、多款产品回升态势彰显生机在本月排行榜第11名至60名之间这一区间,竞争强烈,有24款数据库产品的排名较上月均有所回升。限于篇幅,小编仅在此筛选了局部数据库的得分和排名,一起来看看它们的最新动静。 图2: 2024年2月排行榜优良数据库得分详情表 DolphinDB是由智臾科技研发的一款高性能分布式时序数据库,本月排名较上月晋升4个位次,以后排名第20名。在刚刚公布的2.00.11 & 1.30.23版本中,减少了TSDB引擎的软删除性能、反对了SQL开窗函数等性能,并加强了数据分析能力。1月陆续签约东证润和、中信建投证券,并与盈米基金达成策略单干,助力金融行业数智化转型。虚谷数据库是一款原创自主可控的原生分布式数据库,经工信部CSIP评测,其外围代码自有率达99.4%。本月榜单排名第21名,较半年前排名逐月晋升,已回升18个位次。近期,虚谷数据库已通过首批首批安全可靠测评清单、入选"2023年网信畛域重点撑持单位"、通过GM/T 0028《明码模块平安技术要求》评测,这标记着其可能为用户提供更加平安、牢靠的数据存储和治理服务。由蚂蚁团体联结清华大学自主研发的大规模全栈图计算零碎TuGraph,可能在万亿边图上进行实时查问。本月得分55.13,较上月总榜晋升6个位次,图数据库榜单名次晋升至第一位。其历经蚂蚁万亿级业务的理论场景锻炼,屡次刷新国内图数据库基准性能测试LDBC-SNB世界纪录。在第11届数字金融大会中,基于TuGraph图数据管理平台的信贷反欺诈被动防控利用从全国超230个案例中怀才不遇,取得2023年金融科技利用场景翻新优良案例。万里数据库是一款自主研发的关系型数据库产品,本月排名较上月晋升至27名。1月,陆续通过了“2023年度北京市知识产权试点单位”认定、入选“2023年北京软件外围竞争力企业(技术研发型),这意味着万里数据库器重知识产权治理,并在企业规模、倒退效益和研发翻新上获得了肯定成就。以后,已广泛应用于多个行业重要业务零碎中的超1000个业务场景,助力政府和企业数智化降级。SinoDB是星瑞格研发的具备自主知识产权的数据库管理系统产品,本月排名较上月回升9个位次,以后排名第33名。其新型数据库产品SinoDB V16.8近日正式亮相,具备高并发性、高稳定性、高可用性等显著特色,广泛应用于党政、金融、通信、能源、物联网等多种场景。1月,其“金融国产数据库信创解决方案”入选《2023年福建省信息技术利用翻新解决方案典型案例集》。中国移动信息技术核心基于openGauss打造了面向ICT基础设施的自研数据库产品磐维数据库,本月排名第50名,较上月晋升34个位次。磐维数据库于2022年12月正式公布,2023年公布面向全场景的2.0版本,提供企业级数据管理的残缺解决方案,以后已在20余家企业部署上线上千节点,服务用户规模上亿。1月,在2024 ICT行业趋势年会上磐维数据库获评ICT 2023年度最佳数据库翻新产品及数字化优良解决方案奖项。Milvus是Zilliz研发的云原生向量数据库,专为向量查问与检索设计,可能为万亿级向量数据建设索引,以后GitHub Star已冲破25000。本月榜单排名较上月大幅晋升了45个位次,来到第53名。其最新版Milvus 2.3.4新增了许多易用性性能,此外通过对外部解决逻辑进行优化以及对内存应用效率的晋升晋升了扩展性。 Zilliz Cloud在国内增设北京、深圳两大云服务可用区,以后蕴含国内3个服务区在内已实现寰球4大云11个节点的全笼罩。三、获奖名单出炉,见证荣誉时刻2023年,国产数据库在技术创新、市场竞争和国内单干等方面获得显著成就,呈现出令人振奋的倒退态势。墨天轮数据社区以近50个主观中立的指标为根底,通过精心遴选,评比出了2023年中国数据库行业的重要奖项。 图3: 墨天轮2023年度数据库获奖名单 春意初醒待降临,2024年也将是数据库行业蓬勃发展的一年。期待今后及将来,通过淬炼的优良产品以及行业解决方案怀才不遇,助力企业在数据时代实现更卓越的业务成就,为行业注入新的生机! 欢送大家在评论区一起共话2月中国数据库排行榜。限于篇幅,笔者不在此列举1月国产数据库大事记,感兴趣的敌人能够点此查看:《2024年1月国产数据库大事记》。相干浏览 国产数据库风行度排行榜-墨天轮国产数据库风行度排名规定-墨天轮《往期国产数据库风行度排行榜解读》2023:国产数据库名录和产品信息一览《中国数据库行业剖析报告》往期合辑原文链接:https://www.modb.pro/db/1754134664507904000 更多精彩内容尽在墨天轮技术社区,围绕数据人的学习成长提供一站式的全面服务,继续促成数据畛域的常识流传和技术创新。

February 21, 2024 · 1 min · jiezi

关于数据库:Apache-DolphinScheduler-321-版本发布增强功能与安全性的全面升级

近期,Apache DolphinScheduler 社区冲动地发表 3.2.1 版本的公布。此次更新不仅着力解决了前一版本(3.2.0)中遗留的问题,而且引入了一系列的性能加强和优化措施。 原先的问题次要源于局部重要代码在公布过程中未能胜利合并(cherry-pick),加之这部分代码的合并过程较为简单,因而,3.2.1 版本基于 2024年2月的 dev 分支代码,剔除了一些不兼容的个性后公布。 全副 Changelog:https://github.com/apache/dolphinscheduler/releases/tag/3.2.1 下载地址:https://dolphinscheduler.apache.org/zh-cn/download/3.2.1 次要修复和性能加强新个性和优化SQL 工作现反对应用 druid 进行 SQL 宰割,反对设置 maxRows。反对自定义 HTTP body 渲染。Kubernetes (k8s) 现反对自定义标签 (label)。新增反对阿里云语音告警源。Helm chart 现反对 JDBC 注册核心;反对工作类型过滤。关键问题修复修复从 3.1.x 降级到 3.2.x 的失败问题。解决工作组件在应用资源核心时只能应用相对全门路的限度。修复启动参数优先级设置谬误。解决数据品质工作无奈执行的问题。修复工作组队列生效问题。解决工作定义列表批改时工作隐没的问题。修复非凡状况下删除工作流实例导致的空指针异样(NPE)。解决 Master 和 Worker 之间的通信问题。修复 Kyuubi 数据源在 UI 中不显示的问题。安全性改良此版本也对几个要害的 CVE 问题进行了修复,包含: CVE-2023-49250CVE-2023-51770CVE-2023-50270CVE-2023-49068CVE-2023-49109BugFixfix: Resource relate path invalid when tenant change (#15581)[Fix] Fix WorkflowInstance batch start failed will throw incorrect exception. (#15577)Fix create parent directory will cause FileAlreadyExistsException (#15576)Fix Recover WorkflowInstance will casue workflow Instance state is success but task insatnce is killed/paused (#15574)fix: data quality may fail in docker mode (#15563)fix: start param for wf not work (#15544)fix: ddl without drop exists (#14128)fix switch js (#15487)fix: data quality can not use (#15551)Fix createFile with permission will not work (#15556)Bug force success add end time (#15144)Bug fix 'MACPATTERN' in ProcessUtils and cover all cases on MacOS in ProcessUtilsTest (#15480)Fix TaskGroupQueue will never be wakeup due to wakeup failed at one time (#15528)Exit JVM when OOM (#15538)Fix exception occur in RpcServer side, it will not be sent to RpcClient (#15536)front: When you edit a task in the task definition list, the front task list is displayed (#12819)[Fix] [Bug] Change default version of Workflow/TaskDefinition to 1 (#15498)[Bug] Fix a bug,  When the worker service offline, workerNodeInfo cache in master cannot delete the offline worker (#15459)fix workflow will have same updatetime when import (#14810)[BUG] #15013 Fix retryInterval in RetryPolicy will never be used in RetryUtils (#15014)Throw IllegalArgumentException if parse time placeholder error (#15514)Fix PostgresqlDatabaseContainerProvider get Image is incorrect (#15434)Bug Fix NPE when deleting a workflow instance (#15485)Directly Throw exception when taskInstancy log path is empty which log need to be queried (#15511)Fix notify failover WorkflowInstance will cause NPE (#15499)[HotFix] Fix createTaskInstanceWorkingDirectory failed if the old path exist (#15377)[bug] Exception when using host in ipv6 format (#14040)Bugserial_wait strategy workflow unable to wake up (#15270)BUG fix java task classpath (#15470)[Bug] [Audit log] Fix Audit log UI query error (#15427)Bug Optimizing waiting strategy (#15223)Set TaskGroupQueue updateTime when force start (#15510)TaskGroupPriority only compare When TaskGroup is same (#15486)Remove taskQueue and looper in worker (#15292)Display the resource file doesn't exist message in task create page (#15350)Recreate new TaskInstance Working Directory when exist in worker (#15358)[Bug] Close SSH session after remote shell finish (#15348)Fix check value rather than key in AbstractDataSourceProcessor#checkOther (#15351)Fix resource file usage(Delete Resource/ResourceUser which is deprecated)Bug send ACK event timeout (#15346)Fix k8sTaskExecutionContext setting configYaml (#15116)[Fix #15129] [Dependent] The date rules of the dependent node are ambiguous. (#15289)Fix failover Master might not release taskGroup (#15287)[HotFix] Fix TaskOutputParameterParser might OOM if meed a bad output param expression (#15264)Bug-15215 non-admin should not modify tenantId and queue (#15254)Set the tenant as the owner in final stage (#15256)Use chown to set the file owner (#15240)[Fix] Change HTTP plugin timeout param to number type (#15234)fix switch condition (#15228)Fix docs style is incorrect by CI pass (#15167)Expire session when update user password (#15219)Fix home page workflow instance miss status (#15193)fix security issue (#15192)fix can't stop bug (#15191)Remove API Result in Service (#15181)Exclude DataSourceAutoConfiguration in worker server (#15169)[Bug] Fix TriggerRelationMapper cannot work due to miss DatabaseIdProvider (#15153)Fix spotless (#15164)Fix incorrect button display text (#15160)Fix Change t_ds_dq_rule_input_entry field name fix PostgreSQL not support value issue (#14992)fix missing 'KYUUBI' in droplist of datasource (#15140)[Bug] Fix endless loop (#15092)fix: execute sql error: datasource plugin 'doris' is not found。 (#15123)Fix confusing constant string for unit convertor (#15126)[fix-#11726] fix error when set connection proerty both in the URL and an argument (#15093)Fix-15072 Non-admin user can not query resource recursively (#15097)E2E Fix k8s-e2e (#15098)Fix SqlTask cannot split the given sql when browser in windows (#15062)[Fix-15036] [API] Fix task definition edit doesn't work (#14801)remove sub workflow finish notify (#15057)Fix missing Kyuubi type in UI (#15051)Fix-14885 fix spotless format file path (#14889)Fix When the task instance status is 'STOP' (#14967)Revert "[Bug] [Resource] fix resource delete bug (#15003)[Bug] [Resource] fix resource delete bug (#15003)Delete File generated by UT (#15022)Improvement[Improvement][UT] Improve Worker registry coverage (#15380)refactor comments & function name for confuse (#15546)[Improvement][HTTP] support custom rendering of http body (#15531)[improvement][api] Fix typo for controllers (#15438)[Feature-15475][DinkyTask] DinkyTask supports Dinky-1.0.0 and common sql (#15479)[Improvement][K8S]Optimize MDC for K8S tasks (#15390)Enable set ServerLoadProtection fot Master/Worker (#15439)[Feature] timed scheduler Improvement (#15449)[Improvement][E2E] add e2e javatask case (#15469)[Enhancement][API]Enhance mysql connection properties (#15433)[Improvement][E2E]e2e improve  add workflow httpTask e2e case (#15420)Add config for defaultTenantEnabled (#15391)Use DefaultUncaughtExceptionHandler to log the uncached exception (#15496)adjust the sequence of alarm group and add validate (#15382)Use Druid to split sql (#15367)optimize add select filter (#15378)[Improvement][Helm] using helm-docs to generate docs automatically (#15299)[Improvement][K8S] Custom label of a K8S task can be passed to the pod (#15369)Optimize server startup log (#15362)[Improvement][E2E] support e2e compose v2 fix code style (#15325)[Improvement] Ensure that HttpUtils can only get result from certification URL (#15288)delete debugger (#15316)Set maxRows in SqlTask (#15342)[Feature-15146][dolphinscheduler-task-sqoop] add sqoop source/target type (#15146)[Feature-15248][dolphinscheduler-alert-plugins] add alert plugin aliyun-voice (#15248)[Improvement-15260][dolphinscheduler-datasource-hana] add hana  related dependencies (#15260)fail-fast for dependent check (#15197)[Improvement] Move delay calculation to Master (#15278)Add dolphinscheduler-extract-common module (#15266)Support parse task output params under multiple log (#15244)[Improvement-15009][Parameter] Change project parameter value to text (#15010)Remove spring cache for dao (#15184)[Improvement] Clean up Scheduler logic (#15198)[Improvement][Alert] Add a test send feature when creating an alert instance (#15163)[Improvement][Helm] support task type filter (#15179)[Improvement][Resource Center] Display brief file name in file-details page (#15137)[Improvement][Alert] Add timeout params for HTTP plugin (#15174)[feature#14654] alert-spi support prometheus alertmanager (#15079)[Improvement][K8S] Remove ResourceQuota (#14991)[Improvement] Refactoring K8S task plugin with connections managed in connection center (#14977)[DSIP-19] Support sagemaker connections in the connection center, as well as external connections to the connection center in sagemaker tasks (#14976)[DSIP-19] Support zeppelin connections in the connection center, as well as external connections to the connection center in zeppelin tasks (#14434)[Feature-14832][Listener]Implementation of Listener Mechanism (#14981)Remove mapper usage in tools (#15073)[Feature-14678][Master][UI]Dependent task parameter passing (#14702)Add IT for mysql5/postgresql16 initialize/upgrade (#15063)Add IT for dolphinscheduler-tools module (#15043)Set kubectl version to v1.28.3 (#15053)Add dolphinscheduler-dao-plugin module (#15019)[improvement][Resources] Improve details page return to the previous list page (#14951)[Improvement][Alert] Alert plugin enhance fail message (#15024)[Improvement][Registry][Jdbc] Add jdbc registry config in helm charts (#14431)[Improvement][Master] Calculate the remainTime then we set the delay execution. (#15012)Document[Doc][Docker] fix typo on start with docker (#15534)[Doc] remove skywalking, update note (#15028)Change download url in backend.yml (#15526)[Doc][K8S] Add DS K8S Operator into k8s deployment character (#15516)Add guideline link into DolphinScheduler mail list (#15447)Remove unused cache-evict.png (#15220)[Doc-15500][Task] Update cli opts of spark and flink (#15501)doc write wrong,should be MinIO it's not MinION (#15395)[Doc]remove temporary markdown comments (#15385)doc: Classify docs to avoid misleading (#15282)Add deploy on Terraform on README (#15189)Modify the documentation that python task will not work properly when '\n' indicates the presence of a variable and needs to use 'repr(value)' (#15145)[Docs] fix typo (#15032)Choremerge schema 330 into 321 and change docs (#15582)Set the workflow instance ready state to running in failover (#15572)cp: Reduce the size of tarball to continue ASF release (#15004)chore: Docs change for 3.2.1 release (#15539)[DS-15489][style]rename the vo object suffix (#15504)致谢感激所有贡献者的辛勤付出,特地是以下成员(排名不分先后): ...

February 21, 2024 · 6 min · jiezi

关于数据库:利用IP地址查询具体位置方法应用和隐私考量

<article class=“article fmt article-content”><p>摘要:<br/>IP地址作为互联网上设施的惟一标识,其具体位置信息对于网络管理、个性化服务以及安全监控等方面都具备重要意义。IP数据云将探讨利用IP地址查问具体位置的办法和技术,以及相干的利用场景和隐衷爱护思考,旨在为读者提供全面的理解和利用领导。</p><ol><li>引言<br/>在网络世界中,理解IP地址的具体位置信息是实现精准定位和个性化服务的重要根底。利用IP地址查问具体位置的技术曾经成熟,并在各个领域失去广泛应用。本文将介绍该技术的办法、利用以及相干的隐衷考量。</li><li>办法和技术<br/>利用IP地址查问具体位置的办法和技术次要包含以下几种:</li><li>IP地址数据库:通过查问IP地址与地理位置的映射关系,从寰球范畴的IP地址数据库中获取具体位置信息。</li><li>地理位置标记技术:利用地理位置标记技术(如GPS、Wi-Fi、基站定位等)获取设施的实时地理位置信息。</li><li>数据交融与算法优化:将多种数据源和算法进行交融,通过数据挖掘和机器学习等技术优化查问后果的准确度和精度。<br/></li><li>利用场景<br/>利用<strong>IP地址查问</strong>具体位置的技术在各个领域都有宽泛的利用,次要包含以下几个方面:</li><li>网络管理与安全监控:实现对网络设备和用户地位的监控和治理,进步网络安全性和运行效率。</li><li>个性化服务:基于用户地位信息提供个性化的服务,如本地化举荐、地位导航等,晋升用户体验。</li><li>广告投放与市场剖析:依据用户地位信息进行精准的广告投放和市场剖析,进步广告投放的成果和精准度。<br/>利用IP地址查问具体位置的技术在实现精准定位和个性化服务方面施展着重要作用,但也须要兼顾用户隐衷平安。通过正当利用技术办法、严格爱护用户隐衷,能够更好地实现技术的价值,为社会和集体带来更多的便当和平安保障。</li></ol></article>

February 20, 2024 · 1 min · jiezi

关于数据库:分布式场景怎么Join-京东云技术团队

<article class=“article fmt article-content”><h2>背景</h2><p>最近在浏览查问优化器的论文,发现<strong>System R</strong>中对于Join操作的定义个别分为了两种,即嵌套循环、排序-合并联接。在原文中,更偏向应用排序-合并联接逻辑。</p><p>思考到我的畛域是在解决分库分表或者其余的分区模式,这让我开始不由得联想咱们怎么在分布式场景利用这个Join逻辑,对于两个不同库外面的不同表咱们是没有方法间接进行Join操作的。查阅材料后发现原来早有定义,即分布式联接算法。</p><h2>分布式联接算法</h2><p>跨界点解决数据即分布式联接算法,常见的有四种模型:Shuffle Join(洗牌联接)、Broadcast Join(播送联接)、MapReduce Join(MapReduce联接)、Sort-Merge Join(排序-合并联接)。</p><p>接下来将进行逐个理解与剖析,以便后续开发的利用。</p><h3>Shuffle Join(洗牌联接)</h3><p>先上原理解释:</p><blockquote>Shuffle Join的核心思想是将来自不同节点的数据从新散发(洗牌),使得能够联接的数据行最终位于同一个节点上。 通常,对于要联接的两个表,会对联接键利用雷同的哈希函数,哈希函数的后果决定了数据行应该被发送到哪个节点。这样,所有具备雷同哈希值的行都会被送到同一个节点,而后在该节点上执行联接操作。</blockquote><p>可能解释完还是有点含糊,举个例子,有两张表,别离以id字段进行分库操作,且哈希算法雷同(为了简略,这里只介绍分库场景,分库分表同理。算法有很多种,这里举例是hash算法),那么这两张表的分片或者能够在同一个物理库中,这样咱们不须要做大表维度的解决,咱们能够间接下推Join操作到对应的物理库操作即可。</p><p>在ShardingSphere中,这种场景相似于绑定表的定义,如果两张表的算法雷同,能够间接配置绑定表的关系,进行雷同算法的连贯查问,防止简单的笛卡尔积。</p><p>这样做的益处是能够尽量下推到数据库操作,在中间件层面咱们能够做并行处理,适宜大规模的数据操作。</p><p>然而,这很现实,有多少表会采纳雷同算法解决呢。</p><h3>Broadcast Join(播送联接)</h3><p>先上原理解释:</p><blockquote>当一个表的大小绝对较小时,能够将这个小表的全副数据播送到所有蕴含另一个表数据的节点上。 每个节点上都有小表的残缺正本,因而能够独立地与本地的大表数据进行联接操作,而不须要跨节点通信。</blockquote><p>举个例子,有一张十分小的表A,还有一张依照ID分片的表B,咱们能够在每一个物理库中复制一份表A,这样咱们的Join操作就能够间接下推到每一个数据库操作了。</p><p>这种状况比Shuffle Join甚至还有性能高效,这种相似于ShardingSphere中的播送表的定义,其存在相似于字典表,在每一个数据库都同时存在一份,每次写入会同步到多个节点。</p><p>这种操作的益处不言而喻,不仅反对并行操作而且性能极佳。</p><p>然而毛病也不言而喻,如果小表不够小数据冗余不说,播送可能会耗费大量的网络带宽和资源。</p><h3>MapReduce Join(MapReduce联接)</h3><p>先上原理解释:</p><blockquote>MapReduce是一种编程模型,用于解决和生成大数据集,其中的联接操作能够分为两个阶段:Map阶段和Reduce阶段。 Map阶段:每个节点读取其数据分片,并对须要联接的键值对利用一个映射函数,生成两头键值对。 Reduce阶段: 两头键值对会依据键进行排序(在某些实现中排序产生在Shuffle阶段)和分组,而后发送到Reduce节点。 在Reduce节点上,具备雷同键的所有值都会汇集在一起,这时就能够执行联接操作。</blockquote><p>MapReduce Join不间接利用于传统数据库逻辑,而是实用于Hadoop这样的分布式解决零碎中。然而为了不便了解,还是用SQL语言来剖析,例如一条SQL:</p><pre><code>SELECT orders.order_id, orders.date, customers.nameFROM ordersJOIN customers ON orders.customer_id = customers.customer_id;</code></pre><p>会被转换为两个SQL:</p><pre><code>SELECT customer_id, order_id, date FROM orders;SELECT customer_id, name FROM customers;</code></pre><p>这个过程就是Map阶段,即读取<code>orders</code>和<code>customers</code>表的数据,并为每条记录输入键值对,键是<code>customer_id</code>,值是记录的其余部分。</p><p>下一个阶段可有可无,即Shuffle阶段。如果不在这里排序可能会在Map阶段执行SQL时候排序/分组或者在接下来的Reduce阶段进行额定排序/分组。在这个阶段次要将收集到的数据依照customer_id排序分组,以确保雷同的customer_id的数据达到Reduce阶段。</p><p>Reduce阶段将每个对应的customer_id进行联接操作,输入并返回最初的后果。</p><p>这种操作广泛利用于两个算法齐全不雷同的表单,也是一种规范的解决模型,在这个过程中,咱们以一张逻辑表的维度进行操作。这种算法可能会耗费大量内存,甚至导致内存溢出,并且在解决大数据量时会相当耗时,因而不适宜须要低提早的场景。</p><h4>额定补充</h4><p>内存溢出场景广泛在如下场景:</p><p>1.大键值对数量:如果Map阶段产生了大量的键值对,这些数据须要在内存中进行缓存以进行排序和传输,这可能会耗费大量内存。</p><p>2.数据歪斜:如果某个键十分常见,而其余键则不那么常见,那么解决这个键的Reducer可能会接管到大量的数据,导致内存不足。这种景象称为数据歪斜。</p><p>3.大值列表:在Reduce阶段,如果某个键对应的值列表十分长,解决这些值可能会须要很多内存。</p><p>4.不合理的并行度:如果Reduce工作的数量设置得不适合(太少或太多),可能会导致单个工作解决不平均,从而导致内存问题。</p><p>我能想到的相应解决方案:</p><p>•内存到磁盘的溢写:当Map工作的输入缓冲区满了,它会将数据溢写到磁盘。这有助于限度内存应用,但会减少I/O开销。</p><p>•通过设置适合的Map和Reduce工作数量,能够更无效地分配资源,防止某些工作过载。具体操作能够将Map操作的分段比方1~100,100~200,Reduce阶段开设较少的并发解决。</p><p>•优化数据分布,比方应用范畴分区(range partitioning)或哈希分区(hash partitioning)来缩小数据歪斜。</p><h3>Sort-Merge Join(排序-合并联接)</h3><p>先上原理解释:</p><blockquote>在分布式环境中,Sort-Merge Join首先在每个节点上对数据进行部分排序,而后将排序后的数据合并起来,最初在合并的数据上执行联接操作。 这通常波及到多阶段解决,包含部分排序、数据洗牌(从新散发),以及最终的排序和合并。</blockquote><p>举个了解,还是下面的SQL。</p><pre><code>SELECT orders.order_id, orders.date, customers.nameFROM ordersJOIN customers ON orders.customer_id = customers.customer_id;</code></pre><p>1.对<code>orders</code>表按<code>customer_id</code>进行排序。</p><p>2.对<code>customers</code>表按<code>customer_id</code>进行排序。</p><p>3.同时遍历两个已排序的表,将具备雷同<code>customer_id</code>的行配对。</p><p>这个就有点相似于原生的排序-合并联接了。也是数据库场景的规范解决方法。</p><p>对于曾经排序的数据集或数据分布平均的状况,这种办法十分无效。如果数据未事后排序,这种办法可能会十分慢,因为它要求数据在联接之前进行排序。</p><p>当然,这个算法也会造成内存溢出的场景,解决方案如下:</p><p>1.当数据集太大而无奈一次性加载到内存中时,能够应用内部排序算法。内部排序算法会将数据宰割成多个批次,每个批次独自排序,而后将排序后的批次合并。这种办法通常波及到磁盘I/O操作,因而会比内存中操作慢。</p><p>2.对于合并步骤,能够应用流式解决技术,一次只解决数据的一小部分,并继续将后果输入到下一个解决步骤或存储系统。这样能够防止一次性加载大量数据到内存中。</p><p>3.当内存不足以解决数据时,能够应用磁盘空间作为长期存储。数据库管理系统通常有机制来解决内存溢出,比方创立磁盘上的临时文件来存储过程中的数据。</p><p>4.在分布式系统中,能够将数据扩散到多个节点上进行解决,这样每个节点只须要解决数据的一部分,从而缩小单个节点上的内存压力。</p><p>作者:京东科技 张豪杰</p><p>起源:京东云开发者社区 转载请注明起源</p></article>

February 20, 2024 · 1 min · jiezi

关于数据库:如何应对日益严峻的数据安全问题

<article class=“article fmt article-content”><p>大家好我是咕噜美乐蒂,很快乐又和大家见面了!上面我就和大家一起来理解一下如何应答日益严厉的数据安全问题。<br/>面对日益严厉的数据安全问题,各行各业都须要采取踊跃无效的措施来爱护数据的安全性和隐衷性。在当今信息化社会,数据曾经成为企业和集体最贵重的资产之一,因而数据安全问题的重要性显而易见。本文将从数据安全问题的现状、挑战和解决方案等方面展开讨论,以期为读者提供深刻理解和应答数据安全问题的思路和办法。<br/>第一局部:数据安全问题的现状与挑战<br/>随着互联网技术的迅猛发展和遍及,大数据时代曾经到来,数据量一直增长,数据的价值也愈发凸显。然而,与此同时,数据安全问题也日益严厉,呈现出以下几个次要挑战:<br/>1.数据泄露危险:数据泄露是以后数据安全面临的最大威逼之一。黑客攻击、外部员工错误操作、第三方服务商安全漏洞等起因都可能导致数据泄露,给企业和集体带来巨大损失。<br/>2.数据篡改危险:数据篡改是另一个常见的数据安全问题。一旦数据被篡改,可能导致信息不精确、误导决策等结果,重大影响企业的失常运行和用户的利益。<br/>3.数据存储与传输平安:数据在存储和传输过程中容易受到攻打和窃取,特地是在云计算、物联网等新兴技术利用中,数据的安全性面临更大挑战。<br/>4.法律合规需要:随着国家对数据安全法律法规的不断完善和强化,企业须要更加器重数据安全合规性,否则将面临法律危险和处罚。<br/>第二局部:应答数据安全问题的解决方案<br/>为了无效防备和解决数据安全问题,企业和集体能够采取以下措施:<br/>1.强化网络安全意识:增强员工的网络安全意识培训,进步其对数据安全的器重和警惕性,缩小因人为因素导致的数据泄露危险。<br/>2.增强系统安全防护:部署防火墙、入侵检测零碎、数据加密等安全措施,保障系统和数据的安全性,避免黑客攻击和恶意软件感化。<br/>3.定期备份数据:建设欠缺的数据备份机制,定期对重要数据进行备份,以防数据失落或蒙受勒索软件攻打时可能及时复原数据。<br/>4.增强权限治理:正当调配用户权限,限度用户对敏感数据的拜访和操作权限,避免内部人员滥用权限导致数据泄露危险。<br/>5.施行数据加密:对敏感数据进行加密解决,进步数据的安全性,即便数据被盗取也难以解密获取无效信息。<br/>6.定期安全漏洞扫描:定期进行安全漏洞扫描和破绽修复,及时发现和排除零碎和应用程序的安全隐患,进步零碎的整体安全性。<br/>7.恪守数据安全法规:严格遵守数据安全相干法律法规,确保企业数据处理非法合规,防止因数据安全问题而蒙受法律危险和处罚。<br/>结语:<br/>数据安全问题是以后信息社会面临的重要挑战之一,解决数据安全问题须要全社会共同努力,企业和集体都该当高度重视数据安全,采取有效措施爱护数据的安全性和隐衷性。通过增强网络安全意识培训、强化系统安全防护、定期备份数据、增强权限治理、施行数据加密、定期安全漏洞扫描和恪守数据安全法规等形式,能够有效应对数据安全问题,保障企业和集体数据的平安。心愿本文对读者有所启发,独特构建一个更加平安、牢靠的数据环境。<br/>好啦,明天美乐蒂就和大家分享到这里啦,小伙伴们有更好的方法能够在评论区打进去哦~~以便大家更不便地操作呢。</p></article>

February 20, 2024 · 1 min · jiezi

关于数据库:统信操作系统下数据库管理利器

<article class=“article fmt article-content”><p>PL/SQL是一款荷兰公司开发的数据库管理软件,只管只反对Oracle一种数据库,然而在这一种数据库的反对上深度耕耘了30年,做到了Oracle治理的极致,从而拥有量海量的用户。<br/>当然,随着工夫的推移,PL/SQL也呈现了一些有余:<br/>1.不反对Linux原生平台,更不反对ARM芯片;<br/>2.必须装置Oracle客户端;<br/>3.仅仅反对Oracle一种数据库。<br/>Navicat是一款美国公司开发的通用型数据库管理工具。最大特点:简略易用、反对平台宽泛(Oracle、Mysql、SqlServer、PG)。<br/>Navicat在性能上也有很多有余,比方查问窗口没有手动提交模式、对于大表查询卡死等等,另外也不反对DB2数据库。国外支流数据管理工具次要运行于以Intel的X86芯片的微软Window系列操作系统,并没有对国产数据库的反对。<br/>在国产信创化的趋势下,本公司研发出的恒辉通用数据库治理桌面软件(以下简称HHDBCS)不仅反对支流国外数据库连贯,包含Oracle、Mysql、PostgreSQL、SqlServer、DB2、Redis、Hive、MariaDB等,也反对国内大多数数据库,包含国产芯片、操作系统和数据库。<br/>HHDBCS全面反对国产化生态,满足用户日常运维的工作需要。<br/><br/>HHDBCS登录界面及数据库反对类型</p><p>HHDBCS作为一款通用的数据库管理工具,专为简化数据库的治理及数据管理老本而设计,能让用户通过对立的桌面视图治理成千上万的异构数据库实例。能够说HHDBCS就是专门为实用国人应用习惯、适宜异构数据库环境而定制打造的通用型桌面数据库管理工具,其性能层面曾经达到和国外数据库管理工具直面竞争的水平。<br/>本篇以统信UOS国产操作系统为例,介绍数据库治理利器——HHDBCS的次要性能及应用。</p><h2>1.软件装置</h2><p>统信利用商店搜寻HHDBCS,点击装置(如果没有装置,红框地位的按钮显示为装置),一键实现。<br/><br/>装置实现后,图标会呈现在桌面,双击关上即可收费应用。<br/><br/>笔者本机操作系统及版本号配置如下图所示:<br/></p><h2>2.登陆及连贯治理</h2><h3>2.1. 登陆数据库</h3><p>关上HHDBCS,抉择任意数据库(此次以oracle为例),填写用户信息;<br/><br/>参考如下:<br/><br/>认点击登陆,即可进入首页。</p><h3>2.2. 切换连贯</h3><p>在首页点击“连贯治理”,可在弹出框中切换连贯;<br/><br/>右键抉择“导出”,可导出数据库连贯信息。<br/><br/>导出后生成一个xlsx文件,可在文件夹中查看文件。<br/></p><h3>2.3. 资源锁定</h3><p>可对连贯进行锁定,设置明码后;<br/><br/>之后须要输出明码能力查看及操作连贯。<br/></p><h2>3.视图治理</h2><p>HHDBCS反对“用户视图”与“高级视图”,两种界面维度能够在登录界面进行抉择登录。用户视图:能够查看数据库模式、表、视图、函数、序列等对象并进行操作。高级视图:管理员视图,能够治理数据库,表空间,用户等。3.1. 高级视图高级视图适宜管理员数据库用户。应用“高级视图”登录之后,进入主界面:<br/><br/>可对用户、角色及表空间进行操作;<br/></p><p></p><p></p><h2>3.2. 用户视图</h2><p>“用户视图”适宜一般数据库用户。“用户视图”登录后,界面如下图所示:<br/></p><h2>4.监控治理</h2><p>可清晰的查看过程,理解应用状况;<br/><br/>点击“完结过程”,可对改过程进行完结操作。<br/><br/>右键过程可进行复制/重置。<br/></p><h2>5.工作治理</h2><p>抉择需增加的工作,点击新增;<br/></p><p><br/>在弹出框中抉择各个选项,点击确定;<br/><br/>可随时对工作进行进行、查看等操作,也可查看日志。<br/></p><h2>6.对象搜寻</h2><p>对象搜寻性能能轻松搜寻到数据库对象并对其进行相应操作。点击导航栏“对象搜寻”按钮,弹出查找界面,输出查找的名称,点击“查问”按钮。<br/><br/>可抉择模式:<br/></p><h2>7.过程调试</h2><p>调试是排查bug的罕用办法,HHDBCS提供了一整套的存储过程调试性能,能够帮忙咱们疾速地定位存储过程中的谬误。备注:调试是一项须要高特权的操作,因而只容许 sys、admin 固定服务器角色成员进行调试。可间接点击首页“过程调试”进行;<br/><br/>也可在树形构造中右键——增加调试信息;随后右键——调试;弹出对话框:<br/></p><p><br/>点击调试,按钮激活;<br/><br/>下一行、下一断点,可对语句进行抉择;<br/><br/>点击进入,可关上该节点;<br/></p><p><br/>在局部变量选项中,可对变量进行新增/删除。<br/><br/>点击进行则进行调试。8.语句窗口输出语句,点击执行即可实现命令;<br/><br/>剖析性能,作为辅助性能,不便用户。<br/></p><p><br/>加载性能,可间接导入文件;<br/><br/>设置窗口可依据集体习惯,和语句进行设置。<br/><br/>敞开窗口时,会自动弹出对话框,揭示是否保留,避免误关影响效率。<br/></p><h2>9.命令窗口</h2><p>点击命令窗口,能够对数据库收回指令;<br/><br/>依据集体习惯,能够对命令窗口进行设置;<br/><br/>还能够抉择各种格局;<br/><br/>点击“+”,能够间接新建/调用脚本。<br/></p><h2>10.快捷窗口</h2><p>点击快捷窗口,弹出界面;<br/><br/>对于常用命令有具体的解释,以及应用操作阐明,<br/><br/>输出命令,点击执行即可。<br/></p><h2>11.模板窗口</h2><p>该性能极大节约了用户的工夫精力,依据提醒ctrl+h弹出模板框,抉择须要的命令;<br/><br/>点击执行,下方框内显示执行后果;<br/><br/>复制后果到语句框,点击执行,即可批量执行命令。<br/><br/>在树形构造中可查看。<br/></p><h2>12.平铺窗口</h2><p>平铺窗口,能够在同一页面内浏览多个窗口,有助于思维逻辑的连贯性。<br/><br/>可对窗口进行横向/纵向拆分,并对拆分的窗口进行抉择;<br/><br/>点击预览,会弹出新的窗口;每个窗口能够独立实现工作。右下角的共享窗口,则能够间接新建工作,点击新增工作即可。此时各个窗口状况高深莫测,能够很不便的浏览各个工作,同时进行监控及解决。<br/></p><h2>13.用户模式</h2><p>HHDBCS具备快捷切换用户性能,不便用户切换权限;树形构造上方,点击模式;<br/><br/>在弹出框中点击“是”,即可切换权限用户。<br/><br/>在数据库列表,可查看用户名。<br/></p><h2>14.树形构造</h2><p>HHDBCS树形结构设计,对性能进行演绎汇整,用户在应用时更加直观;双击对象,后面呈现“+”;<br/><br/>点击即可关上树形构造框架;<br/><br/>右键可进行操作。<br/></p><h2>15.总结</h2><p>随着大数据时代的到来,大多数人都能意识到,大数据的利用可能大幅的晋升工作效率,实现许多人力所不能及的工作。<br/>但数据库的应用须要不低的门槛——这成为了一条鸿沟,使许多用户不能超越。<br/>而恒辉人始终认为,技术该当服务于公众,好的货色不应遥不可及。如果有,那么咱们就搭一个楼梯、一个高台,让大家能轻松地拾阶而上,开启新大门。<br/>HHDBCS便是恒辉人的多年心血。它不仅反对支流国外数据库连贯,包含Oracle、Mysql、PostgreSQL、SqlServer、DB2、Redis、Hive、MariaDB等,也反对国内大多数数据库,以及国内外各种支流操作系统。<br/>应用HHDBCS,能够疾速轻松地创立、治理和保护各种国内外数据库:<br/><br/>运行环境:<br/><br/>HHDBCS具备图形化界面、可视化操作,以及本文所介绍的诸多性能,服务于用户,晋升工作效率,节约用户的精力和工夫。<br/>而咱们也将一直致力开发新性能,期待HHDBCS可能帮忙所有须要的人轻松驾驭数据库。</p></article>

February 20, 2024 · 1 min · jiezi

关于数据库:Apache-SeaTunnel本地源码构建编译运行调试

<article class=“article fmt article-content”><h2>1. 环境筹备</h2><p>本文应用的是windows10-64位专业版的电脑,须要装置环境如下</p><h3>1.1 Java环境</h3><p>jdk>=1.8 - 64 位的jdk、</p><h3>1.2 Maven</h3><p>应用的是idea自带的maven,最好是装置一个不便源码编译构建,应用idea自带的maven无奈执行mvnw,然而能够复制mvnw前面的在idea的maven中的run maven中的new goal外面执行即可。</p><h3>1.3 IDEA</h3><p>代码编辑调试运行器</p><h3>1.4 Docker环境</h3><p>mysql8.0.28的装置是应用docker装置部署</p><h3>1.5 Mysql8.0.28</h3><p>Docker部署Mysql5.7x和Myslq8.x</p><pre><code>https://mp.weixin.qq.com/s/5PC_VXtNc8689ag8b8cYLA</code></pre><p>以上那几个步骤省略</p><h3>1.6 其它环境筹备</h3><p>还须要如下的如下环境:</p><p>Windows10装置Node.js环境</p><pre><code>https://mp.weixin.qq.com/s/qHHcbl6AMmdEbZLKnhz_tA</code></pre><p>Windows10装置Hadoop3.1.3环境</p><pre><code>https://mp.weixin.qq.com/s/BaXK0dMu4whOrnKQbb6G-A</code></pre><p>Windows10之wsl-Linux子系统装置JDK、Maven环境</p><pre><code>https://mp.weixin.qq.com/s/Lq30469wZgikM72s8tv1ZA</code></pre><p>在浏览本文须要对Apache SeaTunne有一点理解</p><p>Apache SeaTunne简介</p><pre><code>https://mp.weixin.qq.com/s/uHZ-29OF-NawOL4oZW6z2A</code></pre><h2>2. 源码包下载</h2><pre><code>https://seatunnel.apache.org/downloadhttps://github.com/apache/seatunnelhttps://github.com/apache/seatunnel-web</code></pre><p>seatunnel能够在官网的download下载源码包或者在github上下载tag2.3.3包,不要下载2.3.3-release,不要下载xxx-release的分支,就拿2.3.3-release分支来说,外面的我的项目版本有2.3.3、又有2.3.4的版本,我的项目模块之前的版本不对立,就会导致编译版本抵触,下载tag中的2.3.3或者是download源码<strong>Source Code</strong>包,本文应用的tag2.3.3的包来本地编译构建运行的,应用2.3.3-release分支版本不对立导致抵触,我狐疑这个2.3.3-release分支预计是他们的开发分支,所以这里是须要留神的,不然很难在本地搞起来,seatunnel-web我的项目拉取的是1.0.0-release分支的代码。</p><h2>3. idea我的项目配置</h2><h3>3.1 我的项目导入</h3><p>seatunnel解压门路如下:</p><p></p><p>seatunnel-web门路如下:</p><pre><code>git clone https://github.com/apache/seatunnel-web.gitgit checkout 1.0.0-release或者应用git拉取,git环境可要可不要</code></pre><p></p><h3>3.2 maven配置</h3><p>setting.xml配置</p><p>配置成阿里的maven仓库不便编译构建是下载拉取我的项目所需的依赖包</p><pre><code class=“xml”> <localRepository>D:\developer\repository</localRepository> <!–改为本人的本地maven仓库的门路即可–><mirrors> <mirror> <id>aliyunmaven</id> <mirrorOf></mirrorOf> <name>阿里云公共仓库</name> <url>https://maven.aliyun.com/repository/public</url> </mirror> <mirror> <id>aliyunmaven2</id> <mirrorOf></mirrorOf> <name>阿里云公共仓库2</name> <url>https://maven.aliyun.com/repository/apache-snapshots</url> </mirror> <mirror> <id>aliyunmaven3</id> <mirrorOf>*</mirrorOf> <name>阿里云公共仓库3</name> <url>https://maven.aliyun.com/repository/central</url> </mirror> </mirrors></code></pre><p>idaea的maven配置</p><p></p><p>两个我的项目都是这种配置,这里抉择一个演示即可。</p><h3>3.3 我的项目JDK配置</h3><p></p><p></p><p>在project和SDKs选项中抉择配置下jdk,两个我的项目都是这种配置,这里抉择一个演示即可。</p><h3>3.4 我的项目启动参数配置</h3><h4>3.4.1 seatunnel我的项目启动参数配置</h4><p></p><p>jvm参数如下:编译的压缩包的解压门路</p><pre><code>-DSEATUNNEL_HOME=D:\developer\other-code\other\seatunnel\seatunnel-dist\target\apache-seatunnel-2.3.3</code></pre><p></p><p>我的项目编译后会输入到seatunnel-dist的target下</p><h4>3.4.2 seatunnel-web我的项目启动参数配置</h4><p></p><p></p><p>jvm参数和环境变量如下:</p><pre><code>jvm参数-DSEATUNNEL_HOME=D:\developer\other-code\other\seatunnel\seatunnel-dist\target\apache-sea环境变量ST_WEB_BASEDIR_PATH=D:\developer\other-code\other\seatunnel-web\seatunnel-web-dist\target\apache-seatunnel-web-1.0.1-SNAPSHOT\apache-seatunnel-web-1.0.1-SNAPSHOT</code></pre><p>我的项目编译后会输入到seatunnel-web-dist的target下</p><h2>4. 源码编译运行</h2><h3>4.1 sql脚本执行</h3><p>脚本如下,复制进去执行即可:</p><p></p><p>数据库执行如下:</p><p></p><h3>4.2 编译构建</h3><h4>4.2.1 seatunnel编译构建</h4><p>jindodata先关的jar须要自行下载导入,在seatunnel-connectors-v2–>connector-file–>connector-file-jindo-oss的pom文件批改依赖如下:</p><pre><code class=“xml”> <dependency> <groupId>com.aliyun.jindodata</groupId> <artifactId>jindo-core</artifactId> <version>${jindo-sdk.version}</version> <scope>system</scope> <systemPath>${project.basedir}/src/main/resources/lib/jindo-core-4.6.1.jar</systemPath> </dependency> <dependency> <groupId>com.aliyun.jindodata</groupId> <artifactId>jindosdk</artifactId> <version>${jindo-sdk.version}</version> <scope>system</scope> <systemPath>${project.basedir}/src/main/resources/lib/jindo-sdk-4.6.1.jar</systemPath> </dependency> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>2.4.2</version> <configuration> <includeSystemScope>true</includeSystemScope> </configuration> </plugin> </plugins> </build></code></pre><p>引入jindodata相干的本地依赖和打包插件,jindodata相干包会在文末分享给大家</p><p></p><p>批改seatunnel-hadoop3-3.1.4-uber的maven如下:</p><p></p><p>该包如果不批改间接引入会导致上面的类死活依赖不到,前面将改包放入到taget的解压门路下的lib外面不失效导致报错如下:</p><p></p><p>退出mysql8.x的连贯驱动包,这里不加的话,能够在解压的target目录下的lib中把这个jar包放进去,因为本文要进行的是mysql-jdbc—>mysql-jdbc的单表数据同步,所以须要这个jar包</p><p></p><p>seatunnel.yaml配置,这个根本默认即可</p><p></p><p>如果下载的是release领取的包或代码,须要在整个我的项目的pom中退出如下的配置:</p><pre><code class=“xml”> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-gpg-plugin</artifactId> <version>3.0.1</version> <executions> <execution> <id>sign-artifacts</id> <phase>verify</phase> <goals> <goal>sign</goal> </goals> </execution> </executions> <configuration> <skip>true</skip> </configuration> </plugin></code></pre><p>改插件配置是或略打包时候的gpg签名校验,不然会编译不通过,好多开源正规的我的项目都有这种签名校验的,所以须要退出这个插件才能够编译通过</p><h4>4.2.3 seatunnel-web编译构建</h4><p>seatunnel-server–>seatunnel-app–>pom退出mysql8.x的连贯驱动包,能够应用8.0.28的包</p><pre><code class=“xml”> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.33</version> </dependency></code></pre><p>批改seatunnel-app下的application.yml</p><p></p><p>将seatunnel我的项目外面编译到seatunnel-dist下target外面的解压文件外面的的hazelcast-client.yaml文件和connectors文件下的plugin-mapping.properties(这个文件曾经蕴含了,能够批改,正文外面的一些插件,放入本人须要的插件即可)文件拷贝到seatunnel-app的rusources外面,如上图所示.</p><p>plugin-mapping.properties配置文件批改只蕴含如下两个插件:</p><pre><code>seatunnel.source.Jdbc = connector-jdbcseatunnel.sink.Jdbc = connector-jdbc</code></pre><h3>4.3 编译打包命令</h3><pre><code>seatunnel我的项目运行这个:mvn clean package -pl seatunnel-dist -am -Dmaven.test.skip=trueseatunnel打包插件命令实例如下:mvn clean package -pl seatunnel-connectors-v2/connector-jdbc -am -DskipTests -T 1Cseatunnel-web我的项目运行这个:mvn clean package -pl seatunnel-web-dist -am -Dmaven.test.skip=true或者能够间接点击右侧maven的package打包即可</code></pre><p>对于这个编译构建的官网也有讲,上面两个连贯关上就有,须要认真的浏览</p><pre><code>https://seatunnel.apache.org/docs/2.3.3/contribution/setuphttps://github.com/apache/seatunnel-web</code></pre><h3>4.4 启动运行</h3><p>在启动前须要先启动本地的mysql8.x、hadoop3.1.3</p><p>在启动之前将如下的jar包放入到seatunnel和seatunnel-web编译构建的target的lib目录下,免得启动因为短少jar依赖而报错</p><p></p><p>或者是把我的项目中编译好的插件或数据源jar复制到这个两个我的项目的target的lib目录下也是能够的,下面的是我去阿里云maven仓库下载的</p><p>而后先启动seatunnel在启动seatunnel-web</p><p>前端ui编译启动</p><p>ui源码构建公布前须要批改拜访后端的端口号:</p><p></p><p>cmd进入到seatunnel-web—>seatunnel-ui</p><p>门路执行如下命令:</p><pre><code>npm installnpm run dev</code></pre><h3>4.5 拜访首页</h3><p>拜访地址:</p><pre><code>http://localhost:5173/用户名/明码都是admin</code></pre><p></p><h2>5. mysql-jdbc 到mysql-jdbc的单表数据同步</h2><h3>5.1 增加数据源</h3><p>如果创立不能够抉择阐明是对应的lib上面没有放入对应的数据源的插件jar包</p><p></p><h3>5.2 同步工作定义</h3><p>这里咱们增加的是两个mysql-jdbc的数据源,这里采纳工作类型是“数据集成”,mysql的单表同步到mysql的单表</p><p>将seatunnel库中的表role表同步到seatunnel_copy数据库中的role表中,seatunnel_copy数据库中的role表的构造和seatunnel库中的表role表构造截然不同</p><p>工作的source和sink的数据源如果不能够选,阐明是lib下没有数据源相干的jar,须要放入指定的jar重启我的项目才能够选数据源</p><p>source配置如下:</p><p></p><p>sink配置如下:</p><p></p><h3>5.3 同步工作执行</h3><p>保留抉择工作的类型应用的流式工作:(保留能够抉择流式工作也能够抉择批工作)</p><p></p><p></p><p>配置好工作之后,就能够点击运行按钮,执行完之后在“同步工作实例”列表中就能够看到之前的工作,状态是已实现</p><p></p><h3>5.4 同步工作执行遇到的问题</h3><p>如果状态执行不是已实现就会是一个以失败的状态,起因可能是短少jar包或者是本地短少hadoop3.1.3的环境,hadoop的环境官网的大佬说不是必须的,然而我在本地做这个案例的时候没有hadoop会执行报错的,所以下面seatunnel引擎的公共模块中的seatunnel.yaml配置外面配置了hdfs相干存储的信息,所以还须要去hdfs上新建一个目录如下:</p><p></p><p></p><p>这个目录不建设没有试过会不会报错,反正是有总比没有好,本地没有hapood会报如下谬误:</p><p></p><p>大抵上是工作在执行的时候须要做一些工作的检查点或保留点的数据状态的存储,下面那个报错感觉是执行了两次或者是多个线程执行过导致数据原本第一次是曾经同步过来了,前面有搞了一次就主键抵触导致工作状态变成失败了,有了hdfs就不会有这个报错的,也是很神奇。</p><h3>5.5 同步工作执行的后果</h3><p>能够看到seatunnel库中role表数据同步到seatunnel_copy数据库中的role表中了</p><h2>6. 总结</h2><p>本地源码编译运行曾经分享完了,这样做是为了更好的了解这个我的项目,你能够跑起来在idea中本地两边的我的项目打上断点,应用debug调试跟踪源码,能够开发一个插件或者是为这个我的项目奉献源码,或者是用于学习,通过观赏我的项目的源码来学习我的项目中的一些好的设计思路,我集体感觉这个我的项目的亮点有一下几点:</p><p><strong>第一</strong>:应用hazelcast(底层基于netty和socket)实现了内核集群,同时也能够应用hazelcast的代client向hazelcast引擎服务提交一个工作,而后该工作由web端或者是linux的控制台提交到引擎服务上(提交的工作是一个json的文件,外面定义好了input、transform和sink这三个阶段的信息),引擎服务又有master和work,主节点负责管理work节点的状态和任务调度(工作须要下发到那个work节点上执行,利用多机分布式来跑工作),并且会对工作做保留点or检查点(有点像fink的保留点和检查点的概念)。</p><p><strong>第二是插件机制</strong>:一个插件就是一个jar包,把公共的流程步骤高度形象封装到下层的api中,差异化的实现各种场景下的数据同步需要,数据源和插件是很丰盛的</p><p><strong>第三是类加载器</strong>:实现了本人的类加载器,我的项目启动就通过本人实现的类加载器加载指定门路下的插件jar包,就是通过这种插件的加载机制来实现按需加载,插件的机制就是上一个插件的输入作为下一个插件的输出,数据在一个插件链条上滚动传递,有点像设计模式中的责任链模式。</p><p><strong>第四是三套引擎</strong>:默认应用的是自研的SeaTunnelEngine,还反对flink和spark两大引擎。</p><h2>7.材料分享</h2><pre><code>链接:https://pan.baidu.com/s/1DWKpX2j5nyvDT3UucVc1Sg 提取码:ip7p</code></pre><p>seatunnel-2.3.3.zip是tag的源码包, apache-seatunnel-2.3.3-src.tar.gz这个是官网的download下载的sourceCode包。</p><blockquote>本文由 白鲸开源科技 提供公布反对!</blockquote></article> ...

February 20, 2024 · 1 min · jiezi

关于数据库:2024年1月国产数据库大事记墨天轮

<article class=“article fmt article-content”><p>本文为墨天轮社区整顿的2024年1月国产数据库大事件和重要产品公布音讯。</p><h4>目录</h4><ul><li>2024年1月国产数据库大事记 TOP10</li><li>2024年1月国产数据库大事记(工夫线)</li><li>产品/版本公布</li><li>兼容认证</li><li><p>代表厂商大事记</p><ul><li>厂商2023年终总结合辑</li></ul></li><li>排行榜新增数据库</li><li>厂商流动</li></ul><h2>2024年1月国产数据库大事记 TOP10</h2><p></p><h2>2024年1月国产数据库大事记(工夫线)</h2><p>1月2日,工业和信息化部科技司公布《2023年国家技术创新示范企业拟认定名单公示》,武汉<strong>达梦数据</strong>库股份有限公司荣誉入选。</p><p></p><p>1 月 2 日,工业和信息化部官网微信工信微报公布《 咱们这一年:图说 2023 年工业和信息化倒退状况 》报告。在“建强开源生态”局部,<strong>PingCAP 上榜“具备国内影响力的开源社区”</strong>。</p><p></p><p>1月4日,中国科学院《互联网周刊》、中国社会科学院信息化钻研核心、eNet研究院、德本征询联结公布“<strong>2023信创产业领军企业100强</strong>”榜单。<strong>巨杉数据库</strong>作为国内当先的分布式文档型数据库厂商,凭借深耕信创畛域的丰盛案例及杰出的科技创新能力胜利入选。</p><p></p><p>1月5日音讯,日前,基于<strong>TiDB</strong>的杭州银行新一代外围业务零碎胜利投产上线。 新外围零碎是业内首个理论投产的云原生、分布式、全栈国产化的银行外围零碎,我的项目于 2022 年 6 月启动,新外围零碎自上线以来运行平安稳固,大幅晋升了业务解决效率, 已撑持日均交易量 1000+ 万笔,均匀交易耗时小于 100 毫秒,较原外围业务零碎缩减 54%,日终跑批的处理速度为原外围业务零碎的 2.1 倍,可能无效撑持将来业务的疾速倒退。</p><blockquote>杭州银行充分利用 TiDB 分布式数据库的原生分布式架构劣势,提供金融级的强一致性、高吞吐和低延时能力,无效解决了传统集中式外围的并发瓶颈,晋升了外围零碎的高可用性和动静扩容能力。 TiDB 基于两地三核心计划进行部署,同城双核心数据强同步实现了双活数据中心双写并行工作、劫难疾速主动复原且数据零失落。</blockquote><p>1月6日,2023全国大学生计算机系统能力大赛<strong>第三届OceanBase数据库大赛全国总决赛</strong>获奖名单颁布。西北工业大学“五点上班”团队取得“特等奖”,浙江大学 “Looks Good To Me” 团队和电子科技大学 “0x80” 团队取得大赛一等奖。</p><p><br/><em>第三届OceanBase数据库大赛全国总决赛获奖名单</em></p><p>1月6日音讯,瑞和数智携手<strong>阿里云</strong>胜利签约国有大型金融保险数据库降级、扩容和迁徙我的项目。该我的项目涵盖了国有大型金融保险<strong>ADB</strong>平台降级和数据库降级、扩容、迁徙等多个方面。其中,ADB平台降级将进一步晋升零碎性能的稳定性,为各项业务提供牢靠的技术支持。</p><p>1月7日音讯,近日,<strong>拓数派</strong>签订 CLA协定,正式退出 OpenCloudOS 操作系统开源社区。</p><p>1月9日音讯,近期,<strong>GBASE南大通用</strong>接连斩获9个重要我的项目,在金融行业再创历史佳绩。包含某大型国有商业银行繁多起源GBase 8a产品、某政策性银行繁多起源GBase 8a产品、某政策性银行信创革新我的项目GBase 8c产品、某政策性银行信开办公革新我的项目GBase 8s产品、某大型头部保险公司GBase 8c产品、某大型头部信托公司GBase 8a产品、某大型头部央企信创建设项目GBase 8s产品、某城商行新一代数仓国产化建设GBase 8a产品、某头部央企财务公司数仓建设GBase 8a产品。</p><p>1月9日,计世资讯(CCW Research)公布《2022-2023年中国信创数据库行业市场钻研报告》,从产品技术能力和市场及策略能力两个维度对我国次要数据库产品服务商进行竞争力剖析。其中,中国电信<strong>天翼云</strong>凭借其产品丰盛的治理性能、灵便的部署架构,位列<strong>云数据库产品畛域领导者象限</strong>。<br/></p><p>1月9日音讯,“第二十届中国企业倒退论坛·2023中国企业数字化倒退大会暨优良案例公布”流动在京举办。科蓝软件<strong>SUNDB</strong>数据库在数字化建设和服务方面体现卓越,入选“<strong>2023全国企业数字化服务优良案例</strong>”。SUNDB数据库不仅展现了数字化技术的微小后劲,也凸显了科蓝软件在应答市场竞争和晋升企业应用管理效率等方面的最新实际。</p><p></p><p>1月10日,亿欧智库公布《2023信创产业新发展趋势报告及100强》,<strong>达梦、星环科技、爱可生、GBASE南大通用、神舟通用、人大金仓、优炫软件、Kyligence、海量数据</strong>等厂商胜利入选“<strong>2023年中国精选100强信创厂商</strong>”。</p><p></p><p>1月11日音讯,腾讯云助力富邦华一银行新外围零碎群全面上线。该零碎构建在国产分布式云平台腾讯云TCE之上,并采纳国产分布式数据库<strong>腾讯云TDSQL</strong>承载外围零碎数据,可能高效撑持富邦华一银行打造面向海量业务的分布式架构体系,为富邦华一银行新一代外围业务零碎提供持重撑持。富邦华一银行也是国内首家通过国产分布式云平台与分布式数据库实现外围零碎上线的外资银行。</p><p>1月12日,信息技术利用翻新工作委员会(简称“信创工委会”)召开“2023年度总结座谈会”。<strong>GBASE南大通用、云和恩墨</strong>等凭借在前沿技术翻新、行业标准制订、产品计划落地及上下游生态建设等方面的优异体现,荣获“<strong>2023年度信创工委会卓越贡献成员单位</strong>”奖项。</p><p><br/></p><p>1月14日,由电子工业出版社华信研究院主办的“第三届信息技术利用翻新倒退论坛”在京圆满召开。南大通用“<strong>GBase 8s</strong>助力轨道交通零碎国产化实际”获评“2023信息技术利用翻新·年度推荐信创产品*解决方案”。</p><p></p><blockquote>在轨道交通畛域,GBase数据库已陆续上线北京、深圳、杭州等20多城市、50+地铁线路的综合监控、主动售检票等外围业务零碎,保障城市客流通行顺畅,赋能智慧城轨,陪伴大家的日常出行。</blockquote><p>1月15日,巨杉数据库举办<strong>SequoiaDB</strong>新个性及开源我的项目公布流动。本次流动回顾了巨杉数据库深耕JSON文档型数据库12年的倒退历程与技术演进,发表了2024年面向技术社区的开源打算。发布会介绍,巨杉数据库决定将在<strong>2024年Q1再次公布开源版本</strong>,近期,SequoiaDB新版本的源代码将通过Gitee、GitCode及GitHub再次开源。SequoiaDB 也正在摸索,为文档型数据库提供 「Vector Search 向量搜寻」能力,为保留到 SequoiaDB 的向量数据,提供高效的查问能力,这一个性将在2024年与大家见面。</p><p></p><p>1月15日,<strong>Zilliz Cloud</strong>重磅官宣在北京、深圳同时开区!这是继阿里云杭州区后, Zilliz Cloud 在国内再次增设的两大云服务可用区,至此已实现华北、华东、华南的全笼罩,意味着 Zilliz 在国内向量数据库云服务的进一步降级。</p><p></p><blockquote>截至目前,Zilliz Cloud 已实现寰球 4 大云 11 个节点的全笼罩,除了在中国的杭州、北京、深圳三大服务区,其余 8 个节点散布在海内,包含美国的弗吉尼亚州、俄勒冈州、德国的法兰克福、新加坡等城市和地区。至此,Zilliz 已成为寰球首个提供海内外多云服务的向量数据库企业。</blockquote><p>1月16日,2023(第三届)数字经济领航者大会暨2023翻新影响力年会在北京顺利举办。本次流动总结了2023年度数字经济畛域的翻新成绩及下一年的科技趋势和方向。流动盛典上,华为云<strong>GaussDB</strong>凭借产品优异的性能取得“<strong>2023年度国产云数据库利用举荐优良产品奖</strong>”。</p><p></p><blockquote>GaussDB是华为基于20余年策略投入的新一代分布式数据库,外围代码齐全自主翻新,领有高可用、高平安、高性能、高弹性、高智能、易部署、易迁徙的技术个性,是以后国内惟一可能做到软硬协同、全栈自主的数据库品牌。</blockquote><ul><li>湖南亚信安慧科技有限公司(简称“亚信安慧”)凭借亚信安慧<strong>AntDB</strong>数据库获评“<strong>2023年度数字经济翻新十大领航企业</strong>”。此次获奖再次验证了亚信安慧在产品技术和服务上的创新性、当先性。</li></ul><p></p><p>1月17日,数据猿联结上海大数据联盟举办的“第六届金猿季&魔方论坛——大数据产业倒退论坛”在沪召开,会上隆重公布2023中国大数据产业年度榜单。<strong>GBASE南大通用</strong>荣获“<strong>大数据产业年度翻新服务企业</strong>”,助力河北银行建设的基于“湖仓一体”数据平台荣获“大数据产业年度优良案例”。</p><p></p><blockquote>河北银行选用GBase数据库对原数据平台降级迁徙,联合行内原数据湖,造成了MPP+Hadoop技术栈的湖仓一体数据服务体系。</blockquote><ul><li>会上,湖南亚信安慧科技有限公司(简称“<strong>亚信安慧</strong>”)获评“<strong>2023大数据产业年度翻新技术冲破</strong>”与“<strong>2023大数据产业年度国产化优良代表厂商</strong>”两大奖项。</li></ul><p></p><ul><li>在会上,<strong>HashData</strong>凭借当先的技术实力和杰出的市场体现荣获2023年度“<strong>金猿奖——最具投资价值企业奖</strong>”。这是继2021年之后,HashData间断三年获此殊荣,代表着HashData在创新能力、投资价值及发展潜力等方面取得业内专家和公众的继续认可。</li></ul><p></p><p>1月18日,天津市行业信创高质量倒退论坛暨民航信创撮合对接会在天津圆满召开。由<strong>GBASE南大通用</strong>、天津易天数字化服务有限公司、浙江鸿程计算机系统有限公司联结申报的“易展鸿图民航重要流动接待零碎”荣获2023信创大比武“<strong>民航业务撑持技术创新利用赛道·优胜奖</strong>”。</p><p></p><p>1月19日,福建省数字福建建设领导小组办公室正式颁布对于《2023年福建省信息技术利用翻新解决方案典型案例集》入选名单。福建星瑞格软件有限公司(简称<strong>星瑞格</strong>)“金融国产数据库信创解决方案”胜利入选全省30个典型解决方案。</p><p></p><blockquote>本次案例是国产数据库在全国性大型保险机构外围零碎利用的首次技术冲破和翻新,验证了国产数据库在外围零碎利用的技术可行性。</blockquote><p>1月24日,国内出名开发者社区思否联结开源社颁布“<strong>2023中国开源先锋33人之心尖上的开源人物</strong>”评比后果,<strong>Nebula Graph</strong>首席开源布道师<strong>古思为</strong>、<strong>飞轮科技</strong>CEO兼Apache Doris 社区创始人<strong>马如悦</strong>、<strong>KaiwuDB</strong>副总经理<strong>王小虎</strong>等人入选。</p><p></p><p>1月26日音讯,长沙城市超脑数据异地备份与市直单位数据一级治理我的项目正式上线,其中“<strong>数仓治理平台</strong>”应用了科蓝软件<strong>SUNDB</strong>数据库长期License(技术受权)。长沙市政府数据资源管理局数仓治理平台为数据资源管理局提供对各部门数仓的建设和治理过程监控治理,实现对部门数据治理的全过程治理以及治理成绩的展现。零碎次要由数据规范治理、数据治理过程治理、数据一本账组成。</p><p></p><p>1月31日,墨天轮社区公布“<strong>2023年度数据库获奖名单</strong>”。OceanBase、PolarDB、openGauss荣获“<strong>2023年度最具影响力数据库奖</strong>”。</p><p></p><blockquote>“2023年度最具影响力数据库奖”评比规范从技术能力、市场体现以及生态建设等三个维度登程,通过考量技术创新与研发能力、市场份额、财务状况、融资能力,以及顶级会议论文数、高校单干、专利数等近多项指标遴选出获奖产品,该奖项代表了产品作为国产数据库领军者,具备弱小的品牌影响力以及行业凝聚力。</blockquote><h2>产品/版本公布</h2><p>1月16日,格睿科技公布<strong>GreptimeDB v0.6 版本</strong>。GreptimeDB 0.6 版本初步实现了 Region Migration 性能,为用户提供了在 Datanode 之间迁徙数据表 Region 的能力,同时保障了数据的完整性,为动静调节集群负载提供了很好的根底。</p><p>1月17日,<strong>阿里云PolarDB开发者大会</strong>在京举办,中国首款自研云原生数据库<strong>PolarDB公布“三层拆散”新版本</strong>,基于智能决策实现查问性能10倍晋升、节俭50%老本。此外,阿里云全新推出数据库场景体验馆、训练营等系列新举措,宽广开发者可率先收费体验PolarDB外围个性及NL2BI等AI新性能。</p><ul><li><strong>阿里云重磅公布PolarDB新版本</strong>。据理解,这是业内首个反对三层拆散状态的云原生数据库 ,可帮忙用户节俭高达50%的数据库老本;同时接入大语言模型,大幅晋升数据库智能决策程度,IO依赖查问性能晋升10倍。</li></ul><p></p><ul><li>会上,第5届<strong>天池寰球数据库大赛</strong>颁布后果,来自蔚来汽车等企业组队的「带对听花」队伍和来自北京大学&饿了么组队的「西二旗大头帮」队伍,从7047支参赛战队中怀才不遇,别离斩获PolarDB和Lindorm赛道冠军。</li></ul><p></p><blockquote>据理解,PolarDB在过来3年实现400%的增速,目前用户数已超过10000家,宽泛落地于政务、金融、电信、物流、互联网等畛域的外围业务零碎。PolarDB已正式开源近3年,建设了15个SIG组,吸引了3万余名开发者,以及韵达、网易数帆、龙蜥等60多家生态搭档。</blockquote><p>1月26日,<strong>Apache Doris 2.0.4 版本正式公布</strong>,欢送大家下载应用!该版本在新优化器、倒排索引、数据湖等性能上有了进一步的欠缺与更新,使 Apache Doris 可能适配更宽泛的场景。</p><p><strong>Apache Doris 2.0.4新性能</strong>:</p><ul><li>新优化器反对了 datev1, datetimev1 及 decimalv2 数据类型</li><li>新优化器反对了 ODBC 表面</li><li>倒排索引反对了lower_case 和 ignore_above 选项</li><li>倒排索引反对了 match_regexp 和 match_phrase_prefix 查问减速</li><li>数据湖反对了 Paimon Native Reader</li><li>数据湖反对读取 LZO 压缩的 Parquet 文件</li><li>审计日志反对 insert into</li></ul><h2>兼容认证</h2><p>1月2日音讯,近日,云和恩墨<strong>MogDB</strong>企业版数据库管理系统正式通过中国网络安全审查技术与认证核心(简称:CCRC)的平安评估并取得IT产品信息安全认证EAL4加强级(EAL4+)认证证书。这充分证明了 MogDB 数据库产品的信息安全保障能力曾经达到行业领先水平。</p><p></p><blockquote>CCRC组织专家团队对 MogDB 的数据库审计、通明数据加密、网络通信平安、用户口令强度校验机制、客户端接入机制、控制权和拜访权拆散、高可用集群等能力进行了全方位测试,并对 MogDB 研发全生命周期平安治理进行全面评估后,确认 MogDB 合乎GB/T18336-2015《信息技术 平安技术 信息技术平安评估准则》及GB/T 20273-2019《信息安全技术 数据库管理系统平安技术要求》,授予评估保障级 EAL4+ 证书。</blockquote><p>1月5日,深圳九有数据库有限公司自主研发的<strong>九有数据库UDB-TX</strong> V2.4(简称UDB-TX)与中科方德软件有限公司(简称“中科方德”)自主研发的高可信服务器操作系统V4.0 产品实现了多个平台的兼容认证测试。测试结果表明,单方产品齐全兼容,零碎运行稳固,可高效满足用户需要。</p><p></p><p>2024年1月,亚信安慧<strong>AntDB</strong>数据库与飞腾信息技术有限公司、龙芯中科技术股份有限公司、OpenCloudOS 操作系统开源社区三家信搭档的多款产品实现兼容互认,为后续发展深度单干、独特助力客户构建松软软硬件底座打下基础。</p><p>2024年1月,浪潮<strong>KaiwuDB</strong>正式获取由中国软件行业协会颁发的《软件企业证书》和多项《软件产品证书》,实现“双软”企业认证工作。通过“双软”认证,KaiwuDB 实现了对外围知识产权的爱护,也是企业软件研发能力、技术服务能力晋升的重要体现。</p><p></p><h2>代表厂商大事记</h2><p>【<strong>阿里云</strong>】阿里云瑶池数据库1月份大事记</p><p> <strong>看点速览</strong></p><ul><li>亚太惟一,阿里云间断4年稳居Gartner寰球云数据库报告「领导者」</li><li>阿里云PolarDB开发者大会首度召开,让数据库开发像“搭积木”一样简略</li><li>云原生数据库PolarDB揽获“2023技术卓越奖”</li></ul><p>【<strong>亚信安慧</strong>】亚信安慧AntDB数据库1月大事记</p><p> <strong>看点速览</strong></p><ul><li>浙江挪动基于亚信科技AntDB数据库率先实现CRM零碎全域革新</li><li>亚信安慧荣获“2023年度数字经济翻新十大领航企业”</li><li>亚信安慧斩获第六届金猿奖两大奖项</li></ul><p>【<strong>SUNDB数据库</strong>】科蓝软件SUNDB数据库1月大事记</p><p> <strong>看点速览</strong></p><ul><li>SUNDB数据库荣登2023全国企业数字化服务优良案例</li><li>科蓝软件公布鸿蒙版挪动银行+鸿蒙版智能网点</li><li>科蓝软件数字能力+中国数据库联合,助力长沙市数字政府IT国产化建设落地</li></ul><h3>厂商2023年终总结合辑</h3><p>《2023年数据库厂商年终总结》</p><h2>排行榜新增数据库</h2><ul><li>梧桐数据库(WuTongDB)</li></ul><h2>相干材料</h2><ul><li>墨天轮中国数据库风行度排行榜-2024年1月已更新</li><li>墨天轮中国数据库风行度排行榜规定解读</li><li>2023 :国产数据库名录和产品信息一览</li><li>月度国产数据库大事记合辑</li><li>中国数据库排行榜 - 月度解读</li><li>国产数据库招投标信息汇总</li><li>《中国数据库行业剖析报告合辑》.pdf</li><li>墨天轮2023年度数据库获奖名单</li></ul><p>点击浏览原文:https://www.modb.pro/db/1752624026447073280</p><hr/><p>欲了解更多可浏览墨天轮社区,围绕数据人的学习成长提供一站式的全面服务,打造集新闻资讯、在线问答、流动直播、在线课程、文档阅览、资源下载、常识分享及在线运维为一体的对立平台,继续促成数据畛域的常识流传和技术创新。</p><p>关注官网公众号: 墨天轮、 墨天轮平台、墨天轮成长营、数据库国产化 、数据库资讯</p></article> ...

February 20, 2024 · 1 min · jiezi

关于数据库:Databend-开源周报第-132-期

<article class=“article fmt article-content”><p></p><blockquote>Databend 是一款古代云数仓。专为弹性和高效设计,为您的大规模剖析需要保驾护航。自在且开源。即刻体验云服务:https://app.databend.cn 。</blockquote><h2>What’s On In Databend</h2><p>摸索 Databend 本周新进展,遇到更贴近你情意的 Databend 。</p><h3>提供对 <code>CREATE [ OR REPLACE ]</code> 的全面反对</h3><p>Databend 现已提供对 <code>CREATE [ OR REPLACE ]</code> 语法糖的全面反对,以笼罩潜在的 <code>DROP IF EXISTS …</code> + <code>CREATE …</code> 用例。</p><p>目前反对该语法糖的对象包含:<code>DATABASE</code>、<code>TABLE</code>、<code>VIEW</code>、<code>AGGREGATING INDEX</code>、<code>STREAM</code>、<code>CONNECTION</code>、<code>FUNCTION</code>、<code>FILE FORMAT</code>、<code>MASKING POLICY</code> 等。</p><p>如果您想理解更多信息,欢送分割 Databend 团队,或查看上面列出的资源。</p><ul><li>Issue #14299 | tracking: CREATE OR REPLACE</li></ul><h2>Code Corner</h2><p>一起来摸索 Databend 和周边生态中的代码片段或我的项目。</p><h3>利用 Databend Cloud 进行查问分析</h3><p>Databend Cloud 提供可视化剖析工具以简化对简单查问的分析和了解。</p><p>该分析工具能够跟踪每个步骤的性能,从 TableScan 持续时间到 HashJoin 的详细信息,并监控数据外溢状况。帮忙您轻松剖析查问老本和工夫,进行针对性优化。</p><p></p><p>Databend 团队也充分利用该工具评估代码变更对查问执行的影响。例如 PR #14561 | feat: use materialized cte for standard stream 。</p><h2>Highlights</h2><p>以下是一些值得注意的事件,兴许您能够找到感兴趣的内容。</p><ul><li>反对 JSON 运算符 <code>#-</code> 。</li><li>在规范流中应用物化专用表表达式(Materialized CTE),以防止反复扫描。</li><li>浏览文档 Docs | Data Management 理解如何利用 Databend 治理、复原和爱护您的数据。</li></ul><h2>What’s Up Next</h2><p>咱们始终对前沿技术和翻新理念持凋谢态度,欢迎您退出社区,为 Databend 注入生机。</p><h3>反对多表插入</h3><p>Databend 打算反对多表插入以容许应用一条语句有条件地或无条件地插入多个表。</p><p>多表插入语句能够缩小执行多个条件插入所需的表扫描和 SQL 。次要实用于数据仓库中的 ETL 过程,反对并行化和/或将非关系型数据转换为关系型格局。</p><pre><code class=“sql”>– Unconditional multi-table insertINSERT [ OVERWRITE ] ALL intoClause [ … ]<subquery>– Conditional multi-table insertINSERT [ OVERWRITE ] { FIRST | ALL } { WHEN <condition> THEN intoClause [ … ] } [ … ] [ ELSE intoClause ]<subquery></code></pre><p>Issue #14565 | Feature: Multi-table Inserts support</p><p>如果你对这个主题感兴趣,能够尝试解决其中的局部问题或者参加探讨和 PR review 。或者,你能够点击 https://link.databend.rs/i-m-feeling-lucky 来筛选一个随机问题,祝好运!</p><h2>Changelog</h2><p>返回查看 Databend 每日构建的变更日志,以理解开发的最新动静。</p><p>地址:https://github.com/datafuselabs/databend/releases</p><h2>Contributors</h2><p>非常感谢贡献者们在本周的卓越工作。</p><p></p><h2>Connect With Us</h2><p>Databend 是一款开源、弹性、低成本,基于对象存储也能够做实时剖析的旧式数仓。期待您的关注,一起摸索云原生数仓解决方案,打造新一代开源 Data Cloud。</p><ul><li>Databend Website</li><li>GitHub Discussions</li><li>Twitter</li><li>Slack Channel</li></ul></article> ...

February 20, 2024 · 1 min · jiezi

关于数据库:HN-千赞热贴|创业-4-年那些狠狠打我脸的技术选型

<article class=“article fmt article-content”><blockquote>Hacker News 帖子</blockquote><p></p><p>过年这段时间,Hacker News 上也涌现了不少好帖子,除了霸榜的 Sora 外,技术贴最靠前的就是这篇 (Almost) Every infrastructure decision I endorse or regret after 4 years running infrastructure at a startup。作者依据过来 4 年在一家守业公司里负责基础设施的经验,复盘了简直每一个基础设施选型的得失。作者所在的公司叫 Cresta,其实是硅谷一家规模不小的公司了,还是由国人创建的,做客户联系核心 (Contact Center) 的解决方案。</p><p></p><p></p><h2>AWS</h2><p><strong>抉择 AWS 而不是谷歌云</strong><br/>✅ 点赞</p><p>晚期,咱们同时应用 GCP 和 AWS。在那段时间里,我不晓得我的谷歌云「客户经理」是谁,与此同时,我定期与咱们的 AWS 客户经理散会。有一种感觉是谷歌依赖机器人和自动化,而亚马逊则专一于客户。这种反对在评估新的AWS 服务时对咱们很有帮忙。除了反对外,AWS 在稳定性方面做得十分好,并且尽量减少向后不兼容的 API 更改。</p><p>已经有一段时间,Google Cloud 是 Kubernetes 集群的抉择,特地是当 AWS 还没有决定是否要投入 EKS 时。然而当初,在 AWS 服务四周减少了许多额定的 Kubernetes 集成(如 external-dns、external-secrets 等),这个问题曾经不再重要了。</p><p><strong>EKS (AWS 容器托管服务 Elastic Kubernetes Service)</strong><br/>✅ 点赞</p><p>除非你很勤俭(而且你认为本人的工夫是收费的),否则没有理由本人运行管制立体,而不是应用 EKS。在 AWS 中应用 ECS 等代替计划的次要劣势是与 AWS 服务的深度集成。侥幸的是,Kubernetes 在许多方面曾经赶上:例如,应用 external-dns 与 Route53 集成。</p><p><strong>EKS managed addons (EKS 托管插件)</strong><br/>❌ 打脸</p><p>咱们最后抉择了 EKS 托管的插件,因为我认为这是应用 EKS 的「正确」形式。可怜的是,咱们总是遇到须要自定义装置自身的状况。兴许是 CPU 申请、镜像标签或某些配置映射。起初咱们转而应用 Helm Chart 来代替插件,当初所有都运行得更好了,并且与咱们现有的 GitOps 流水线相匹配。</p><p><strong>RDS (AWS 关系数据库服务)</strong><br/>✅ 点赞</p><p>数据是您基础设施中最要害的局部。如果网络挂了,那就停机。如果失落了数据,那公司就挂了。应用 RDS(或任何托管数据库)的额定老本是值得的。</p><p><strong>Redis ElastiCache</strong><br/>✅ 点赞</p><p>Redis 作为缓存和通用产品体现十分杰出。它速度快,API 简略且文档欠缺,实现通过了大量测试。与其余缓存选项(如 Memcached)不同,Redis 具备许多性能,使其不仅实用于缓存。它是一个「做疾速数据处理」的绝佳瑞士军刀。我对云服务提供商中 Redis 的前景感到不确定,但我感觉因为 AWS 客户宽泛应用它,AWS 将会持续很好地反对它。</p><p><strong>ECR (AWS 容器镜像服务)</strong><br/>✅ 点赞</p><p>咱们最后托管在 quay.io 上。那里的稳定性问题一团糟。自从迁徙到 ECR 后,状况变得更加稳固。与 EKS 节点或开发服务器进行更深刻的权限集成也是一个重大劣势。</p><p><strong>AWS VPN</strong><br/>✅ 点赞</p><p>CloudFlare 等公司也有 Zero Trust VPN 的代替计划。我置信这些产品运作良好,但 VPN 只是如此简略易懂(「简略就好」是我的座右铭)。咱们应用 Okta 来治理咱们的 VPN 拜访,这是一次很棒的体验。</p><p><strong>AWS 高级反对</strong><br/>❌ 打脸</p><p>这太贵了:简直(如果不是更多的话)比另一位工程师的老本还要高。我认为,如果咱们对 AWS 知之甚少,那么这个费用就是值得的。</p><p><strong>Control Tower Account Factory for Terraform</strong><br/>✅ 点赞</p><p>在集成 AFT 之前,应用控制塔很苦楚,次要是因为很难自动化。自从咱们将 AFT 整合到咱们的技术栈中后,启动账户工作就很顺利。AFT 让另一件事变得更容易,那就是为咱们的账户标准化标签。例如,咱们的生产账户有一个标签,而后咱们能够用它来做 peering 决策。对于咱们来说,标签比组织更无效,因为「哪些属性形容这个账户」并不总是一个树形构造。</p><h2>流程</h2><p><strong>通过 Slack 机器人自动化复盘流程</strong><br/>✅ 点赞</p><p>每个人都很忙。揭示他人填写复盘报告可能让你感觉本人是「好人」。让机器表演好人的角色成果很好。它通过促使人们遵循 SEV 和复盘程序来简化流程。</p><p>开始时不用太简单。只需根本的「曾经一个小时没有音讯了,有人更新一下」或者「曾经一天没有日历邀请了,有人安顿一下预先总结会议」,就能够走得更远。</p><p><strong>应用 PagerDuty 的故障模版</strong><br/>✅ 点赞</p><p>为什么要反复造轮子呢?PagerDuty 公布了一份对于事变期间该做什么的模板。咱们稍作定制,这就是 Notion 灵活性派上用场的中央,但它的确是一个很好的终点。</p><p><strong>定期回顾 PagerDuty 上的工单</strong><br/>✅ 点赞</p><p>公司的警报状况如下:</p><ul><li>基本没有任何警报。咱们须要警报。</li><li>咱们有警报。有太多的警报,所以咱们疏忽它们。</li><li>咱们曾经对这些警报进行了优先级排序。当初只有要害的那些才会叫醒我。</li><li>咱们疏忽非关键的警报。</li></ul><p>咱们设置了两个档次的告警零碎:要害和非关键。要害告警会立即告诉到人。非关键告警将通过值班异步(电子邮件)告诉值班人员。问题是,非关键告警常常被忽视。为解决这个问题,咱们定期(通常每 2 周一次)举办 PagerDuty 审查会议,在会上审核所有的告警状况。对于重要告警,咱们探讨是否应该放弃其重要性不变。而后,针对非重要性告警(通常每次选取几个),探讨如何革除它们(通常调整阈值或创立一些自动化)。</p><p><strong>开销追踪月会</strong><br/>✅ 点赞<br/>早些时候,我设立了一个每月会议,审查咱们所有的 SaaS 老本(AWS、DataDog 等)。以前,这只是从财务角度进行审查的事件,但他们很难答复对于「这个老本数字是否正确」的一般性问题。在这些会议上,通常有财务和工程人员加入,咱们会查看咱们收到的每份与软件相干的账单,并对「这个老本是否正当」进行直觉测验。咱们深入研究高额账单中的各项数字,并尝试将其合成。<br/>例如,在解决 AWS 时,咱们按标签对我的项目进行分组,并按帐户进行辨别。这两个维度联合个别服务名称(EC2、RDS 等)让咱们大抵理解次要老本驱动因素所在。利用此数据做出的一些操作包含更深刻地钻研 spot 实例应用状况或哪些帐户占了网络费用的大头。但不要仅限于AWS:应该染指公司所有次要收入点所波及的全副重要开销畛域。</p><p><strong>在 DataDog 或者 PagerDuty 里治理复盘报告</strong><br/>❌ 打脸<br/>每个人都应该进行复盘报告。DataDog 和 PagerDuty 都有集成来治理编写复盘报告,咱们尝试过每一种。可怜的是,它们都很难定制化复盘报告流程。思考到像 Notion 这样功能强大的 wiki 工具,我认为最好应用相似的工具来治理复盘报告。</p><p><strong>没有尽可能多地应用函数即服务 (FaaS)</strong><br/>❌ 打脸</p><p>没有很好的用于运行 GPU 工作负载的 FaaS 选项,这就是为什么咱们永远无奈齐全采纳 FaaS。然而,许多 CPU 工作负载能够应用 FaaS(lambda 等)。人们提出的最大拥护意见是老本问题。他们会说相似于「这种 EC2 实例类型在满负荷下运行 24/7 比 Lambda 便宜得多」。这是事实,但也是一个谬误的比拟。没有人会以 100% 的 CPU 利用率来运行服务。通常都有一些规模器在那里说「永远不要达到100%。当达到70%时再扩大」。何时缩减规模总是不明确,而更像一种启发式办法,「如果咱们曾经放弃在 10% 上 10 分钟了,请缩减规模」。此外,人们总会假如 spot 实例是始终有的。</p><p>Lambda 的另一个暗藏劣势是非常容易以高精度跟踪老本。在 Kubernetes 中部署服务时,老本可能被其余每个节点对象或同一节点上运行的其余服务所覆盖。</p><p><strong>GitOps</strong><br/>✅ 点赞</p><p>GitOps 目前在很大水平上扩大得相当好,咱们将其用于基础设施的许多局部:服务、Terraform 和配置等。次要毛病是流水线导向的工作流提供了一个清晰的图像:「这里是代表您提交的框,这些箭头从该框指向管道末端」。应用GitOps 后,咱们不得不投资于工具来帮忙人们答复相似「我提交了代码:为什么还没有部署」的问题。<br/>即便如此,GitOps 的灵活性曾经获得了巨大成功,我强烈推荐您公司采纳它。</p><p><strong>优先解决外部效率而不是内部需要</strong><br/>✅ 点赞</p><p>很可能,您的公司并不是在销售基础设施自身,而是另一种产品。这给团队带来了压力,要求交付性能而不是扩大本人的工作量。但就像飞机通知你先戴上本人的氧气面罩一样,您须要确保您的团队高效运行。除了极少数例外情况外,我从未悔恨优先思考花工夫编写一些自动化或文档。</p><p><strong>多个利用共享一个数据库</strong><br/>❌ 打脸</p><p>像大多数技术债权一样,咱们并没有做出这个决定,只是没有不做出这个决定。最终,有人心愿产品加上一个新性能,并创立了一个新表。这感觉很好,因为当初两个表之间有外键。但因为所有货色都属于某人,并且那个某人是表中的一行,你的整个技术栈的所有对象之间都有外键。</p><p>因为数据库被每个人应用,却没有任何人关怀它。初创公司没有雇佣 DBA 的侈靡条件,而所有无主物件最终将归基础设施团队所有。</p><p>共享数据库的最大问题包含:</p><ul><li>CRUD 在数据库中累积,并不分明是否能够删除。</li><li>当存在性能问题时,基础设施(不足深刻产品常识)必须调试数据库并找出应该重定向到谁。</li><li>数据库用户可能会推送破坏性代码到数据库中。这些破坏性操作可能会通过 PagerDuty 警报基础设施团队(因为他们领有该数据库)。让一个团队为另一个团队的问题而醒来感觉很蹩脚。对于应用程序所领有的数据库来说,在产生问题时应用程序团队是第一响应者。</li></ul><p>尽管如此,我并不拥护想要共享繁多数据库的堆栈。只需意识到上述衡量,并确保您有治理它们的良好策略即可。</p><h2>SaaS</h2><p><strong>没有尽早引入身份平台</strong><br/>❌ 打脸</p><p>我一开始应用 Google Workspace,用它来创立员工群组以调配权限。但它并不够灵便。回想起来,我心愿咱们早点抉择 Okta。它运行得十分好,简直与所有货色集成,并解决了许多合规性/平安方面的问题。尽早采纳身份解决方案,并只承受与之集成的 SaaS 供应商。</p><p><strong>Notion</strong><br/>✅ 点赞</p><p>每家公司都须要一个搁置文档的中央。Notion 始终是一个很好的抉择,比我过来应用过的货色(维基、谷歌文档、Confluence 等)要容易得多。他们用于页面组织的数据库概念也让我可能创立相当简单的页面组织构造。</p><p><strong>Slack</strong><br/>✅ 点赞</p><p>感谢上帝,我不再须要应用 HipChat 了。Slack 作为默认沟通工具十分棒,但为了缩小压力和乐音,我倡议:</p><ul><li>应用 Thread 来压缩沟通</li><li>告知人们可能不会迅速回复音讯的冀望</li><li>不激励私信,并激励应用公共频道</li></ul><p><strong>从 JIRA 迁徙到 Linear</strong><br/>✅ 点赞</p><p>天壤之别。JIRA 如此臃肿,我放心在人工智能公司运行它会让它齐全变得无意识。当我应用 Linear 时,我常常会想「我是否能够做X」,而后尝试了之后发现果然能够!</p><p><strong>没有应用 Terraform Cloud</strong><br/>✅ 点赞</p><p>早些时候,我尝试将咱们的 terraform 迁徙到 Terraform Cloud。最大的毛病是我无奈证实老本正当。起初我把咱们迁徙到了 Atlantis,并且成果还不错。在 Atlantis 体现不佳的中央,咱们在 CI/CD 流水线中编写了一些自动化脚本来补救它。</p><p><strong>应用 GitHub Actions 来做 CI/CD</strong><br/>✅ ❓微微点赞</p><p>咱们和大多数公司一样,在 GitHub 上托管咱们的代码。最后应用 CircleCI,但当初曾经转向 GitHub Actions 进行继续集成/继续部署。GitHub Actions 的次要毛病是对自托管工作流程的反对十分无限。咱们正在应用 EKS 和 actions-runner-controller 来托管在 EKS 中的自托管运行程序,但集成通常存在谬误(不过这些都能够解决)。心愿 GitHub未来更加器重 Kubernetes 的自我托管性能。</p><p><strong>DataDog</strong><br/>❌ 打脸</p><p>Datadog 是一个很棒的产品,但价格昂贵。不仅仅是低廉,我放心他们的老本模型对 Kubernetes 集群和 AI 公司特地不利。当您能够疾速启动和敞开多个节点,并应用 spot 实例时,Kubernetes 集群是最具老本效益的。Datadog 的定价模型基于您领有的实例数量,这意味着即便咱们一次最多只有 10 个实例运行,如果在那个小时内启动并敞开了 20 个实例,咱们将领取 20 个实例的费用。同样地,AI 公司偏向于大量应用 GPU。尽管 CPU 节点可能同时运行数十种服务,在许多用例之间摊派每个节点 Datadog 老本,而 GPU 节点可能只有一个服务在应用它,导致每项服务 Datadog 老本更高。</p><p><strong>PagerDuty</strong><br/>✅ 点赞</p><p>PagerDuty 是一个很棒的产品,价格也正当。咱们从未悔恨抉择它。</p><h2>软件</h2><p><strong>Schema migration 数据库变更</strong><br/>✅ ❓微微点赞</p><p>Schema 变更很难,无论你如何做,次要是因为它就是相当可怕。数据很重要,一个蹩脚的 Schema 变更可能会删除数据。在解决这个艰难问题的所有可怕办法中,我对将整个 schema 存入 git 并应用工具生成 SQL 以将数据库与 schema 同步的想法十分称心。</p><p><strong>用 Ubuntu 作为开发服务器</strong><br/>✅ 点赞</p><p>最后我尝试让开发服务器与咱们的 Kubernetes 节点运行在雷同的根本操作系统上,认为这样会使开发环境更靠近生产环境。回想起来,这种致力并不值得。我很快乐咱们决定持续应用 Ubuntu 作为开发服务器的操作系统。它是一个受到良好反对的操作系统,并且领有大部分咱们须要的软件包。</p><p><strong>AppSmith</strong><br/>✅ 点赞</p><p>咱们常常须要为外部工程师自动化一些流程:重新启动/降级/诊断等。对于咱们来说,制作 API 来解决这些问题很容易,但调试某人特定的CLI/os/依赖装置等有点烦人。可能为工程师制作一个简略的UI与咱们的脚本进行交互十分有用。<br/>咱们自行托管 AppSmith。它运行得…足够好。当然有一些事件咱们想要扭转,但对于「收费」价格而言曾经足够了。最后我摸索了与 retool 更深刻集成,但过后无奈证实那个值得付钱。</p><p><strong>Helm</strong><br/>✅ 点赞</p><p>Helm v2 名誉不佳(有充沛理由),但 helm v3 曾经运行得足够好。在部署 CRDs 和教育开发人员为何他们的 Helm Chart 未能正确部署方面仍存在问题。然而总体来说,helm 作为打包和部署版本化 Kubernetes 对象的形式还算不错,Go 模板语言难以调试,但功能强大。</p><p><strong>Helm Charts in ECR (oci)</strong><br/>✅ 点赞</p><p>最后咱们的 helm charts 存储在 S3 中,并通过插件下载。次要的毛病是须要装置自定义 helm 插件并手动治理生命周期。咱们起初转而应用 OCI 存储的 helm charts,这种设置没有呈现任何问题。</p><p><strong>Bazel</strong><br/>❓ 不确定</p><p>偏心地说,很多聪明人喜爱 Bazel,所以我置信抉择它并不是一个坏主意。<br/>在部署 Go 服务时,集体认为应用 Bazel 有点过头。如果你上一家公司用的是 bazel,并且你有点念旧,那么 Bazel 是一个很好的抉择。否则,咱们就引入了一个构建零碎,只有多数工程师能深刻理解;而与 GitHub Actions 相比,在那里仿佛每个人都晓得如何入手。</p><p><strong>没有尽早应用 telemetry</strong><br/>❌ 打脸</p><p>咱们最后间接应用 DataDog 的 API 将指标发送到 DataDog。这使得很难将它们移除。</p><p>四年前,Open telemetry 并不那么成熟,但当初曾经好多了。我认为 metrics telemetry 依然有点不够成熟,但 tracing 十分杰出。我倡议任何公司从一开始就应用它。</p><p><strong>应用 renovatebot 而不是 dependabot</strong><br/>✅ 点赞</p><p>我真诚地心愿咱们早点思考「放弃依赖项更新」。当你期待太久时,最终会失去十分古老的版本,降级过程漫长且不可避免地存在谬误。Renovatebot 在灵活性方面体现良好,能够依据您的需要进行定制。最大的毛病是它非常复杂且难以设置和调试。我想这可能是所有蹩脚抉择中最好的一个。</p><p><strong>Kubernetes</strong><br/>✅ 点赞</p><p>您须要一个托管长时间运行服务的货色。Kubernetes 是一个受欢迎的抉择,对咱们来说成果很好。Kubernetes 社区在将 AWS 服务(如负载均衡器、DNS 等)整合到 Kubernetes 生态系统中方面做得十分杰出。</p><blockquote><p>「任何具备许多应用形式的零碎都存在许多谬误应用的形式」</p><pre><code> - Jack Lindamood</code></pre></blockquote><p><strong>购买本人的 IP</strong><br/>✅ 点赞</p><p>如果您与内部合作伙伴单干,您常常须要为他们公布一个 IP 白名单。可怜的是,您可能会起初开发更多须要本人 IP的零碎。购买本人的 IP 地址块是一个很好的办法,能够通过给内部合作伙伴提供更大的 CIDR 块来防止这种状况。</p><p><strong>应用 Flux 做 K8s GitOps</strong><br/>✅ 点赞</p><p>在 Kubernetes 的晚期 GitOps 抉择中,须要在 ArgoCD 和 Flux 之间做出决定:我抉择了 Flux(过后是 v1)。它运行得十分好。咱们目前正在应用 Flux 2。惟一的毛病是咱们不得不开发本人的工具来帮忙人们了解其部署状态。<br/>我据说 ArgoCD 很棒,所以如果你抉择了它,我置信也不错。</p><p><strong>应用 Karpenter 做节点治理</strong><br/>✅ 点赞</p><p>如果您正在应用EKS(而不是齐全在 Fargate上),您应该应用 Karpenter。100%毫无疑问。咱们已经应用过其余主动缩放器,包含默认的 Kubernetes 主动缩放器和 SpotInst。在所有这些中,Karpenter 始终是最牢靠且老本效益最高的抉择。</p><p><strong>应用 SealedSecrets 治理 K8s 密钥</strong><br/>❌ 打脸</p><p>我的最后想法是将机密治理推动到相似 GitOps 的货色。应用 sealed-secrets 的两个次要毛病是:</p><ul><li>对于基础设施常识较少的开发人员来说,创立/更新秘密更加简单</li><li>咱们 失去了AWS围绕轮换秘密进行的所有现有自动化性能</li></ul><p><strong>应用 ExternalDNS 治理 DNS</strong><br/>✅ 点赞</p><p>ExternalDNS 是一个很棒的产品。它同步咱们的 Kubernetes -> Route53 DNS 记录,在过来的 4 年里简直没有给咱们带来任何问题。</p><p><strong>应用 cert-manager 治理 SSL 证书</strong><br/>✅ 点赞</p><p>十分直观易配置,所有运行良好没有问题。强烈推荐应用它来为您的 Kubernetes 创立 Let’s Encrypt 证书。惟一的毛病是咱们有时会遇到古老(SaaS 问题对吧?)技术栈里客户不信赖 Let’s Encrypt,您须要为他们获取付费证书。</p><p><strong>应用 Bottlerocket for EKS</strong><br/>❌ 打脸</p><p>咱们的 EKS 集群以前在 Bottlerocket 上运行。次要问题是咱们常常遇到网络 CSI 问题,调试 bottlerocket 镜像比调试规范的 EKS AMI 要艰难得多。应用 EKS 优化的 AMI 来作为咱们节点没有呈现任何问题,当呈现奇怪的网络问题时,咱们依然有一个后门来调试节点自身。<br/><strong>应用 Terraform 而不是 CloudFormation</strong><br/>✅ 点赞</p><p>应用基础设施即代码对于任何公司来说都是必不可少的。在 AWS 中,两个次要抉择是 CloudFormation 和Terraform。我曾经应用过两者,并且没有悔恨抉择 Terraform。它很容易扩大到其余 SaaS 提供商(比方Pagerduty),语法比 CloudFormation 更容易浏览,并且对咱们来说既不是阻碍也不会加速。</p><p><strong>没有应用更多代码化计划(Pulumi, CDK 等)</strong><br/>✅ 点赞</p><p>尽管 Terraform 和 CloudFormation 是形容基础架构的数据文件(HCL和YAML/JSON),而像 Pulumi 或 CDK 这样的解决方案容许您编写执行雷同性能的代码。代码当然很弱小,但我发现 Terraform 的 HCL 具备肯定限度性质对于缩小复杂性是有好处的。并不是说无奈编写简单的 Terraform:只是在进行时更容易显著。</p><p>其中一些解决方案,比方 Pulumi,在很多年前就被创造进去了,而过后 Terraform 不足明天领有的许多性能。新版本的 Terraform 曾经集成了许多咱们能够应用以缩小复杂性的性能。咱们反而应用一个两头地带为咱们想要抽象化解决掉局部内容生成根本框架结构化 Terraform 代码。</p><p><strong>没有应用 Network Mesh (istio, linkerd 等)</strong><br/>✅ 点赞</p><p>Network Mesh 十分酷,许多聪明人偏向于反对它们,所以我置信它们是好主见。可怜的是,我认为公司低估了事件的复杂性。我的个别基础设施倡议是「少即是多」。</p><p><strong>Nginx 作为 EKS 网关的负载平衡</strong><br/>✅ 点赞</p><p>Nginx 老牌、稳固且通过实战测验。</p><p><strong>Homebrew 来对立治理公司的脚本</strong><br/>✅ 点赞</p><p>您的公司可能须要一种散发脚本和二进制文件供工程师应用的办法。Homebrew 曾经足够好地为 Linux 和 Mac 用户提供了散发脚本和二进制文件的形式。</p><p><strong>应用 Go 实现服务</strong><br/>✅ 点赞</p><p>Go 对新工程师来说很容易上手,总体而言是一个很好的抉择。对于大多数受网络 IO 限度的非 GPU 服务来说,Go 应该是您默认的语言选择。</p><blockquote>局部观点必定会引发争议,真谛越辩越明,作者依据本人的实际分享了那么多,也的确引发了大家热烈的探讨。也欢送大家在评论区留言。</blockquote><hr/><p> 更多资讯,请关注 Bytebase 公号:Bytebase</p></article> ...

February 20, 2024 · 3 min · jiezi

关于数据库:如何查找IP地址所在位置定位技术解析与实用方法

摘要:在网络世界中,IP地址是设施在互联网上的惟一标识,而理解IP地址所在位置对于网络管理、安全监控以及个性化服务都至关重要。本文将介绍查找IP地址所在位置的办法和技术,包含基于在线工具、IP地址数据库以及地理位置标记等形式,以期为读者提供全面的理解和实用领导。 引言随着互联网的倒退,IP地址已成为互联网上设施的惟一标识。理解IP地址所在位置对于网络管理、安全监控和个性化服务至关重要。本文将介绍如何查找IP地址所在位置的办法和技术,以及相干的实用工具和资源。在线IP地址查问工具在线IP地址查问工具是最简略间接的形式,用户只需输出IP地址即可获取其所在位置信息。一些罕用的在线IP地址查问工具包含:IP地址查问网站:如IP数据云等,用户能够在网站上输出IP地址进行查问。搜索引擎:在搜索引擎中输出“IP地址查问”,会有许多网站提供相似的服务。IP地址数据库查问IP地址数据库是一个全球性的数据库,记录了大量IP地址及其对应的地理位置信息。通过查问IP地址数据库,能够获取到IP地址所在的国家、城市、经纬度等信息。比方ip数据云提供了寰球范畴的IP地址数据库,用户能够通过网站或API查问IP地址的地位信息。地理位置标记技术地理位置标记技术是一种通过手机、GPS等设施获取用户地理位置的技术,通常用于定位服务和导航利用。通过联合IP地址和地理位置标记技术,能够实现更加准确的地位定位。罕用的地理位置标记技术包含:GPS定位:利用全球定位系统(GPS)获取设施的地理位置信息。Wi-Fi定位:通过Wi-Fi信号的强度和地位信息推断设施的地理位置。基站定位:利用挪动通信基站的信号覆盖范围确定设施的地位。论断查找IP地址所在位置是网络管理、安全监控和个性化服务中的重要一环。通过在线IP地址查问工具、IP地址数据库查问以及地理位置标记技术,能够实现对IP地址所在位置的精确查找。在理论利用中,能够依据需要抉择适合的办法和工具,以达到更加准确和高效的后果。

February 19, 2024 · 1 min · jiezi

关于数据库:PolarDBX的XPlan索引选择

文章起源:PolarDB-X知乎号作者:升雨 前言对于数据库来说,正确的抉择索引是根本的要求,选错索引轻则导致查问迟缓,重则导致数据库整体不可用。PolarDB-X存在多种不同的索引,部分索引、全局索引、列存索引、归档表索引。 部分索引就是单机数据库上罕用的索引,目标是防止全表扫描。 全局索引是分布式数据库为了防止全分片扫描,冗余一份数据,采纳与主表不同分区键的索引表。 列存索引是主表的列存正本,提供HTAP能力。 归档表索引是归档表上的列布隆过滤器,为归档表提供肯定的TP查问能力。 本文次要介绍一种CN上的部分索引算法:XPlan索引抉择。 什么是XPlanPolarDB-X蕴含计算节点(CN)和数据节点(DN),CN负责SQL解析、优化和执行,DN节负责数据的长久化,CN与DN之间通过RPC通信。DN 100%兼容Mysql,也是作为PolarDB-X标准版进行售卖的。 CN与DN之间RPC通信的内容其实就是规范的SQL,CN会将解析优化好的语法树转成SQL传给DN从新解析、优化。比照起来,将CN的语法树间接传给DN执行听起来就更优[1]。 但这样其实不肯定好,次要起因是作为存算拆散的架构,数据都在DN上,DN能够间接在数据上进行index dive,而CN的统计信息是采样进去的静态数据,更新不及时,所以基数预计比不上DN准确,导致索引抉择准确度不如DN,在很多场景下节俭的DN解析优化的耗费远不如选错索引的结果。 但对于用户外围的点查场景,这样的CN优化一遍DN再优化一遍的流程就会成为瓶颈,所以PolarDB-X提供XPlan机制:对于点查场景,间接传输执行打算交给DN执行。 这样的定位阐明XPlan不是必须的能力,而是精益求精的能力。目前XPlan的适用范围被限定为单张表的DQL,只反对Scan、Filter和Project算子。 XPlan在Sysbench点查上有10%以上的晋升,但线上在用户的实在场景下XPlan索引错选导致的慢查问问题频发。对于PolarDB-X来说,选错索引有两种可能:基数预计谬误和执行打算缓存下的歪斜索引。 基数预计谬误的三个常见起因统计信息缺失、歪斜数据和关联列,学术界、工业界钻研了几十年都无奈解决[2]。这些问题尽管无奈解决,然而很容易检测到,PolarDB-X根本策略是检测到这些问题就禁用XPlan,交给DN做部分索引抉择。同样发现索引错选也是容易的。通过事后和预先的检测,心愿尽量减少XPlan错选概率。 PolarDB-X的优化器与索引抉择下图是一条sql过PolarDB-X优化器的大抵过程:通过RBO和CBO后生成最好的单机执行打算,并基于CBO产生的最优执行打算的代价判断以后查问是否为AP查问,如果不是AP查问则间接结构单机执行打算,否则进一步思考是否能够走列存索引。 无奈走列存索引则基于最优单机执行打算插入shuffle算子结构分布式执行打算,否则将基于列存索引结构最优分布式执行打算。 部分索引、全局索引、归档表索引抉择都在CBO里,部分索引抉择影响的是Logicalview算子的IO代价,全局索引抉择会将扫描主表的执行打算替换为全局索引回表,归档表索引抉择能够将过滤条件简单无奈走索引的归档表扫描替换为多个简略走索引的归档表扫描。列存索引抉择是利用列存对AP查问从新生成最优的分布式执行打算。 XPlan索引抉择则是在单机优化器的最初对logicalview中进行索引抉择。这与CBO里的部分索引抉择不同,CBO里的部分索引抉择只影响Logicalview算子的IO代价进而影响整个执行打算的代价,是CN基于本人的统计信息模仿DN做索引抉择的过程,并不是DN真正应用的索引,只有XPlan会指定DN的索引。 PolarDB-X的执行打算缓存与歪斜值问题PolarDB-X的执行打算获取大抵逻辑如下 getPlan(String sql) if PlanCache doesn't contain sql : PlanCache.put(sql, getPlanByOptimizer(sql)) Plan = PlanCache.get(sql) if PlanManager contiain sql : Plan = PlanManager.choose(sql) return Plan所有的执行打算都会缓存在PlanCache中,如果PlanManager中有执行打算,则由PlanManager抉择代价最低的执行打算。 这篇文章提及了Optimize Once和Optimize Always的概念,PolarDB-X采纳的理念就是Optimize Once,尽量少进入优化器,次要的考量是PolarDB-X的优化器构造相当简单,如果采纳Optimize Always,优化器的耗时在高并发tp的查问中代价将无奈漠视。 这里回顾一下Parameterized Queries的常见问题,思考以下场景 create table hot_select ( id int not null, c_int int, c_varchar varchar(20), PRIMARY KEY (`id`), KEY i_int(c_int), KEY i_varchar(c_varchar))select * from hot_select where c_int = 1 and c_varchar = 'a';select * from hot_select where c_int = 2 and c_varchar = 'a';若满足c_int = 1的数据有1行,满足c_varchar = 'a'的数据有100行,满足c_int = 2有10000000行,则第一条查问应该走索引i_int,第二条查问应该走索引i_varchar。 ...

February 19, 2024 · 2 min · jiezi

关于数据库:Apache-DolphinScheduler数仓任务管理规范

前言: 大数据畛域对多种工作都有调度需要,以离线数仓的工作利用最多,许多团队在调研开源产品后,抉择Apache DolphinScheduler(以下简称DS)作为调度场景的技术选型。得益于DS优良的个性,在对数仓工作做运维和治理的时候,往往比拟随便,或将所有工作节点写到一个工作流里,或将每个逻辑节点独自定义一个工作流, 短少与数仓建模对应的工作治理标准; 这造成了数据管理艰难和异样容错繁琐等痛点,本文基于数仓建模规范的方法论,构建一套用于DS治理数仓工作的标准,防止以上痛点。 海豚调度数仓工作现状剖析本文缘起社区负责人的痛点定位;在应用DS做数仓工作治理时,数据建模分层落地到调度上短少标准,社区用户用起来比拟乱,基于这个起因,写了这篇文章。 在应用调度能力的时候,一些常见的场景如下: 一个工作流构建数仓所有的逻辑节点 Apache DolphinScheduler里有工作血统的概念,这个概念和数据血统有许多相似的中央;在构建调度工作的时候,用户容易将工作血统和数据血统混同,心愿在构建数仓生命周期的时候,通过工作血统呈现出数据血统的关系,这导致失落了数据建模标准的分层治理。 相似例子如下: 单个工作流: 蕴含所有计算逻辑: 长处:这样做的益处是能够在一个工作流里直观的复现数据建模; 毛病:对于数据管理艰难,只能人为的察看定位数据状况; 工作运行异样后,容错艰难,要排查所有逻辑节点,并将计算逻辑回滚,这是特地繁琐的过程; 每个逻辑节点构建一个工作流 除了将整个数仓的逻辑包装到一个工作流,还有另外一种形式:将每个逻辑节点包装成一个工作流;这种能很好的将计算逻辑解耦,工作运行异样的时候逻辑回归也清晰简略;然而仍旧没有做到正当的数仓建模分层治理,且操作繁琐,面对超大量工作时,创立工作流将成为一种累赘。 相似例子如下: 长处:优良的异样容错,工作出现异常计算的时候,前后工作逻辑就能异样回滚重跑; 毛病:工作流创立繁琐,且没有做好数仓标准的数据分层治理。 数仓工作治理调度需要剖析 从数仓的视角,任务调度外围需要是:工作类型、依赖关系、定时调度、工作优先级,以及数仓分层治理,层级依赖(调度零碎的视角,还有高可用、告警、资源管理、用户平安、易用性、可扩大等能力)。 工作类型、依赖关系、定时调度、工作优先级是零碎提供的能力,数仓分层治理和层级依赖是调度能力之上的工作治理标准。这里参考数据建模标准构建与之对应的工作治理标准。 数据建模架构如下: 数据建模到数仓开发过程中须要关注4点: 逻辑开发:数据需要的实现;数据管理:各层级数据划分;开发依赖:数据层级依赖实现;异样容错:异样工作定位和数据还原重跑。构建在调度零碎之上的数仓工作编排标准,须要满足以上要求。 数仓开发工作治理标准为了和数据建模标准保持一致,咱们依照数据建模的分层实践,设计调度工作的编排标准。 从顶层设计上将工作流定义为3类: 数仓分层工作流:ODS、DIM、DW、ADS每层一个工作流;DW层能够依据业务需要,细分出三个DWD、DWM、DWS等好实现业务需要的独自工作流治理;数仓工作Master管理工作流:将数仓分层,依照开发依赖串联到一个工作流中对立治理;异样容错工作流:数仓运行过程中,中途出错或者后果异样,须要数据环境还原,就能够将两头表清理逻辑包装在异样容错工作流,做对立数据清理,而后再从头跑数仓工作。数仓开发工作流标准如下: 数仓每层工作流只关注每层的逻辑;以ODS层为例,该层提供多个数据利用方数据反对,所以在这个工作工作流里,构建这一层的所有逻辑节点: 运行工作治理Master工作流,节点布局标准如下: 异样容错工作流: 这一个工作流,次要是为了在工作运行异样时,删除两头表计算的新增后果; 根据数据模型的表设计,想将DS的工作血统当简略数据血统应用需要的,能够在这一个工作流里将节点关联,数据清理和工作血统不抵触,还能够顺便检测数据清理状况。 结语除此之外,数仓还有一些部分概念须要在工作编排上做标准,比方须要将DS我的项目和数仓映射,一个DS项目管理一个数仓;须要将数据集市和工作流映射,ADS层有多种数据利用场景就拆分成多个工作流等;本文的标准是以数仓规范数据模型构建的,如果有非凡需要,能够在这个工作治理标准根底上做相应调整。 如果这份博客对大家有帮忙,心愿各位给i7杨一个收费的点赞作为激励,并评论珍藏一下⭐,谢谢大家!!! 制作不易,如果大家有什么疑难或给i7杨的意见,欢送评论区留言。本文由 白鲸开源科技 提供公布反对!

February 19, 2024 · 1 min · jiezi

关于数据库:一文彻底搞懂数据库三范式

一个三线城市的国企码农,酷爱技术,在这里和大家分享在国企搞技术的点点滴滴。欢送大家关注我的微信公众号:果冻想前言每天开各种会议,这不刚刚完结的组织生活会的批评环节,我又收到了一条批评,说我技术分享不多,不够,没有无效起到传帮带的作用。好吧,当前就把这些日常的传帮带都总结起来,发到这里,作为一个记录,也以备组内小兄弟们后续翻阅查看。 这几天在整顿数据库表的时候,看到之前的撑持方建的那些表,几乎不忍直视,齐全没有逻辑可言,反正就是一堆货色都放到一个表里,不晓得大学数据库实践是怎么学习的。明天在和组内小兄弟们沟通时,就说起这个货色,正好波及到数据库的三范式,就顺带总结下来。 数据库三范式这个货色是一种关系型数据库设计实践实践准则,也不是说必须去恪守,只是说咱们在进行数据库建模时,按着这个实践来执行,会更迷信一点,会更正当一点,后续扩展性会更强一点;并且能在很大水平上打消数据冗余和数据依赖性,进步数据库的性能和数据一致性。 所以,这套实践有这种那种的长处,咱们在进行关系型数据库建模时,也根本都是依照这个实践来执行的,至多依照这个来,做进去的货色不会太差。 三范式的定义: 第一范式(1NF):确保数据库中的每个列都是原子性的,即每个列都不可再分。 第二范式(2NF):在满足第一范式的根底上,确保数据库中的每个非主键列齐全依赖于主键。 第三范式(3NF):在满足第二范式的根底上,确保数据库中的每个非主键列都不传递依赖于主键。 以上是三范式的定义,可能不是很好了解,上面通过具体的数据库建模实例来进行阐明。 第一范式(1NF)第一范式(1NF)要求的是列的原子性。这样讲可能不太好了解,当初有上面这样的一个地址表: 地址ID地址详情202311212056485430000081内蒙古呼和浩特市新城区团结小区7号楼202311231036360980000279内蒙古呼和浩特市赛罕区万达一区底商101联合第一范式(1NF)的定义,很显然,地址详情这列蕴含的信息量很大,显然是能够拆分的。依照第一范式(1NF),咱们进行以下拆分: 地址ID省/自治区地市地区小区名称楼栋门牌号202311212056485430000081内蒙古呼和浩特市新城区团结小区7号楼 202311231036360980000279内蒙古呼和浩特市赛罕区万达一区底商101这样拆分完,每个列都无奈进行再次拆分了,同时使得数据库构造更加清晰和易于保护,也有利于前期的经营剖析。 第二范式(2NF)第二范式(2NF)要求每个非主键列只依赖于主键而不依赖于其余非主键列,具体的利用场景是联结主键(多个字段独特充当表的主键),这里通过以下例子来进行阐明(订单编号和产品编码组成联结主键): 订单编号产品编号购买价格购买数量订单总金额购买工夫202311212056485430000001202311212056485430000003100.0022302023/11/21 20:56:4820231121205648543000000120231121205648543000000430.0012302023/11/21 20:56:482023112310363609800002022023112120564854300000059.99134.992023/11/23 10:36:3620231123103636098000020220231121205648543000000610.00134.992023/11/23 10:36:3620231123103636098000020220231121205648543000000715.00134.992023/11/23 10:36:36间接看感觉没有什么故障,然而咱们来对上表的字段进行剖析: 购买价格:购买价格齐全依赖订单编号+产品编号,订单编号+产品编号同时确定能力确定购买价格(同一产品在不同的订单会有不同的价格);购买数量:购买数量齐全依赖订单编号+产品编号;订单编号+产品编号同时确定能力确定购买数量;订单总金额:订单总金额只依赖于订单编号,和理论的产品没有关系,咱们通过订单编号就能够明确订单总金额;所以该字段违反了第二范式(2NF);购买工夫:购买工夫只依赖于订单编号,一个订单的所有商品必定是同一时间购买的,该字段很显著和产品编号是无任何依赖关系的;所以该字段也违反了第二范式(2NF)。当初咱们进行优化,进行表拆分,拆分后失去两个表: 订单编号产品编号购买价格购买数量202311212056485430000001202311212056485430000003100.00220231121205648543000000120231121205648543000000430.0012023112310363609800002022023112120564854300000059.99120231123103636098000020220231121205648543000000610.00120231123103636098000020220231121205648543000000715.001订单编号订单总金额购买工夫2023112120564854300000012302023/11/21 20:56:4820231123103636098000020234.992023/11/23 10:36:36这样拆分完后,就合乎了第二范式(2NF),同时数据结构更加清晰,也缩小了数据冗余。 第三范式(3NF)第三范式(3NF)说直白点就是表中的非主键字段和主键字段间接相干,不容许间接相干。上面通过一个表来进行阐明(主键:部门ID)。 部门ID部门名称负责人负责人性别负责人年龄202311212056485430000001综合撑持部张三男35202311212056485430000002人力资源部李四男41很显著,部门名称和负责人和部门ID是间接关联了,而负责人性别和负责人年龄和部门ID并没有间接关系,而是和负责人间接关联的,所以就存在这种传递依赖关系了。 部门ID->负责人->负责人性别部门ID->负责人->负责人年龄这就违反了第三范式(3NF),这个时候就须要把上表拆分成两张表,以外键模式关联。如下所示: 部门ID部门名称负责人ID202311212056485430000001综合撑持部202311212056485430000003202311212056485430000002人力资源部202311212056485430000004负责人ID姓名性别年龄202311212056485430000003张三男35202311212056485430000004李四男41这样拆分后,构造立马清晰了,每个表存储的数据也都是繁多的。 总结在日常开发中,咱们少不了进行功能模块的数据库建模,而数据库三范式是设计数据库表构造的规定束缚,通过遵循三范式,能够缩小数据冗余、进步数据的一致性和准确性,并且简化数据库的设计和保护。 然而通过下面的剖析,咱们遵循了三范式,就会多了好几张表,导致在一些业务简单的场景,就会呈现多表关联查问效率低的问题。所以,有的时候进行零碎性能优化时,也会突破三范式规定,进行部分变通,做到依据具体业务场景活学活用。 但凡事都有一个然而,然而在理论开发中容许部分变通。 一个三线城市的国企码农,酷爱技术,在这里和大家分享在国企搞技术的点点滴滴。欢送大家关注我的微信公众号:果冻想

February 18, 2024 · 1 min · jiezi

关于数据库:黑客是否能够查到个人IP地址

随着互联网的遍及和数字化生存的倒退,个人隐私平安面临着越来越大的挑战。其中,IP地址作为互联网上的地址标识,波及到用户的网络流动和地位信息。IP数据云将深入探讨黑客是否可能查到集体IP地址的问题,剖析其波及的隐衷平安问题和网络攻击危险,并提出相应的防范措施。IP地址的获取路径:在互联网上,获取别人IP地址的路径并不难,其中一些常见的办法包含:网站拜访日志:一些网站会记录访问者的IP地址,并在后盾进行存储和剖析。邮件或音讯通信:发送邮件或音讯时,对方可能会获取到你的IP地址。P2P文件共享:在应用P2P文件共享软件时,你的IP地址可能会被其余用户获取到。社交网络和在线游戏:在社交网络和在线游戏中,其余用户可能会获取到你的IP地址。黑客如何获取集体IP地址黑客通常会利用各种伎俩获取集体IP地址,其中一些常见的办法包含:网络侦察:黑客可能会通过网络侦察的形式,获取到你的IP地址。歹意链接和软件:通过发送歹意链接或装置恶意软件,黑客能够获取到你的IP地址以及其余敏感信息。社会工程学:通过社会工程学伎俩,诱使用户本人泄露IP地址等信息。隐衷平安问题和网络攻击危险,集体IP地址的泄露可能会导致以下隐衷平安问题和网络攻击危险:隐衷泄露:集体IP地址的泄露可能导致个人隐私信息的泄露,如地理位置、网络流动轨迹等。网络攻击:黑客能够利用获取到的IP地址进行各种网络攻击,如DDoS攻打、入侵攻打等,对集体或组织的网络安全构成威胁。防范措施为了爱护个人隐私平安和防备网络攻击危险,能够采取以下防范措施:更新防病毒软件:定期更新防病毒软件和防火墙,及时发现和阻止恶意软件的攻打。审慎点击链接:审慎点击来自未知起源的链接,防止受到歹意链接的诱导。增强明码平安:采纳简单的明码,并定期更换明码,避免账户被黑客入侵。只管黑客能够通过各种路径获取集体IP地址,但通过采取一系列防范措施,能够无效爱护个人隐私平安和网络安全。在数字化时代,个人隐私安全意识的晋升和网络安全技术的倒退至关重要,只有这样能力更好地爱护集体和组织的平安。

February 18, 2024 · 1 min · jiezi

关于数据库:Apache-DolphinScheduler中ZooKeeperCDH不兼容问题的解决方案

背景看到Apache DolphinScheduler社区群有很多用户反馈和探讨这块问题,针对不兼容的问题,不仅须要本人从新编译各一个新包,而且因为默认是应用zk-3.8的配置,所以会呈现不兼容问题。应用zk-3.4配置即可适配3.4.x 解决办法(一)切换到我的项目源码的根门路中执行mvn clean package -T 1C -Prelease '-Dmaven.test.skip=true' '-Dcheckstyle.skip=true' '-Dmaven.javadoc.skip=true' '-Dzk-3.4'上述命令解释 mvn clean package  顺次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)等7个阶段。指定多线程编译,能够减少~ 拓展 -Dmaven.compile.fork=true 示意开启多线程mvn -T 4 install -- will use 4 threadsmvn -T 1C install -- will use 1 thread per available CPU coremvn clean package -T 1C -Dmaven.compile.fork=true-Prelease 是 Maven Release Plugin 的配置Maven中-DskipTests和-Dmaven.test.skip=true的区别 在应用mvn package进行编译、打包时,Maven会执行src/test/java中的JUnit测试用例,有时为了编译过程中跳过测试步骤,会应用参数-DskipTests和-Dmaven.test.skip=true,这两个参数的次要区别是: -DskipTests,不执行测试用例,但编译测试用例类生成相应的class文件至target/test-classes下。-Dmaven.test.skip=true,不执行测试用例,也不编译测试用例类。-D参数如果参数不存在于 pom.xml 文件中,它将被设置。如果参数曾经存在 pom.xml 文件中,其值将被作为参数传递的值笼罩。解决办法(二)批改源码中的pom.xml配置文件 1、从github下载源码间接拜访https://github.com/,登陆之后搜寻Apache DolphinScheduler! 在百度间接搜: 官网网址:https://github.com/apache/dolphinscheduler 抉择 release版本 2、将下载好的zip包解压进去,并导入IDEA工具中 ...

February 18, 2024 · 1 min · jiezi

关于数据库:PG-Style-盘点几个常用的-Postgres-环境变量

PostgreSQL 是一个功能强大的开源对象关系数据库系统,它应用并扩大了 SQL 语言,并联合了许多性能,能够平安地存储和扩大最简单的数据工作负载。PostgreSQL 的起源能够追溯到 1986 年,作为加州大学伯克利分校 POSTGRES 我的项目的一部分,并且在外围平台上领有超过 35 年的踊跃开发教训。PostgreSQL 因其通过验证的架构、可靠性、数据完整性、弱小的功能集、可扩展性以及软件背地的开源社区始终如一地提供高性能和翻新解决方案的奉献精神而博得了良好的名誉。PostgreSQL 可在所有次要操作系统上运行,自 2001 年以来始终合乎 ACID 规范,并具备弱小的附加组件,例如风行的 PostGIS 天文空间数据库扩展器。毫不奇怪,PostgreSQL 已成为许多人和组织抉择的开源关系数据库。 PostgreSQL 除了其弱小的性能外,还反对许多环境变量,这些环境变量能够通过在命令行中设置或在启动脚本中设置来应用,以管制其行为。理解这些环境变量能够帮忙 DBA 更好地治理 PostgreSQL 数据库。 接下来,咱们来介绍几个罕用的Postgres环境变量。 1. PGHOST指定 PostgreSQL 服务器的主机名或 IP 地址。它通常用于客户端工具,如psql,以指定要连贯的数据库服务器的地位。 [postgres@shawnyan ~]$ export PGHOST=192.168.8.151[postgres@shawnyan ~]$ psqlpsql (15.2)Type "help" for help.(postgres@192) [postgres] 10:19:34# \conninfoYou are connected to database "postgres" as user "postgres" on host "192.168.8.151" at port "5432".2. PGPORT指定 PostgreSQL 服务器的端口号。默认端口为5432,然而如果咱们将其更改为其余端口,能够在PGPORT环境变量中指定相应的端口号。 [postgres@shawnyan ~]$ export PGPORT=6666[postgres@shawnyan ~]$ psqlpsql (15.2)Type "help" for help.(postgres@192) [postgres] 10:21:30# \conninfoYou are connected to database "postgres" as user "postgres" on host "192.168.8.151" at port "6666".3. PGDATABASE指定连贯到的数据库名称。例如,咱们能够设置PGDATABASE为"shawnyan",示意连贯到名为"shawnyan"的数据库。 ...

February 17, 2024 · 2 min · jiezi

关于数据库:Innodb事务的实现

<article class=“article fmt article-content”><h2>事务的实现</h2><p>MySQL在进行事务处理的时候采纳了日志后行的形式来保障事务可疾速和长久运行,在写数据之前,先写日志,开始事务时,会记录该事务的一个LSN日志序列号;当执行事务时,会往Innodb_log_buffer日志缓冲区中插入事务日志(redo log);当事务提交时,会将日志缓冲区里的事务刷入磁盘,由innodb_flush_log_at_trx_commit参数进行管制何时刷入磁盘</p><ul><li>0 <strong>提早写</strong> 事务提交时不会将redo log buffer中日志写入到os buffer中,而是每秒写入os buffer并调用fsync()写入到redo log file中,如果零碎解体,将失落1秒的数据,性能最好,然而安全性最差</li><li>1 <strong>实时写,实时刷</strong> 事务每次提交都会将redo log buffer中的日志写入到os buffer并调用fsync()刷到redo log file中,尽管不会失落数据,然而每次都写入磁盘,IO性能较差</li><li>2 <strong>实时写,提早刷</strong> 每次提交将redo log buffer中的日志写入os buffer,然而每秒调用一次fsync()将os buffer中的日志写入到redo log file中</li></ul><p><!– more –></p><p>除了记录事务日志redo log外,还会记录回滚日志undo log,在进行数据批改时,因为某种原因失败了,须要进行回滚操作,能够利用undo log来将数据回滚到批改之前的样子</p><blockquote>https://zhhll.icu/2022/数据库/关系型数据库/MySQL/进阶/Innodb/2.事务的实现/</blockquote><p>本文由mdnice多平台公布</p></article>

February 15, 2024 · 1 min · jiezi

关于数据库:黄东旭向量数据库还是向量搜索插件-SQL-数据库丨我对-2024-年数据库发展趋势的思考

<article class=“article fmt article-content”><p>本文由 PingCAP 黄东旭撰写,探讨了数据库技术在 2023 年的疾速改革,并对 2024 年的数据库发展趋势进行了预测。文章重点关注了 GenAI 时代对数据库的影响,提出了在数据库抉择上的两种门路:“向量数据库”和“向量搜寻插件 + SQL 数据库”。文章强调了个性化数据服务的重要性,以及数据库在实时交互和弹性方面所起到的关键作用。 </p><p>如果咱们用一个词来总结 2023 年的数据技术畛域,那个词无疑是“急速改革”。咱们见证了数据库内核技术与云原生架构的交融演进,AI+Data 的浪潮涌现,以及用户工作负载的粗浅转变。GenAI 时代的到来,就像一股不可抗拒的潮流,推动着数据技术的每一朵浪花,朝着更智能化、更灵活化的巨浪之海奔流。 </p><p>2023 年,咱们的眼前充斥了炫目的 AI Demo 与炫技,你追我赶。转眼间,当我 们步入 2024 年,这个年份将因为 “AI 在从 Demo 到实在场景落地”的急剧转变而被人们记住。随着开源大模型老本的减速降落,企业和开发者对数据的关注也急剧回升,对数据的关注度将很快取代对模型的关注度。有预测认为,在 2023 年,用户违心在 AI 模型上投入 80% 的估算,然而在将来这一两年里,随着模型老本的升高,这一比重可能会逆转,用户将更多的投资(甚至大于 80%)偏向于数据,数据处理和剖析能力变得更加重要。</p><p>毫无疑问,AI 将会对数据处理提出十分多新的诉求,数据技术畛域也会面临着多重挑战与时机,AI 正在重塑数据技术的全新生态。咱们不禁要问:在 GenAI 的大潮中,抉择 “向量数据库”还是“以 SQL 数据库作为外围,增加向量搜寻插件”?数据库如何应答 Gen AI 对数据库扩展性和实时交互的诉求?浪涌般海量数据的实时查问会不会带来微小的老本压力?AI 带来的天然交互方式催生怎么的开发者体验 ?这些问题将在本文中一一解答</p><h2><strong>/</strong> 预测一 <strong>/</strong></h2><p>“向量数据库”还是“向量搜寻插件 + SQL 数据库”?这是一个答案很明确的问题。</p><p>如果说过来 CRUD 利用是对数据库拜访的动态封装,那么随着 GenAI 的遍及,尤其是 Chatbot 或 Agent 的产品状态,对数据的应用会是更加灵便和动静的。过来,集中的数据存储和利用是因为技术的局限,很难为集体提供个性化的服务,只管古代的 SaaS 其实很心愿往这个方向倒退,然而为每个用户都提供个性化的体验对算力和开发的挑战太高,而 GenAI 和 LLM 将提供个性化服务的老本降得很低(可能就是几段 Prompt),以至于对于数据库而言,带来几个变动:</p><p>○ 集体(或一个组织)产生的数据价值会变得越来越高,但这类数据通常不会很大</p><p>○ GenAI 会应用更加动静和灵便的形式间接拜访数据,这样效率最高</p><p>○ 对数据的拜访从边缘发动(从 Agent 或者 GenAI 间接发动)</p><p>一个很好的例子是 GPTs, GPTs 反对通过的自定义的 Prompt 和用户提供的 RESTful API 来创立本人的 ChatGPT,根底的 ChatGPT 会在它认为须要的时候以灵便的形式调用你给定的 Action。这个调用产生形式和参数是后端的 Action 提供者无奈意料的。而且能够意料的是很快 GPTs 将会提供标记个人身份信息的机制,这样对于 Action 的提供者来说,相当于后端的数据库有了最重要的索引:UserID,剩下的就很好了解了。</p><p>这里你可能会提出质疑,RAG 不是规范的做法吗?但现有的 RAG 构建的形式简直都是动态的,而常识应该是能够实时被更新的,这里不得不提到向量数据库。</p><p>对向量的反对,在去年是数据库迭代的一个热门方向,产生了很多专门的向量数据库, <strong>然而我认为,更丰盛的数据拜访接口,使得向量搜寻成为标配,然而</strong> <strong>SQL</strong> <strong>依然是基石。向量搜寻并不值得专门应用一个独立的数据库来反对,更应该是现有的数据库中的一个性能,就像</strong> :</p><pre><code class=“Plaintext”>PlaintextRust INSERT INTO tbl (user_id, vec, …) VALUES (xxx, [f32, f32, f32 …], …); SELECT * FROM tbl WHERE user_id = xxx and vector_search([f32,f32,f32,f32 …])</code></pre><p>相似的拜访可能是更合乎开发者直觉的。</p><p>而 <strong>关系型数据库人造反对插入和更新</strong> ,另外配合向量索引的搜寻能力,便能够将 RAG 变成一个能够实时更新实时查找的正反馈循环(利用 LLM 引入进行二次的 Summary ,而后将更新的 Index 贮存在 DB 中)。更重要的是, <strong>关系型数据库的引入打消了向量数据库带来的数据孤岛的问题</strong> ,当你能够将向量索引筛进去的数据关联(JOIN)到同一个 DB 中其余的数据的时候,灵活性带来的价值就得以浮现。</p><p>另一个益处是,Serverless 的产品状态,同样也将数据的所有权归还给用户自己,大家思考一下,在咱们熟知的 Web2 时代,咱们的数据是暗藏在一个个互联网公司的服务背地的黑箱,咱们没有方法间接拜访;而在 GenAI 的利用场景下,数据的交互变成一个三角的关系,用户 - 数据 (RAG) - GenAI。很有意思的是,这个正是 Web3 的现实之一,GenAI 的遍及很可能棘手也将 Web3 想实现的将数据的所有权交还给用户的现实,这在 Web2 时代是不可能实现的,这其实是一种技术现实的回归。</p><p><strong>当然,我置信在将来 RAG 会成为数据库的很重要的一种新利用场景,在这种场景中 Serverless 状态提供的云数据库服务会变成标准化的。</strong></p><h2><strong>/</strong> 预测二 <strong>/</strong></h2><p>由高价值数据驱动的利用成为 GenAI 利用的支流,弹性与实时交互成为数据库能力的基石。</p><p>在预测一里咱们提到, GenAI 时代的利用要求常识和数据是能够被实时更新的,这对数据库的弹性以及实时交互提出了十分间接的需要。</p><p>数据库的可扩展性始终是过来十年间,业界关注的重点之一。依据咱们的察看,大多数繁多在线业务,100TB 曾经是很大规模,而这个规模下的个别 OLTP 业务,曾经能够被市场上很多零碎自信的解决。</p><p>但这些数据库大多是 Shared Nothing 的零碎,Shared nothing 的零碎通常会有一个假如:在集群中的节点是对等的,只有这样数据和 Workload 能力平均的扩散在各个节点上。这个假如对于海量数据 + 拜访模式平均的场景没有问题,然而依然 <strong>有很多的业务具备显著的冷热特色, 尤其是在 GenAI 带来的数据拜访形式越来越动静和灵便的 2024 年及当前</strong> 。</p><p>咱们最常常解决的数据库问题之一就是部分热点。如果数据拜访歪斜是一个业务的人造属性的话,对等的假如就不再是正当的,更正当的形式是将更好的硬件资源歪斜给热点的数据,而冷数据库应用更便宜的存储,例如,TiDB 从一开始将存储节点(TiKV)/ 计算节点(TiDB)/ 元信息(PD)拆散,以及在起初 TiDB 5.0 中引入自定义 Placement Rule 让用户可能尽可能决定数据摆放策略,就是为了尽可能弱化节点对等假如。</p><p>然而更终极的解决办法在云端,在根本的扩展性问题失去解决后,人们开始谋求更高的资源利用效率,在这个阶段,对于 OLTP 业务来说,我想可能更好的评估规范是 Cost Per Request。因为在云端,计算和存储的老本差异是微小的,对于冷数据来说,如果没有 Traffic,你甚至能够认为老本简直为 0,然而计算却是低廉的,而在线服务不可避免的须要计算(CPU 资源),所以 <strong>高效利用计算资源,云提供弹性将成为要害</strong> 。</p><p>另外,请不要误会 ,弹性并不意味着便宜,on-demand( 随需提供的 )的资源在云上通常比 provisioned(预调配)的资源更贵,继续的 burst 肯定是不划算的,这种时候应用预留资源更适合,burst 那局部的老本是用户为不确定性领取的费用。认真思考这个过程,这可能会是将来云上数据库的一种盈利模式,</p><p><strong>与弹性同样重要的需要就是实时交互</strong> 。GenAI 时代的利用须要数据库不仅要有弱小的数据处理能力,还须要有高效的实时数据播送和同步机制。这不只是让数据可能实时更新,而是确保数据流可能实时流动,让数据库能即时捕捉到每一次交互,每一个查问,确保每一个决策都是基于最新、最精确的信息。(就是用户违心为更高价值的实时交互付钱,想想股票实时交易和直播电商的场景就晓得了)</p><p>于是整个零碎——从数据的产生到解决、再到存储和检索——都必须要在实时的框架下工作,可能在毫秒级别做出实时响应,这也须要数据库能实时在事务处理(OLTP)和剖析解决(OLAP)之间无缝同步。这样的实时交互能力,将会是古代数据库区别于传统数据库的决定性因素之一。</p><h2><strong>/</strong> 预测三 <strong>/</strong></h2><p>老本剖析曾经成为所有人关怀的问题,在云数据库的可观测性中成为独立新视角。</p><p>明天我还想谈的一点是云数据库的可观测性,尤其是它是否能让我的云生产更通明。对于数据库云服务来说,可观测性的要求会更高,因为对于开发者来说,服务商提供的 Dashboard 简直是惟一的诊断伎俩。介绍可观测性的文章也很多,类似的局部因为篇幅关系我也不打算说太多。</p><p>与传统的可观测性不一样的是: <strong>在云上,所有 Workload 都会成为客户的帐单的一部分</strong> 。对于用户来说一个新的问题便是:为什么我的帐单看起来是这样?我须要做什么能力让我的帐单更便宜?账单的可解释性做得越好,用户体验也就越好。</p><p>然而如果计费测量的粒度过细,也会影响产品自身的性能以及减少实现的老本。这外面须要均衡。但能够确定的是,在思考可观测性产品的方向上,老本剖析能够作为一个独立的新视角。</p><p>老本剖析能够帮忙用户发现零碎运行中的潜在问题,并采取措施予以优化。例如,如果用户观测到某个数据库实例的 CPU 使用率较低,但老本却很高,就能够思考将该实例的规格调整为更低的级别。</p><p>AWS 往年公布的 Cost and Usage Dashboard 和 Reinvent 上 Amazon CTO Dr. Werner 的演讲专一于老本的架构艺术也同样能够看到这个趋势。他提出了 “俭约架构” 七大法令来在云的环境中打造更加高效、可继续的零碎,为咱们提供了一个系统性的领导框架。</p><h2><strong>/</strong> 预测四 <strong>/</strong></h2><p>当 GenAI 时代的各种利用和工具变得越来越笨重,开发者体验将成为古代数据库设计的外围指标之一。</p><p>数据库平台化不仅仅是丑陋的 Web 管控界面以及一些花哨的性能堆砌。我很喜爱 PlanetScale 的 CEO Sam Lambert 在他的集体 Blog 外面关 Develop Experience 的形容他援用了乔布斯的一句话“Great art stretches taste, it doesn’t follow tastes( 平凡的艺术拓展审美边界,而不是刻意投合。)”。</p><p><strong>好用的工具之所以好用,是因为其中是饱含了设计者的巧思和品尝,而且这个设计者也必须是重度的使用者,这样人们能力领会到那些轻微的高兴与苦楚,然而又不至于沉迷其中使其自觉</strong> ,其实这对负责开发者体验的产品经理来说是极高的要求。</p><p>数据库管理工具作为一种频率不算高频、但每次应用都很庄重的工具,在 AI 和云的时代,我认为有一些与体验严密相干的设计准则是须要恪守的:</p><p>API First, 数据库平台应该提供稳固的 / 前向兼容的 API,所有在管控平台里无能的事件,API 都要能做到,最好你的管控平台是基于你的 API 结构的。这为你提供一个性能完备的好用的 CLI Tool 也是要害的必要条件。</p><p>应用对立的认证体系,在设计阶段将管控的认证和用户体系与数据库外部的认证体系买通,传统的数据库基于用户名和明码的权限体系在云的时代是不够的。这为了后续与云的 IAM 和 Secret 管理体系对接打下基础。</p><p>对不同的性能构建不同的 / 稳固的小工具 (Do one thing, do things well),然而通过一个对立的 CLI 入口和语义零碎进行调用。比拟好的例子是 rustup, 甚至 git 也是个很好的例子。</p><p>略微总结一下,2024 年,数据和数据库技术依然处于微小的改革期,谁也没方法预测将来,因为咱们就身处这么一个不确定性微小的时代。但好的一面是,翻新依然层出不穷。我明天预测的,很可能过几个月就会被我本人全副颠覆,也是很失常的事件,如果能给当下的你有所启发,那就够了。</p></article> ...

February 15, 2024 · 2 min · jiezi

关于数据库:MySQL查询状态

MySQL查问状态在一个查问周期中,MySQL任何时刻都有一个状态,该状态可能会变动很屡次,能够应用show full processlist来进行查看 Sleep 线程正在期待客户端发送新的申请Query 线程正在执行查问或者正在将后果发送给客户端Locked 该线程正在期待表锁,行锁不会体现在线程状态中Analyzing and statistics 线程正在收集存储引擎的统计信息,并生成查问的执行打算Copying to tmp table [on disk] 线程正在执行查问,并且将其后果都复制到一个长期表中,该状态要么是Group by操作,要么是文件排序操作,或者是union操作,如果这个状态有on disk标记,示意MySQL正在将一个内存长期表放到磁盘上Sorting Result 线程正在对后果集进行排序Sending data 线程可能在多个状态之间传送数据,或者在生成后果集,或者在向客户端返回数据https://zhhll.icu/2022/数据库/关系型数据库/MySQL/进阶/32.MySQL查问状态/本文由mdnice多平台公布

February 14, 2024 · 1 min · jiezi

关于数据库:MySQL双写机制

<article class=“article fmt article-content”><h2>双写机制</h2><h3>问题的呈现</h3><p>在产生数据库宕机时,可能Innodb正在写入某个页到表中,然而这个页只写了一部分,这种状况被称为局部写生效,尽管innodb会先写重做日志,在批改页,然而重做日志中记录的是对页的物理操作,然而如果这个页自身曾经产生了损坏,对页进行重做是没有意义的</p><p><!– more –></p><h3>双写的呈现</h3><p>为了解决这个问题,提出了双写机制</p><h4>双写原理</h4><p>双写(doublewrite)由两局部组成,一部分是内存中的doublewrite buffer,大小为2M,另一部分是屋里磁盘上共享表空间中间断的128个页,大小也是2M。再对缓冲池中的脏页进行刷新时,并不间接写磁盘,而是会通过memcpy函数将脏页复制到内存中的doublewrite buffer,之后通过doublewrite buffer再分两次,每次1M程序地写入共享表空间的物理磁盘上,而后马上调用fync函数,同步磁盘,防止缓冲写带来的问题</p><pre><code class=“sql”>– 查看doublewrite的运行状况show global status like ‘innodb_db%’ \G*************************** 1. row Variable_name: Innodb_dblwr_pages_written 双写页数 Value: 98848391 2. row ***************************Variable_name: Innodb_dblwr_writes 写入次数 Value: 9607931</code></pre><blockquote>https://zhhll.icu/2021/数据库/关系型数据库/MySQL/进阶/31.双写机制/</blockquote><p>本文由mdnice多平台公布</p></article>

February 13, 2024 · 1 min · jiezi

关于数据库:MySQL监控Innodb信息

<article class=“article fmt article-content”><h2>Innodb监控</h2><p>Innodb因为反对事务操作,是mysql中应用最多的存储引擎,所以如何监控Innodb存储引擎以进行性能优化是在应用mysql过程中遇到最多的,那么如何进行监控呢?</p><h3>show engine</h3><pre><code class=“sql”>– 显示innodb存储引擎状态的统计和配置信息show engine innodb status;展现的次要内容有—————–BACKGROUND THREAD –后盾线程—————–srv_master_thread loops: 19610306 srv_active, 0 srv_shutdown, 9705136 srv_idle –统计Innodb启动后的流动srv_master_thread log flush and writes: 29312902 –写入和刷新日志的次数———-SEMAPHORES –信号量蕴含了线程期待互斥锁或读写锁的信息———-OS WAIT ARRAY INFO: reservation count 52795642 –os期待数组信息,调配插槽的次数OS WAIT ARRAY INFO: signal count 57522728 –os期待数组信息,线程通过数组失去信号的次数RW-shared spins 0, rounds 77349143, OS waits 9180114 –共享锁期间,读写锁存器上自旋期待个数,自旋循环迭代次数以及操作系统调用的期待个数RW-excl spins 0, rounds 179767865, OS waits 2534243 –排他锁期间,读写锁存器上自旋期待个数,自旋循环迭代次数以及操作系统调用的期待个数RW-sx spins 2068750, rounds 40171680, OS waits 844522 –共享排他锁期间,读写锁存器上自选期待个数,自旋循环迭代次数以及操作系统调用的期待个数Spin rounds per wait: 77349143.00 RW-shared, 179767865.00 RW-excl, 19.42 RW-sx –对于每一个互斥锁,操作系统调用期待的每一个自旋循环迭代个数————TRANSACTIONS –蕴含所有以后正在执行的事务的信息————Trx id counter 1888483436 –以后事务idPurge done for trx s n:o < 1888483436 undo n:o < 0 state: running but idle –所有编号小于1888483436的事务都曾经从历史记录列表中革除了,革除旧的MVCC行时所用的事务id,这个值与以后事务ID进行比拟,就能够晓得有多少老版本的数据未被革除History list length 17 –历史列表的长度,位于Innodb数据文件的撤销空间里的页面的数目,如果事务执行了更新并提交,该数目就会减少,当清理过程移除旧版本数据时,该数目会缩小LIST OF TRANSACTIONS FOR EACH SESSION: 以后事务列表—TRANSACTION 422068961001072, not started0 lock struct(s), heap size 1136, 0 row lock(s)—TRANSACTION 422068960999248, not started0 lock struct(s), heap size 1136, 0 row lock(s)—TRANSACTION 422068961005632, not started0 lock struct(s), heap size 1136, 0 row lock(s)—TRANSACTION 422068961013840, not started0 lock struct(s), heap size 1136, 0 row lock(s)—TRANSACTION 422068961012016, not started0 lock struct(s), heap size 1136, 0 row lock(s)—TRANSACTION 422068961010192, not started0 lock struct(s), heap size 1136, 0 row lock(s)—TRANSACTION 422068961001984, not started0 lock struct(s), heap size 1136, 0 row lock(s)—TRANSACTION 422068961000160, not started0 lock struct(s), heap size 1136, 0 row lock(s)—TRANSACTION 422068961017488, not started0 lock struct(s), heap size 1136, 0 row lock(s)—TRANSACTION 422068961011104, not started0 lock struct(s), heap size 1136, 0 row lock(s)—TRANSACTION 422068961012928, not started0 lock struct(s), heap size 1136, 0 row lock(s)—TRANSACTION 422068961004720, not started0 lock struct(s), heap size 1136, 0 row lock(s)—TRANSACTION 422068961002896, not started0 lock struct(s), heap size 1136, 0 row lock(s)—TRANSACTION 422068961003808, not started0 lock struct(s), heap size 1136, 0 row lock(s)—TRANSACTION 422068961007456, not started0 lock struct(s), heap size 1136, 0 row lock(s)——–FILE I/O –各种IO操作的Innodb外部线程以及执行了多少次IO操作———- 有四个线程– insert buffer thread 负责插入缓冲合并– log thread 负责异步刷日志– read thread 执行预读操作以尝试事后读取Innodb预感须要的数据– write thread 刷脏缓冲I/O thread 0 state: waiting for completed aio requests (insert buffer thread) –IO线程的状态I/O thread 1 state: waiting for completed aio requests (log thread)I/O thread 2 state: waiting for completed aio requests (read thread)I/O thread 3 state: waiting for completed aio requests (read thread)I/O thread 4 state: waiting for completed aio requests (read thread)I/O thread 5 state: waiting for completed aio requests (read thread)I/O thread 6 state: waiting for completed aio requests (write thread)I/O thread 7 state: waiting for completed aio requests (write thread)I/O thread 8 state: waiting for completed aio requests (write thread)I/O thread 9 state: waiting for completed aio requests (write thread)Pending normal aio reads: [0, 0, 0, 0] , aio writes: [0, 0, 0, 0] , ibuf aio reads:, log i/o’s:, sync i/o’s:Pending flushes (fsync) log: 0; buffer pool: 0 – 挂起操作的信息,aio是指异步io83934578288 OS file reads, 282688772 OS file writes, 190348192 OS fsyncs –innodb启动后的总统计信息984.40 reads/s, 16384 avg bytes/read, 10.15 writes/s, 9.12 fsyncs/s –最初一次显示后的总统计信息————————————-INSERT BUFFER AND ADAPTIVE HASH INDEX –插入缓冲区与自适应散列统计信息————————————-Ibuf: size 1, free list len 3078, seg size 3080, 8815726 merges –在页中插入缓冲索引树的以后大小,闲暇列表的长度,在蕴含插入缓冲树与头信息的文件段中已调配页的个数,被合并页的个数merged operations: insert 6898371, delete mark 38430046, delete 1226485 –通过类型辨别,索引页被执行合并操作的次数discarded operations: insert 1019, delete mark 0, delete 0 –毋庸合并抛弃操作的数量Hash table size 34673, node heap has 1 buffer(s)Hash table size 34673, node heap has 74 buffer(s)Hash table size 34673, node heap has 1 buffer(s)Hash table size 34673, node heap has 1 buffer(s)Hash table size 34673, node heap has 1 buffer(s)Hash table size 34673, node heap has 2 buffer(s)Hash table size 34673, node heap has 28 buffer(s)Hash table size 34673, node heap has 7 buffer(s)5203.54 hash searches/s, 128.14 non-hash searches/s –胜利应用自适应散列索引查找的数量,当不能应用自适应索引时向下搜寻B树的次数—LOG –Innodb日志中流动信息—Log sequence number 319041331834 –以后日志序号Log flushed up to 319041331699 – 日志曾经刷到的地位Pages flushed up to 319033170877 Last checkpoint at 319033170877 – 上一个检查点,以后日志序列号LSN0 pending log flushes, 0 pending chkp writes 169033177 log i/o’s done, 8.92 log i/o’s/second –挂起的日志写入次数,挂起的检查点写入个数,innodb启动后的IO操作个数,从最近一次显示之后的每秒IO操作个数———————-BUFFER POOL AND MEMORY –Innodb缓冲池与内存应用状况———————-Total large memory allocated 137428992 –调配的内存Dictionary memory allocated 1204989 –被数据字典表与索引对象所占空间的字节数Buffer pool size 8191 –缓冲池个数Free buffers 1024 –闲暇缓冲区个数Database pages 7052 –以后缓冲区LRU队列的长度(调配用来存储数据库页的页数)Old database pages 2583 –旧的LRU队列的长度Modified db pages 530 –须要刷新的页面的数量(脏数据库页数)Pending reads 0 –挂起读操作的个数Pending writes: LRU 0, flush list 0, single page 0 –通过LRU算法,期待刷新的页数Pages made young 983912385, not young 304833753259 –因为最近第一次被拜访时,变成新页面的数目和没有变成新页面的数目1.54 youngs/s, 16246.04 non-youngs/s – 上述两个值每秒的速率Pages read 83934649301, created 4135172, written 103030852 –读操作的页面数目,在缓冲区中创立然而没有读取的页面数目,写操作的页面数目984.40 reads/s, 0.17 creates/s, 1.15 writes/s – 上述值美好的速率Buffer pool hit rate 972 / 1000, young-making rate 0 / 1000 not 478 / 1000 –读取到的页面数与取得的缓冲池页面的比例,变为新页面的页面数与取得缓冲池页面的比例,没有变为新页面的页面数与取得缓冲池页面的比例Pages read ahead 913.79/s, evicted without access 5.60/s, Random read ahead 0.00/s –预读的速率与不通过拜访剔除的预读页面的个数LRU len: 7052, unzip_LRU len: 0 –LRU列表的长度,unzip_LRU列表的长度I/O sum[4121]:cur[0], unzip sum[0]:cur[0] –IO操作的次数:以后距离的IO————–ROW OPERATIONS –行操作————–0 queries inside InnoDB, 0 queries in queue –以后有多少个正在执行的查问,在innodb_thread_concurrency队列中的查问个数0 read views open inside InnoDB –只读视图的数量Process ID=1543, Main thread ID=140593683990272, state: sleeping –线程id以及状态Number of rows inserted 56092883, updated 133093048, deleted 40729879, read 477150639699 –从innodb启动后,插入、更新、删除、读取的行数0.19 inserts/s, 7.73 updates/s, 0.00 deletes/s, 138100.85 reads/s – 速率</code></pre><p><!– more –></p><pre><code class=“sql”>– 展现Innodb的互斥体信息show engine innodb mutex;Type Name StatusInnoDB rwlock: dict0dict.cc:2782 waits=4InnoDB rwlock: dict0dict.cc:1228 waits=80InnoDB rwlock: log0log.cc:846 waits=75InnoDB sum rwlock: buf0buf.cc:1460 waits=11– name列显示了创立互斥体的源文件和行号– status列显示了互斥体在操作系统上的期待次数</code></pre><h3>show status</h3><h4>通过查看日志文件</h4><pre><code class=“sql”>show status like ‘innodb%log%‘Variable_name ValueInnodb_log_waits 0 日志文件太小时,操作必须期待日志刷新的等待时间计数器,该值如果长期大于0,能够适当减少日志文件大小Innodb_log_write_requests 4539 日志写入申请的数量Innodb_log_writes 22 数据被写入日志的次数Innodb_os_log_fsyncs 1020 操作系统文件同步的数量(fsync()办法调用)Innodb_os_log_pending_fsyncs 0 阻塞的文件同步申请的数量,如果该值开始增长并长期大于0,须要查看磁盘拜访问题Innodb_os_log_pending_writes 0 阻塞的日志写申请的次数,如果该值开始增长并长期大于0,须要查看磁盘拜访问题Innodb_os_log_written 2855424 写入日志中的字节总量Innodb_available_undo_logs 128</code></pre><h4>缓冲池信息</h4><p>缓冲池是Innodb缓存频繁拜访数据的中央,对缓冲池内数据的任何更新也会被缓存</p><pre><code class=“sql”>– 能够查看存储引擎的统计信息,其中蕴含有缓冲池的信息show engine innodb status;截取出缓冲池的信息来进行剖析———————-BUFFER POOL AND MEMORY———————-Total large memory allocated 137428992Dictionary memory allocated 223164Buffer pool size 8191Free buffers 7374 空的且可用于缓冲数据的缓冲段个数Database pages 809 Old database pages 299Modified db pages 0 发生变化的页数Pending reads 0 期待中的读申请个数Pending writes: LRU 0, flush list 0, single page 0Pages made young 0, not young 00.00 youngs/s, 0.00 non-youngs/sPages read 503, created 306, written 25340.00 reads/s, 0.00 creates/s, 0.00 writes/sNo buffer pool page gets since the last printoutPages read ahead 0.00/s, evicted without access 0.00/s, Random read ahead 0.00/sLRU len: 809, unzip_LRU len: 0I/O sum[0]:cur[0], unzip sum[0]:cur[0]</code></pre><p>在查看一下缓冲区相干的变量</p><pre><code class=“sql”>show status like ‘innodb%buf%‘Variable_name ValueInnodb_buffer_pool_pages_data 809 含有数据的页数,包含不变和扭转的页Innodb_buffer_pool_bytes_data 13254656 含有数据的字节数Innodb_buffer_pool_pages_dirty 0 扭转的字节数Innodb_buffer_pool_bytes_dirty 0 扭转的页的数目Innodb_buffer_pool_pages_flushed 2525 缓冲池页面被刷新的次数Innodb_buffer_pool_pages_free 7374 空页面的数目Innodb_buffer_pool_pages_misc 8 用于管理工作的页数,公式为’Innodb_buffer_pool_pages_total-Innodb_buffer_pool_pages_free-Innodb_buffer_pool_pages_data’Innodb_buffer_pool_pages_total 8191 缓冲池中的总页数Innodb_buffer_pool_read_ahead_rnd 0 扫描大块数据时产生随机读头的数量Innodb_buffer_pool_read_ahead 0 Innodb_buffer_pool_read_ahead_evicted 0Innodb_buffer_pool_read_requests 107632 逻辑读申请的次数Innodb_buffer_pool_reads 504 间接从磁盘中逻辑读取的次数(没有从缓冲池中读)Innodb_buffer_pool_wait_free 0 如果缓冲池忙碌且没有空页,innodb须要期待页面刷新,该值示意期待次数,若始终大于0,可适当减少缓冲池大小Innodb_buffer_pool_write_requests 47403 写入innodb缓冲池的次数</code></pre><h4>线程和连贯统计信息</h4><p>应用<code>show status like ‘变量’</code>来查问,这些变量用来跟踪尝试的连贯、退出的连贯、网络流量和线程统计</p><ul><li>Connections</li><li>Max_used_connections</li><li>Threads_connected</li><li>Aborted_clients</li><li>Aborted_connects 如果不为0,示意有人尝试连贯失败</li><li>Bytes_received</li><li>Bytes_sent</li><li>Slow_launch_threads</li><li>Threads_cached</li><li>Threads_created</li><li>Threads_running</li></ul><h4>二进制日志状态</h4><ul><li>Binlog_cache_use和Binlog_cache_disk_use示意在二进制日志缓存中有多少事务被存储过,以及多少事务因为超过二进制日志缓存而被存储到一个临时文件中</li><li>Binlog_stmt_cache_use和Binlog_stmt_cache_disk_use示意非事务语句对应的度量值</li></ul><h4>命令计数器</h4><p>Com_*变量统计了每种类型的SQL发动的次数</p><h4>临时文件和长期表</h4><p>通过Create_tmp%来查看隐式临时文件和长期表的统计</p><h4>select类型</h4><p>select_*变量统计select查问的计数器</p><ul><li>Select_full_join 穿插连贯或并没有条件匹配表中行的连贯的数目,如果存在,须要查看sql语句</li><li>Select_full_range_join 应用在表t1中的一个值来从表t2中通过参考索引的区间内获取行所做的连接数,比Select_scan开销大些</li><li>Select_range 扫描表的一个索引区间的连贯数目</li><li>Select_range_check 在表t2中从新评估表t1中的每一行的索引是否开销最小所做的连接数,意味着表t2中对该连贯而言并没有应用索引,这种查问应该防止,开销很大</li><li>Select_scan 扫描整张表的连贯数目</li></ul><h4>排序</h4><ul><li>Sort_merge_passes 依赖于sort_buffer_size服务器变量,sort_buffer_size来包容排序的行块,当实现排序后,会将这些排序后的行合并到后果集中,此时就会减少Sort_merge_passes值</li><li>Sort_scan和Sort_range 当mysql从文件排序后果中读取曾经排好序的行并返回给客户端会导致这两个变量的增长,如果是当Select_scan减少时Sort_scan减少;如果是Select_range减少时Sort_range减少</li></ul><h3>information_schema数据库中对于innodb的表</h3><p>information_schema数据库中有几个对于innodb的非凡表,能够用于监控压缩、事务和锁</p><ul><li>INNODB_CMP表 显示压缩表的详细信息和统计信息</li><li>INNODB_CMP_RESET表 与INNODB_CMP信息雷同,然而会在查问表时将重置统计信息,能够定期跟踪统计信息</li><li>INNODB_CMPMEM表 显示在缓冲池中应用压缩的详细信息和统计信息</li><li>INNODB_CMPMEM_RESET表 与INNODB_CMPMEM信息雷同,然而会在查问表时将重置统计信息,能够定期跟踪统计信息</li><li>INNODB_TRX表 显示所有事务的详细信息和统计信息,包含事务状态和以后正在运行的查问信息</li><li>INNODB_LOCKS表 显示事务申请的锁的详细信息和统计信息,形容每个锁的状态、模式、类型等信息</li><li>INNODB_LOCK_WAITS表 显示被阻塞的事务申请的锁的详细信息和统计信息,形容每个锁的状态、模式、类型和阻塞事务</li></ul><blockquote>https://zhhll.icu/2021/数据库/关系型数据库/MySQL/进阶/29.Innodb监控/</blockquote><p>本文由mdnice多平台公布</p></article> ...

February 12, 2024 · 5 min · jiezi

关于数据库:MySQL分组优化

<article class=“article fmt article-content”><h2>分组优化</h2><p>在应用group by进行分组时,实际上也须要进行排序操作,与order by相比,group by次要是多了排序之后的分组操作</p><p>group by的实现有三种形式</p><ul><li>应用涣散索引扫描实现group by</li><li>应用紧凑索引扫描实现group by</li></ul><p><!– more –></p><h3>应用涣散索引扫描实现group by</h3><p>MySQL齐全利用索引扫描来实现group by</p><blockquote>在应用explain执行打算时extra字段中呈现using index for group by示意应用了涣散索引扫描实现的group by操作</blockquote><p><strong>须要满足的条件</strong></p><ul><li>group by条件字段必须在同一个索引中最后面的间断地位</li><li>在应用group by的同时,只能应用min和max这两个聚合函数</li><li>如果用到了该索引中group by条件之外的字段条件时,必须以常量模式存在</li></ul><h3>应用紧凑索引扫描实现group by</h3><p>紧凑索引与涣散索引的区别次要在于须要在扫描索引的时候,读取所有满足条件的索引键,而后依据读取到的数据来实现group by操作失去相应的后果</p><blockquote>MySQL会先尝试应用涣散索引扫描实现group by,当发现条件不满足时,才会尝试应用紧凑索引扫描</blockquote><p>当group by条件字段并不间断或者不是索引前缀局部的时候,无奈应用涣散索引扫描,才会尝试应用紧凑索引扫描来实现</p><h3>应用长期表实现group by</h3><p>MySQL在进行group by操作的时候要想利用索引,必须满足group by的字段必须同时寄存于同一个索引,且该索引是一个有序索引,如果无奈找到适合的索引能够利用的时候,就不得不先读取须要的数据,而后通过长期表来实现group by操作</p><blockquote>https://zhhll.icu/2021/数据库/关系型数据库/MySQL/进阶/28.分组优化/</blockquote><p>本文由mdnice多平台公布</p></article>

February 11, 2024 · 1 min · jiezi

关于数据库:IP地址分配的原则确保网络有效性和可管理性

IP地址是互联网通信的要害根底,它们用于标识和定位设施在网络上的地位。为了确保网络的有效性和可管理性,IP地址调配须要遵循肯定的准则和准则。本文将介绍IP地址调配的准则,以帮忙网络管理员和运营商更好地布局、治理和保护网络。IP地址调配的准则 唯一性:每个设施在网络上必须具备惟一的IP地址。反复的IP地址会导致通信抵触和网络故障。因而,IP地址调配必须确保每个调配的地址都是举世无双的。层次性:IP地址通常依照层次结构进行调配,以简化路由和治理。这包含将IP地址分为网络局部和主机局部,其中网络局部用于标识子网或网络,主机局部用于标识特定设施。这种分级的办法使得路由器可能更高效地传送数据包。地址分类:IPv4地址空间被划分为不同的类别(A、B、C、D、E类),每个类别有不同的地址范畴和主机容量。依据网络的规模和需要,抉择适合的地址类别十分重要。例如,大型组织可能须要应用B类地址,而小型网络能够应用C类地址。子网划分:子网划分容许将一个大网络分成更小的子网,以进步网络管理的灵活性。这对于大型组织和企业来说尤为重要,因为它们能够依据部门、地位或性能将网络划分为多个子网,并更好地管制流量和安全性。DHCP(动静主机配置协定):DHCP是一种自动化IP地址调配的协定,它容许设施在连贯到网络时主动获取IP地址、子网掩码、默认网关等信息。这简化了网络管理,尤其是在大型网络中。IPv6的宽泛采纳:随着IPv4地址耗尽,IPv6作为下一代互联网协议被宽泛采纳。IPv6地址空间微小,确保了足够的地址供给,并采纳简化的分配原则,缩小了地址抵触的可能性。保留地址和非凡用处地址:网络中有一些IP地址范畴被保留用于非凡用处,如公有IP地址、回环地址和多播地址。这些地址不应调配给理论设施,以避免与互联网上其余设施发生冲突。监测和审计:网络管理员应定期监测IP地址的应用状况,辨认未应用的地址并回收它们,以便更无效地治理IP地址资源。IP地址调配是确保网络有效性和可管理性的关键因素。遵循上述准则能够帮忙网络管理员和运营商更好地布局和保护网络,确保设施可能无效地通信,并缩小潜在的抵触和故障。随着互联网的一直倒退和IPv4地址的枯竭,IPv6的宽泛采纳将成为将来的趋势,网络业余人员须要适应这一变动并更新其管理策略。通过遵循这些准则,网络将可能更加稳固、平安和可扩大。

September 28, 2023 · 1 min · jiezi

关于数据库:轻量级业务福音TDengine-Cloud-在国轩高科储能项目中的应用

在咱们的“海内某储能我的项目”我的项目中,须要实时监测电池平安,采集记录每次应用的充放电过程、电流/电压等值,而此类数据都带有工夫戳,是典型的时序数据。为了应答将来海量的用户应用数据,咱们须要抉择一款业余的时序数据库(Time Series Database)。 咱们的业务属于海内,去年是通过 2.x 版本在海内本地化部署,但因为保护团队位于国内,首先在网络通信上就有不小的麻烦。其次,因为部署的是开源版 TDengine ,须要本人部署优化、学习文档、通过社区反馈问题等等,有不少的工夫老本。起初, TDengine 官网于今年初公布的时序数据云平台 TDengine Cloud 便进入了咱们的视线。因为咱们以后业务量并不大,因而对咱们来说 TDengine Cloud 最直观的帮忙就是:全托管。 云服务附带和 TDengine 企业版同级别的服务,因而咱们不再须要放心部署、优化、扩容、备份、异地容灾等事务,缩小了我方开发人员的累赘,可全心关注外围业务。因为咱们的设施量临时不多,依据官网现有的定价规定,根底版本便可满足。在通过计费方案估算器计算后,最终咱们抉择了 1200 元/月的根底版规格。 咱们针对每个储能设施独自建表,一类储能设施建设一个超级表,包含用电量、充电量、用电状态、充电状态等指标,共一百余列,每个设施 7*24h 地以每 10 秒一行的频率写入数据库。通过“数据浏览器”的页面,能够很轻松地看到库/表的元数据信息: 写入能力剖析TDengine 依据时序数据的特色专门设计的一个设施一张表、列式压缩、标签这几个弱小的翻新点,从根本上解决了数据写入须要加锁、行式压缩效率低、静态数据冗余存储这几大难题。 咱们的数据处理流程如下图所示,某类储能设施产生的时序数据会以 MQTT 形式上传,其中业务数据转发给 PostgreSQL,设施产生的时序数据以及设施运行日志、设施状态数据转给 TDengine。中台各零碎则会统一规划应用这些数据库中的数据,来用于剖析计算,也能够间接管制设施下发指令。最终,借助 PC Web、APP 以及其余治理平台等软件形式在前端体现。 在测试阶段,TDengine 的数据压缩率能够轻松达到 10% 以内,每秒能够写入数百万行数据。在具体实际中也很好地达到了这个写入成果。 除了写入和压缩性能,TDengine 的查问能力也是咱们比拟关注的。 查问成果剖析为了提供高质量的售后服务以及晋升用户应用体验,科学合理地应用上述写入的数据,咱们会做很多类型的查问,比方监测用电产品的衰弱状态、剖析设施用电量趋势、使用寿命等等。 以下是几个典型的查问: 利用会话窗口统计每一段间断工夫距离小于等于 1 分钟工夫内的单设施输出功率之和: select FIRST(ts) firstTs, LAST(ts) lastTs, count(*) countVal, sum(input_total_power) totalPower from device_data_58CF7920B63C where ts >= '2023-08-09T00:00:00.000Z'and ts< '2023-08-10T00:00:00.000Z' SESSION(ts, 1m) 通过 interval 查看设施输出功率的趋势,并且应用了 offset 时区的偏移: ...

September 28, 2023 · 1 min · jiezi

关于数据库:一文带你走进-Linux-小工具-tmux

一、背景Linux shell 是 Linux 程序员、运维人员不可或缺的工具。往往是通过 ssh 工具(如 XShell 和 SecurtCRT)连贯到 Linux,执行 shell 命令。 你是否有遇到如下的状况: (1)一个命令须要很长时间能力执行实现,然而因为与 Linux 连贯中断,或者执行的窗口敞开了,导致命令提前退出; (2)须要同时看两个或更多的窗口,比照文件内容或监控多个工作。 如何解决上述遇到的状况,是否存在牢靠的工具可供使用?本期技术贴将为大家带来 Linux 小工具 - tmux 的介绍,它是一个 terminal multiplexer(终端复用器),能够启动一系列终端会话。次要特点是 shell 连贯断开后,窗口中依然放弃运行环境。当下次登录到该服务器后,能够通过 attach 命令连贯到之前的窗口,持续之前的工作。 二、装置tmux 是一个用 C 语言开发的开源工具,源码地址:https://github.com/tmux/tmux,以后有 28.9k 个 star,可见其很受欢迎。只能在 Linux 生态的环境中运行,常见的 Linux 发行版中都内置了安装包,另外也能够源码装置。 1. 源码装置 git clone https://github.com/tmux/tmux.git cd tmux sh autogen.sh ./configure && make2. 安装包装置 # Ubuntu 或 Debian $ sudo apt-get install tmux y  # CentOS 或 Fedora $ sudo yum install tmux -y  # Mac $ brew install tmux三、基本概念在应用 tmux 之前,先要理解 tmux 中的几个概念: session(会话):tmux 的架构是由 server 和 client 组成,它们之间通过本地 socket 交互。一个 session 示意一个与 server 的连贯,容许任意多个使用者 attach 到这个 session 上,他们将看到完全相同的内容;window(窗口):一个 session 蕴含任意多个 window,每一个 window 都占用整个屏幕;pane(子窗口):window 能够被拆分成任意多个子窗口,称之为 pane,这些 pane 能够程度或垂直散布。四、常用命令1. 根底命令 ...

September 28, 2023 · 5 min · jiezi

关于数据库:利用位置数据提高营销效率

在数字化时代,营销畛域产生了微小的改革,其中之一是通过利用地位数据来进步营销效率。地位数据是通过挪动设施和互联网连贯获取的信息,它能够提供无关用户所在位置的实时和历史信息。这一数据的利用不仅能够帮忙企业更好地理解其指标受众,还能够帮忙他们提供更准确、个性化的营销体验。本文将探讨如何利用地位数据来进步营销效率以及其潜在益处。第一局部:理解指标受众通过地位数据,企业能够更全面地理解其指标受众的行为和习惯。这包含他们常常去哪里,他们的旅行门路,以及他们的趣味和爱好。这一信息对于确定指标市场、制订针对性广告策略以及改良产品或服务都至关重要。 准确的定位:通过GPS和Wi-Fi等技术,能够获取用户的准确地位信息,帮忙企业理解用户在不同地点的流动。趋势剖析:通过历史地位数据,能够剖析用户的趋势和习惯,预测他们将来的需要和行为。第二局部:个性化营销地位数据为企业提供了一个机会,即依据用户的地位和行为来提供个性化的营销体验。这能够通过以下形式实现:本地广告:依据用户所在位置向他们提供本地商家的广告和优惠券,减少销售机会。地位根底的举荐:基于用户的地位和行为,提供相干产品或服务的个性化举荐,进步购买率。事件营销:依据用户所在位置和行将产生的事件,提供相干产品或服务的广告,例如体育赛事、音乐会或节日流动。第三局部:改良客户体验地位数据还能够帮忙企业改良客户体验,加强客户忠诚度。通过理解用户所在位置,企业能够提供更便捷的服务,进步用户满意度。定位服务:例如,疾速食品连锁店能够应用地位数据来施行定位服务,容许客户提前下订单并在达到店铺时取餐。精准导航:零售商能够应用地位数据来提供室内导航,帮忙客户找到他们所需的商品。地位反馈:企业能够通过地位数据收集客户反馈,理解他们在特定地位的体验,以改良服务和产品。利用地位数据来进步营销效率是当今数字化营销策略的要害组成部分。这种数据能够帮忙企业更好地理解指标受众、个性化营销、改良客户体验,从而进步销售和客户忠诚度。然而,企业在应用地位数据时必须恪守隐衷法规,爱护用户的个人信息,并取得他们的明确批准。通过审慎而负责任的应用地位数据,企业能够在竞争强烈的市场中怀才不遇,实现更高的市场份额和盈利能力。

September 27, 2023 · 1 min · jiezi

关于数据库:产品解读-数据服务平台KDP

1.KDP 是什么?KDP 是一款面向 AIoT 场景的数据服务平台——以一体多模的大数据根底平台作为基座,提供 OLTP、OLAP、HTAP、时序、图、全文检索、宽表等多种数据存储和计算服务;此外,还提供下层数据集成、数据开发、数据治理、数据共享、数据可视化、智能 BI等性能,致力于满足企事业单位数据湖、数据仓库等多样需要,助力企业激活数据价值,赋能下层利用建设,打造行业常识核心,提供常识构建能力,撑持行业资产构建。 2.KDP 核心理念随同企业信息化建设的一直倒退,数据也出现多元化演变趋势,数据分析和决策逐步成为企业数据管理的重点。然而,因为晚期信息系统建设不足对立业务布局,随同着业务的继续,信息规范不对立、数据冗余、数据孤岛分享难、数据录入品质低、数据价值难开掘等瓶颈问题已日益凸显。 随着政策对古代企业数字化建设的要求和标准,以及以后大数据背景下对于数据私密性和安全性的要求,如何建设数据采集、荡涤、治理、存储、治理、共享、应用等充沛闭环的数据生态,保障数据处理能力与管理水平成为关键问题。 KDP 提供数据采集、数据集成、数据治理、数据迷信、数据服务、数据可视化于一体的“一站式”数据服务。以“数据”为主线,从各个业务异构数据源为出发点,实现数据迁徙、数据荡涤、数据采集、数据治理等指标,构建以标准、疏导、流程化为特色的“数据资源管理核心”,并在新一轮的技术倒退下,更新数据底层架构,确保治理好数据的同时为用户提供高效稳固的大数据能力,同时对数据前端利用做好集成、计算,改变传统扩散系统的形式提供数据化服务,帮忙用户充沛聚焦数据价值。 3.KaiwuDB 外围性能(1)通用数据集成、支持物联网数据采集剖析多源异构数据集成,反对多种异构数据源连贯;兼容多种通信协议,例如:MQTT、Modbus、CoAP、HTTP、RS-232、RS-485 等,反对设施直连及订阅形式采集数据;反对用户自定义协定;(2)湖仓一体的数据底座多模存储大数据底座,高效能低提早的实时湖仓;(3)数据治理:数据资产治理、剖析、经营、平安数据治理,全链路数据监控,造成高质量数据资产;权限、加密、分级分类等伎俩保障数据安全性;(4)基于数据撑持的科学计算功能强大且高效易用的数据迷信平台,具备交互式算法与模型开发、训练及治理能力;(5)数据可视化自助式摸索型剖析、电子表格、驾驶舱大屏,将教训变为数据;(6)架构灵便,信创适配,施行教训云边端协同,高扩展性;全面反对国产 CPU 芯片和国产操作系统;内置行业标准体系、算法、模型、知识库等,疾速构建数据生态。4.写在最初为可能更好地开掘“沉睡”中海量数据的深层价值,升高单位数据存储老本,KaiwuDB 推出“组合拳”打法 —“KaiwuDB+KDP(数据服务平台)组合解决方案”。 KDP 提供了宽泛的设施采集协定兼容性,并通过简略的页面配置,将各类设施数据导入 KaiwuDB,帮忙企业构建全面的数据资产库。此计划基于就地计算和流式计算等核心技术,反对多层级、多维度数据的深入分析,可能实时统计和剖析物联网设施产生的大量数据。这为管理层提供了迷信的决策依据,帮忙企业优化生产流程,进步生产效率,最终实现老本升高和效益减少。 “KaiwuDB+KDP(数据服务平台)组合解决方案”以 KaiwuDB 分布式数据库体系为依靠,以 KDP 弱小数据分析算力实现开释数据价值最大化,撑持下层 SaaS 利用开发平台建设,更加智能化地剖析决策,无效推动业务稳步前进。 从中国制作新基建到十四五布局政策主基调,数字化转型已成为我国重要的倒退策略,面对继续的数字化和智能化产生诸多的数据管理和剖析需要,KaiwuDB 始终保持摸索如何更好地开掘并开释数据中的新价值。 将来,KaiwuDB 将力争笼罩不同业务场景下数据从采集、解决、计算、剖析到利用的全生命周期业务需要,盘活数据资产,真正做到“让数据会谈话”,更好地实现数据智能以及产业价值的晋升。

September 27, 2023 · 1 min · jiezi

关于数据库:WhaleStudio-分钟级构建-AI-模型强大-Ops-能力简化模型调度与部署

什么是机器学习(ML)? 它有什么作用机器学习(ML)是人工智能(AI)的一个子集,通过算法发现数据中的通用模式,并依据继续一直的训练来优化调整最终后果。ML模型从过来的教训中学习,并依据已有的教训进行预测。例如,当初的电商已不再会应用普遍性提价或优惠券等伎俩吸引客户,取而代之的是依据每个客户的历史购买模式构建个性化优惠,并将这些数据与客户PII信息,网络搜寻、以后地理位置、挪动应用程序中的流动等实时信息相结合。这样,就能够构建ML模型来预测客户购买特定产品的偏向。所有的营销流动开始由数据和模型进行驱动,并通过在正确的工夫向正确的客户提供正确的产品和优惠,来晋升成交量和利润率,以实现更高的投资回报率。 ML使企业可能依据数据和模型作出决策,而不是通过教训或者直觉做出决策。同时,随着海量的新数据的一直供应和训练,ML模型会变得更加智能和精确,比方当初十分风行的ChatGPT等LLM就是这样诞生的。 MLOps如何为AI/ML我的项目提供价值随着结构化和非结构化数据的快速增长,各类企业都心愿从数据中获取价值,以取得竞争劣势和晋升服务能力。但现实情况是,许多生产性ML利用在事实环境中并未达到预期。这是因为任何技术都须要高质量的开发、施行和保护,如果始终专一于构建ML模型,而不是构建生产就绪的ML产品,那么简单的ML零碎组件和基础设施就会因短少必要的协调和更新,导致成果升高甚至预测失败。更精确地说,好的ML须要好的MLOps管道和实际。MLOps侧重于数据模型部署、操作化和执行,通过这套规范做法,能够实时地提供可信的决策。MLOps联合了模型开发和操作技术,这对于高性能ML解决方案至关重要。 MLOps涵盖了数据迷信的所有要害阶段: 数据筹备:此阶段侧重于理解我的项目的指标和要求,并筹备模型所需的数据。模型构建:数据科学家基于各种不同的建模技术构建和评估各种模型。部署和监督模型:这是模型进入可在业务流程中用于决策的状态。而Ops(经营)则是确保模型提供预期的业务价值和性能的要害。如何应用白鲸开源WhaleStudio简化MLOpsWhaleStudio是白鲸开源的DataOps解决方案,通过采纳WhaleStudio,企业能够简化ML模型的部署工作,并通过WhaleStudio弱小的数据筹备能力和调度监控能力,大幅晋升MLOps的经营效率: 全面的数据集成和数据筹备能力:疾速接驳各类实时或者批量的数据,并通过内置的数据血统和数据品质工具,晋升数据准确性和可用性反对调度执行ML工作的能力:反对执行用户应用各种框架训练任务反对调度执行支流MLOps我的项目的能力:提供out-of-box的支流MLOps我的项目来让用户更不便的应用对应能力反对编排各个模块搭建机器学习平台的能力:根据MLOps我的项目个性跟业务的适配水平,在不同的模块中能够应用不同我的项目的能力。借助WhaleStudio,数据科学家和ML工程师能够专一于解决业务问题,而不用放心数据获取和数据筹备工作,同时,WhaleStudio可在几分钟内(而不是几天和几个月)大规模地应用任何工具、框架(例如TensorFlow、MLFlow等)构建高质量的AI/ML模型,并通过弱小的Ops能力对模型训练进行调度、监控和继续部署、继续上线。 综上所述,白鲸开源WhaleStudio能够帮忙企业在MLOps我的项目中疾速实现数据价值: 数据科学家和ML工程师能够灵便地在任何框架中构建其 AI/ML 模型可能使数据科学家可能利用高质量、可信和及时的数据减速AI/ML训练应用集成的DataOps及时交付可信数据,加强ML模型性能通过放慢和简化模型生命周期,让用户更好地专一于高价值翻新工作进步 ML零碎的性能、可靠性和可扩展性数据科学家、ML 工程师、数据工程师和 IT 经营部门之间更好的合作 本文由 白鲸开源科技 提供公布反对!

September 27, 2023 · 1 min · jiezi

关于数据库:GreatSQL一个关于主从复制的限制描述与规避

一、背景分享一个在我的项目运维中遇到的一个主从复制限度的一个坑,我的项目的架构为主集群+灾备集群,每个集群为一主两从模式。主集群到灾备集群的同步为主从复制的形式,依据业务需要灾备集群须要疏忽零碎库跟某些配置表,所以才会触发此限度,而这个限度如果咱们之前没有遇到过,那么排查起来也是绝对不易的。 二、限度形容1、主从同步呈现报错greatsql> show slave status\G*************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 192.168.xxx.xxx Master_User: repl Master_Port: 3306 Connect_Retry: 60 Master_Log_File: greatsql-bin.000990 Read_Master_Log_Pos: 92274290 Relay_Log_File: greatsql-relay.002963 ----- Relay_Log_Pos: 701548899 Relay_Master_Log_File: greatsql-bin.000988 Slave_IO_Running: Yes Slave_SQL_Running: No Replicate_Do_DB: Replicate_Ignore_DB: mysql,dbscale,dbscale_tmp,information_schema,performance_schema,sys Replicate_Do_Table: Replicate_Ignore_Table: Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table: A.ab,B.bc Last_Errno: 1146 Last_Error: Coordinator stopped because there were error(s) in the worker(s). The most recent failure being: Worker 1 failed executing transaction '9e668a93-2618-11ee-93ee-bc16954181bb:47508257' at master log greatdb-bin.000988, end_log_pos 701570116. See error log and/or performance_schema.replication_applier_status_by_worker table for more details about this failure or others, if any. Skip_Counter: 0 Exec_Master_Log_Pos: 701548690 Relay_Log_Space: 2246320360 Until_Condition: None Until_Log_File: Until_Log_Pos: 0 Master_SSL_Allowed: No Master_SSL_CA_File: Master_SSL_CA_Path: Master_SSL_Cert: Master_SSL_Cipher: Master_SSL_Key: Seconds_Behind_Master: NULLMaster_SSL_Verify_Server_Cert: No Last_IO_Errno: 0 Last_IO_Error: Last_SQL_Errno: 1146 Last_SQL_Error: Coordinator stopped because there were error(s) in the worker(s). The most recent failure being: Worker 1 failed executing transaction '9e668a93-2618-11ee-93ee-bc16954181bb:47508257' at master log greatdb-bin.000988, end_log_pos 701570116. See error log and/or performance_schema.replication_applier_status_by_worker table for more details about this failure or others, if any. Replicate_Ignore_Server_Ids: Master_Server_Id: 1943306 Master_UUID: 9e668a93-2618-11ee-93ee-bc16954181bb Master_Info_File: mysql.slave_master_info SQL_Delay: 0 SQL_Remaining_Delay: NULL Slave_SQL_Running_State: Master_Retry_Count: 86400 Master_Bind: Last_IO_Error_Timestamp: Last_SQL_Error_Timestamp: 230822 14:14:18 Master_SSL_Crl: Master_SSL_Crlpath: Retrieved_Gtid_Set: 9e668a93-2618-11ee-93ee-bc16954181bb:2-47565802 Executed_Gtid_Set: 30873cfe-8750-11ed-b56f-744aa4073024:1-270,9e668a93-2618-11ee-93ee-bc16954181bb:1-47508256 Auto_Position: 1 Replicate_Rewrite_DB: Channel_Name: Master_TLS_Version:1 row in set (0.00 sec)依据slave status状态信息能够看出 ...

September 27, 2023 · 4 min · jiezi