关于数据库:高颜值的可视化大屏让瓴羊Quick-BI受多家机构认可

近年来,大量国内企业踊跃寻求数字化降级,推动了国内商业智能BI工具市场的蓬勃发展。瓴羊Quick BI、帆软Fine BI、Smart BI、永洪BI......目不暇接的BI产品抉择对企业的选型造成了肯定的困扰,因而,业余机构的评估报告成了不少企业发展商业智能BI工具选型的要害。 值得关注的是,在多个国内外评估报告中,都提及了瓴羊Quick BI以及它杰出的可视化大屏。比方在国内出名数字化市场钻研机构爱剖析公布的《2022爱剖析·智能决策厂商全景报告》中,瓴羊Quick BI基于业余的数据分析能力和可视化大屏等亮点性能,在金融行业、消费品与批发行业等行业板块中胜利入选。而在由寰球BI畛域权威钻研机构Gartner公布的魔力象限ABI报告中,瓴羊Quick BI同样因丰盛的多端可视化剖析能力等亮点间断四年胜利上榜,并且往年在象限上实现了冲破, 首次跃升到挑战者象限。 那么,被多家行业钻研机构重复提及的瓴羊Quick BI的可视化大屏,到底厉害在哪里呢? 从性能上看,瓴羊Quick BI的可视化大屏能够通过自在画布、信息图类组件、动态效果等性能将数据分析的后果活泼直观地出现进去,满足CXO业务展现、业务监控、我的项目会议演示以及对外PR媒体接待等场景,并可将可视化大屏与叙事技术相结合,多场景、多页面地展示数据背地的商业逻辑。 同时,大家能够重点关注瓴羊Quick BI可视化大屏中的多图层地图功能。这个多图层地图功能可将数据在地图上按视觉因素进行分层,以此出现简单数据的不同地区散布状况,目前反对色调地图、气泡地图、飞线地图、符号地图等类型,对于全国性大型企业来说,这个性能能够帮忙高层管理者实时理解全国各分支机构的运行状况,用途很大。 此外,瓴羊Quick BI还内置了丰盛的行业模板和素材内容,反对一键利用,不便可视化大屏的管理人员疾速搭建高颜值的可视化大屏。 和国内其余几款支流BI工具如帆软Fine BI、Smart BI等相比,瓴羊Quick BI的可视化大屏无论性能还是视觉体验,都让人称心。比方说Fine BI,尽管在数据分析能力方面具备较强能力,但可视化大屏并不很强,因而更适宜企业中业余数据分析师应用,但对业务人员、管理者来说,用起来就不像瓴羊Quick BI那样便捷高效了。 最初,目前瓴羊Quick BI的官网正在发展30天收费试用流动,想要感触瓴羊Quick BI可视化大屏的敌人们,倡议尽快登录官网申请体验。

June 8, 2023 · 1 min · jiezi

关于数据库:OceanBase-41-全面测评及部署流程看这篇就够了建议收藏

背景测试 OceanBase 比照 MySQL,TiDB 的性能体现,数据存储压缩,摸索多点外部我的项目一个数据库场景落地 Oceanbase(MySQL->OceanBase)。 单机测试筹备OBD 形式部署单机文件筹备wget https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/download-center/opensource/oceanbase-all-in-one/7/x86_64/oceanbase-all-in-one-4.1.0.0-100120230323143519.el7.x86_64.tar.gz?Expires=1681878350&OSSAccessKeyId=LTAI5tGVLeRRycCRGerZJMNC&Signature=4E8%2FW77U1MAqq1ttNvuljadkTq0%3Dmv oceanbase-all-in-one-4.1.0.0-100120230323143519.el7.x86_64.tar.gz?Expires=1681878350 oceanbase-all-in-one-4.1.0.0-100120230323143519.el7.x86_64.tar.gztar -zxf oceanbase-all-in-one-4.1.0.0-100120230323143519.el7.x86_64.tar.gz -C /usr/local装置相干包/usr/local/oceanbase-all-in-one/bin/install.sh.......##################################################################### Install Finished =====================================================================Setup Environment: source ~/.oceanbase-all-in-one/bin/env.sh Start Web Service: obd web Quick Start: obd demo More Details: obd -h =====================================================================批改配置文件蕴含组件:oceanbase-ce、obproxy-ce、obagent、grafana、Prometheus cp /usr/local/oceanbase-all-in-one/obd/usr/obd/example/all-components.yaml ./vi all-components.yamlmemory_limit 64G observer 总内存(租户内存+零碎内存)system_memory 30G 零碎内存datafile_size 1500G 数据文件大小(启动就会预调配)log_disk_size 日志文件大小(启动就会预调配)# all-components.yamloceanbase-ce: servers: - name: server1 ip: 127.0.0.1 global: devname: lo memory_limit: 64G # The maximum running memory for an observer system_memory: 30G datafile_size: 1500G # Size of the data file. log_disk_size: 800G # The size of disk space used by the clog files........server1:........ zone: zone1obproxy-ce: depends: - oceanbase-ce servers: - 127.0.0.1 global:......obagent: depends: - oceanbase-ce servers: - name: server1 ip: 127.0.0.1 global: home_path: /data/obagent1ocp-express: depends: - oceanbase-ce - obproxy-ce - obagent servers: - 127.0.0.1 global:.....部署启动obd cluster deploy obtest -c all-components.yaml+--------------------------------------------------------------------------------------------+| Packages |+--------------+---------+------------------------+------------------------------------------+| Repository | Version | Release | Md5 |+--------------+---------+------------------------+------------------------------------------+| oceanbase-ce | 4.1.0.0 | 100000192023032010.el7 | 8439ecf8db5e0649bd49671b41ea9e8c85756b63 || obproxy-ce | 4.1.0.0 | 7.el7 | 2a9d9bf67f179dcca2a8c9e7c77373d94e7e2abe || obagent | 1.3.0 | 22.el7 | d57fbb4962b2fbecb6282358c59295fdfba4d6ac || ocp-express | 1.0.0 | 100000432023032015.el7 | 42c6fc921063f24f9e1072d75bfa7f21f42146e3 |+--------------+---------+------------------------+------------------------------------------+------obd cluster start obtest ...+---------------------------------------------+| observer |+-----------+---------+------+-------+--------+| ip | version | port | zone | status |+-----------+---------+------+-------+--------+| 127.0.0.1 | 4.1.0.0 | 4000 | zone1 | ACTIVE |+-----------+---------+------+-------+--------+obclient -h127.0.0.1 -P4000 -uroot -Doceanbase -A+---------------------------------------------+| obproxy |+-----------+------+-----------------+--------+| ip | port | prometheus_port | status |+-----------+------+-----------------+--------+| 127.0.0.1 | 2883 | 2884 | active |+-----------+------+-----------------+--------+obclient -h127.0.0.1 -P2883 -uroot -Doceanbase -A+------------------------------------------------------------------+| obagent |+---------------+--------------------+--------------------+--------+| ip | mgragent_http_port | monagent_http_port | status |+---------------+--------------------+--------------------+--------+| 10.xxxx | 8089 | 8088 | active |+---------------+--------------------+--------------------+--------++------------------------------------------------------------------+| ocp-express |+---------------------------+----------+------------------+--------+| url | username | default_password | status |+---------------------------+----------+------------------+--------+| http://10.xxxx:8180 | admin | oceanbase | active |+---------------------------+----------+------------------+--------+创立 MySQL 用户create resource unit ut1 max_cpu 32,memory_size '16G';create resource pool p1 unit 'ut1',unit_num 1;create tenant mysql resource_pool_list=('p1') set ob_tcp_invited_nodes='%';重要配置 OceanBaseTiDBMySQL社区版本v4.1.0v6.1.5v5.7.16内存配置租户memory_size 16Gblock_cache_size 16Ginnodb_buffer_pool_size 16G单机器配置32C RAID10 SSD32C RAID10 SSD32C RAID10 SSD刷盘配置默认强制刷盘(无刷盘相干配置参数)sync-log=1sync_binlog=1innodb_flush_log_at_trx_commit=2并发数5,10,20,30,60,1205,10,20,30,60,1205,10,20,30,60,120测试模式read_write,read_only,write_onlyread_write,read_only,write_onlyread_write,read_only,write_only单次测试工夫300s共 18 种测试(并发数x测试模式)300s共18种测试(并发数x测试模式)300s共 18 种测试(并发数x测试模式)每种测试办法obd test sysbench(OBD 自带) 先 prepare、再 run、再 cleanupsysbench preparesysbench runsysbench cleanupsysbench preparesysbench runsysbench cleanup架构层级: ...

June 7, 2023 · 9 min · jiezi

关于数据库:IP归属地API分享

各大网站和app都更新了用户IP归属地性能,然而如何获取IP归属地信息科难为了一些技术人员了,上面给大家分享最好用的IP归属地API,可能大大的晋升了效率。IP归属地API(https://www.ip66.net),依据IP地址查问归属地信息,蕴含国家、省、市、区县和运营商等信息。IP数据云(https://www.ipdatacloud.com) 有很多收费API接口,利用这些接口能够帮你实现去开发出很多功能丰富,服务稳固的网页、APP还有小程序,无论是练手还是实战都是不错的抉择。接下来和大家分享一下接口的一些信息。 接口阐明对外提供 IP 地址查问的服务接口接口方式接口地址:https://api.ipdatacloud.com申请形式 输入格局 字符集HTTPS GET/POST Json UTF-8申请阐明字段名称 字段类型 是否必填 字段形容 备注IP String 是 IP地址 同时反对 IPV4 和 IPV6KEY String 是 产品密钥 依据所选产品调配,权限校验用3.1 申请参数https://api.ipdatacloud.com/v2/query?ip=140.224.61.98&key=2ff...4.1 输入参数字段名称 字段类型 字段形容 备注code String 状态码 参考附录 4.2 状态码message String 状态信息 申请胜利时内容为successdata JsonObject 输入信息 申请失败时内容为空,参考 4.1.1 data 输入参数4.1.1data输入参数字段名称 字段类型 字段形容 备注location JsonObject IP归属地数据详情 参考4.1.1.1 location输入参数scenes JsonObject IP利用场景数据详情 参考4.1.1.2 scenes输入参数risk JsonObject IP危险画像数据详情 参考4.1.1.3 risk输入参数4.1.1.1 location输入参数字段名称 字段类型 字段形容 备注version String IP类型 continent String 七大洲 country String 国家 country_code String 国家英文简写 province String 省份 city String 城市 district String 区县 street String 街道 longitude String 经度 latitude String 纬度 area_code String 行政代码 isp String 运营商 local_time String 本地工夫 elevation String 海拔 weather_station String 气象站 zip_code String 邮编 is_proxy String 是否代理 当无代理时为空proxy_type String 代理类型 详情参考proxy_type阐明city_code String 国内直拨电话和区号 asn String asn usage_type String 利用场景 详情参考usage_type阐明risk_proof JsonObject 危险证据 详情参考risk_proof阐明risk_tag JsonObject 危险标签 详情参考risk_tag阐明 ...

June 7, 2023 · 1 min · jiezi

关于数据库:揭秘10人2-周200-PRBytebase-在提升研发效率上做了什么

在一家全球化初创公司背地的 30+ SaaS 服务和老本这篇文章中有提到 Bytebase 在研发团队只有 10 人的规模下,做到了每两周一次公布,且每个版本有 100 - 150 左右的 PR 数量。这样的「壮举」也在 Hacker News 上引发了探讨。 随着工夫的推移,当初 Bytebase 曾经演变到 10 人,2 周,200+ PR。想要做到极致的研发效率是须要「就地取材」思考所有环节,推敲每一个细节,并且离不开每一位同学的致力。正如软件工程中的「没有银弹」所言,不同的组织、不同的研发背景是须要不同流程和策略能力达到研发效率的山顶。不过,在谋求研发效率的过程中,一些想法和思路是能够参考借鉴的。 接下来本文会通过一个具体的例子来探秘 Bytebase 谋求研发效率的冰山一角。 背景介绍家喻户晓,Bytebase 作为一款数据库 DevOps 工具,因而代码中少不了与 SQL 打交道。同时,为了保障 Bytebase 可能如预期中为用户提供弱小的性能,咱们在 Bytebase 的 SQL kernel 模块中增加了大量的单元测试。 此外,Bytebase 应用 Golang 作为后端研发的语言。对 Golang 相熟的同学可能晓得,Golang 中有两种形式能够定义字符串常量:应用双引号,或者应用反引号。这两者的次要区别是: 对于非凡的字符,在双引号的格局中须要应用转义字符,例如换行(\n), 双引号本身等。反引号反对原生格局的字符串,不须要应用转义字符,然而无奈应用反引号自身。上面展现了应用不同格局来定义雷同的字符串常量: // The Double-quoted Styles := "SELECT id, name \nFROM t \nWHERE name != \"Bytebase\" \nLIMIT 1"// The Back-quoted Styles := `SELECT id, name FROM t WHERE name != "Bytebase" LIMIT 1`能够看到,在可读性上,不应用转义字符的反引号格局稍逊一筹。而后反引号也有它本人的问题: ...

June 7, 2023 · 1 min · jiezi

关于数据库:案例解读|高盛-Goldman-Sachs-如何做数据库变更

原文链接作者|Shant Stepanian ,高盛平台业务部的高级工程师 本文重点Obevo 是在高盛开发的企业级数据库部署工具,在 2017 年以 Apache 2.0 许可证公布的开源我的项目。容许将数据库脚本按对象进行组织,相似于利用代码,对开发人员来说好处多多。能够帮忙具备现有数据库的新利用和零碎将其数据库更改治理纳入软件开发生命周期 (Software Development Life Cycle / SDLC) 管控。团队能够应用 Obevo 的上手工具和疏导示例疾速入门。其余性能包含回滚,内存数据库测试和分阶段部署。近年,高盛采纳了规范的 SDLC 来构建和部署应用程序。这包含治理新零碎和现有零碎的数据库 schema ,这比管理应用程序代码更加艰难。在本文中,咱们将形容咱们最近开源的数据库部署工具 Obevo 是如何帮忙高盛的企业级应用程序的数据库纳入 SDLC 管控的。 企业的数据库部署的问题将数据库定义引入到规范的 SDLC 流程中是具备挑战性的,尤其是思考到数据库的状态以及执行增量迁徙的需要。因而,许多应用程序没有自动化或晦涩的数据库部署过程。咱们的指标是将数据库 schema 治理纳入与应用程序雷同的 SDLC 中:通过将所有定义提交到版本控制系统 (VCS) 并通过规范的构建/公布机制部署。 这项工作由咱们理论数据库系统应用案例的多样性而变得复杂: 古代零碎:全新的 schema 来部署表、进行内存测试,并从一开始就纳入了适当的 SDLC。遗留零碎:超过十年的零碎,从未有过受控部署过程。简单零碎:数百或数千个对象,包含表、视图、存储过程、函数、静态数据上传和数据迁徙等类型。耗时零碎:蕴含数百万行的表,须要花几个小时部署。无论应用何种案例,因为大量散布各地的开发人员都在进行变更,SDLC 自身都有简单之处。 尽管现有的开源工具能够解决简略的案例,它们无奈解决咱们一些现有零碎的规模和复杂度。然而咱们不能放任这些现有零碎没有适当的 SDLC:它们是正在开发和公布的要害零碎。 因而,咱们开发了 Obevo,一个能解决所有此类应用案例的工具。Obevo 的要害差异化因素在于可能按文件维护数据库对象(相似于更常见的按文件存储类定义),同时仍治理增量部署。 在本文中,咱们将探讨数据库部署问题,而后演示基于对象的我的项目构造如何帮忙咱们优雅地治理各种对象和环境类型的上百上千个 schema 对象。 数据库对象类型(有状态 vs 无状态)首先,咱们来回顾一下不同数据库对象类型的部署语义,因为这会影响工具的设计。 疾速术语阐明: 将某些代码 / SQL 利用于批改数据库的行为将被称为部署或迁徙。被部署的代码单元将被称为脚本片段。一个文件可能蕴含多个脚本片段,即脚本片段不等同于脚本文件。对于一个文件是否应该蕴含一个还是多个脚本片段是本文中的主题。有状态对象(例如:表)有状态对象须要增量批改其定义,而不是齐全的定义替换。以下是增加两列到 MyTable 中的示例: 现实状况下,咱们能够通过一个 SQL 语句来把数据库带到终态,该 SQL 定义了一个具备四列的表。不过 SQL 其实无奈提供可行的解决方案: ...

June 7, 2023 · 2 min · jiezi

关于数据库:慢-SQL-优化之索引的作用是什么-京东云技术团队

前言本文针对 MySQL 数据库的 InnoDB 存储引擎,介绍其中索引的实现以及索引在慢 SQL 优化中的作用。 本文次要探讨不同场景下索引失效与生效的起因。 慢SQL与索引的关系慢SQL优化准则数据库也是利用,MySQL 作为一种磁盘数据库,属于典型的 IO 密集型利用,并且随机 IO 比程序 IO 更低廉。 实在的慢 SQL 往往会随同着大量的行扫描、临时文件排序,间接影响就是磁盘 IO 升高、CPU 使用率升高,失常 SQL 也变为了慢 SQL,对于利用来说就是大面积执行超时。 线上很多事变都与慢 SQL 无关,因而慢 SQL 治理已成为 DBA 与业务研发的共识。 []() 慢SQL的优化准则为:缩小数据访问量与缩小计算操作 缩小访问量: •创立适合的索引 •缩小不必要拜访的列 •应用笼罩索引 •语句改写 •数据结转 缩小计算操作: •排序列退出索引 •适当的列冗余 •SQL 拆分 •计算性能拆分 能够将慢 SQL 优化的办法分为三类: •查问优化 •索引优化 •库表构造优化 其中索引是数据库中用来晋升性能的最常用工具。 可是,为什么索引能够放慢查问,索引肯定能够放慢查问吗? 索引的作用要答复这个问题,能够比照没有索引与有索引时查问操作的性能差别。 在此之前,首先介绍下查问操作的解决流程。 查问操作能够分为以下两步: •定位到记录所在的页 •从所在的页中定位到具体的记录 其中从页中定位记录的办法依赖每个页面中创立的Page Directory(页目录),因而关键在于如何定位页。 数据保留在磁盘上,数据处理产生在内存中,数据页是磁盘与内存之间交互的根本单位,也是 MySQL 治理存储空间的根本单位,大小默认为 16KB。 因而通常一次起码从磁盘中读取 16KB 的内容到内存中,一次起码把内存中的 16KB 内容刷新到磁盘中。 ...

June 7, 2023 · 10 min · jiezi

关于数据库:GreatSQL删除分区慢的跟踪

GreatSQL删除分区慢的跟踪背景某业务零碎,每天凌晨会删除分区表的一个分区(按天分区),耗时较久,从最开始的30秒,缓缓变为1分钟+,影响到交易业务的失常进行。 在测试环境进行了模仿,复现了删除分区慢的状况,本次基于GreatSQL8.0.25-17进行测试,官网mysql版本也存在雷同问题。 测试环境$ mysql -h127.0.0.1 -P8025 -uroot -pmysql: [Warning] Using a password on the command line interface can be insecure.Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 10Server version: 8.0.25-17 GreatSQL, Release 17, Revision 4733775f703Copyright (c) 2000, 2021, Oracle and/or its affiliates.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.greatsql> select version();+-----------+| version() |+-----------+| 8.0.25-17 |+-----------+1 row in set (0.00 sec)greatsql> show variables like 'autocommit' ;+---------------+-------+| Variable_name | Value |+---------------+-------+| autocommit | ON |+---------------+-------+1 row in set (0.01 sec)greatsql> show variables like 'innodb_buffer_pool_size';+-------------------------+------------+| Variable_name | Value |+-------------------------+------------+| innodb_buffer_pool_size | 4294967296 |+-------------------------+------------+1 row in set (0.01 sec)greatsql> show variables like 'innodb_flush_log_at_trx_commit';+--------------------------------+-------+| Variable_name | Value |+--------------------------------+-------+| innodb_flush_log_at_trx_commit | 1 |+--------------------------------+-------+1 row in set (0.00 sec)greatsql> show variables like 'sync_binlog';+---------------+-------+| Variable_name | Value |+---------------+-------+| sync_binlog | 1 |+---------------+-------+1 row in set (0.00 sec)建表CREATE TABLE `t_partition` ( `id` bigint NOT NULL AUTO_INCREMENT, `ua` varchar(100) DEFAULT NULL, `start_time` datetime NOT NULL, PRIMARY KEY (`id`,`start_time`)) PARTITION BY RANGE (to_days(`start_time`))(PARTITION P20230129 VALUES LESS THAN (738915) ENGINE = InnoDB, PARTITION P20230130 VALUES LESS THAN (738916) ENGINE = InnoDB, PARTITION P20230131 VALUES LESS THAN (738917) ENGINE = InnoDB, PARTITION P20230201 VALUES LESS THAN (738918) ENGINE = InnoDB, PARTITION P20230202 VALUES LESS THAN (738919) ENGINE = InnoDB, PARTITION P20230203 VALUES LESS THAN (738920) ENGINE = InnoDB, PARTITION P20230204 VALUES LESS THAN (738921) ENGINE = InnoDB, PARTITION P20230302 VALUES LESS THAN (738947) ENGINE = InnoDB, PARTITION P20230303 VALUES LESS THAN (738948) ENGINE = InnoDB, PARTITION P20230304 VALUES LESS THAN (738949) ENGINE = InnoDB, PARTITION P20230305 VALUES LESS THAN (738950) ENGINE = InnoDB, PARTITION P20230306 VALUES LESS THAN (738951) ENGINE = InnoDB, PARTITION P20230307 VALUES LESS THAN (738952) ENGINE = InnoDB, PARTITION P20230308 VALUES LESS THAN (738953) ENGINE = InnoDB, PARTITION P20230309 VALUES LESS THAN (738954) ENGINE = InnoDB, PARTITION P20230310 VALUES LESS THAN (738955) ENGINE = InnoDB, PARTITION P20230311 VALUES LESS THAN (738956) ENGINE = InnoDB, PARTITION P20230312 VALUES LESS THAN (738957) ENGINE = InnoDB, PARTITION P20230313 VALUES LESS THAN (738958) ENGINE = InnoDB, PARTITION P20230314 VALUES LESS THAN (738959) ENGINE = InnoDB, PARTITION P20230315 VALUES LESS THAN (738960) ENGINE = InnoDB, PARTITION P20230316 VALUES LESS THAN (738961) ENGINE = InnoDB, PARTITION P20230317 VALUES LESS THAN (738962) ENGINE = InnoDB, PARTITION P20230318 VALUES LESS THAN (738963) ENGINE = InnoDB, PARTITION P20230319 VALUES LESS THAN (738964) ENGINE = InnoDB, PARTITION P20230320 VALUES LESS THAN (738965) ENGINE = InnoDB, PARTITION P20230321 VALUES LESS THAN (738966) ENGINE = InnoDB, PARTITION P20230322 VALUES LESS THAN (738967) ENGINE = InnoDB, PARTITION P20230323 VALUES LESS THAN (738968) ENGINE = InnoDB, PARTITION P20230324 VALUES LESS THAN (738969) ENGINE = InnoDB, PARTITION P20230325 VALUES LESS THAN (738970) ENGINE = InnoDB, PARTITION P20230326 VALUES LESS THAN (738971) ENGINE = InnoDB, PARTITION P20230327 VALUES LESS THAN (738972) ENGINE = InnoDB, PARTITION P20230328 VALUES LESS THAN (738973) ENGINE = InnoDB, PARTITION p20230329 VALUES LESS THAN (738974) ENGINE = InnoDB, PARTITION p20230330 VALUES LESS THAN (738975) ENGINE = InnoDB, PARTITION p20230331 VALUES LESS THAN (738976) ENGINE = InnoDB, PARTITION p20230401 VALUES LESS THAN (738977) ENGINE = InnoDB, PARTITION p20230402 VALUES LESS THAN (738978) ENGINE = InnoDB, PARTITION p20230403 VALUES LESS THAN (738979) ENGINE = InnoDB);插入数据greatsql> insert into t_partition(ua,start_time) select substring(md5(rand()),1,20),'2023-03-10' ;Query OK, 1 row affected (0.01 sec)Records: 1 Duplicates: 0 Warnings: 0greatsql> insert into t_partition(ua,start_time) select substring(md5(rand()),1,20),'2023-03-10' ;Query OK, 1 row affected (0.00 sec)Records: 1 Duplicates: 0 Warnings: 0greatsql> insert into t_partition(ua,start_time) select substring(md5(rand()),1,20),'2023-03-10' ;Query OK, 1 row affected (0.01 sec)Records: 1 Duplicates: 0 Warnings: 0greatsql> insert into t_partition(ua,start_time) select substring(md5(rand()),1,20),start_time from t_partition; Query OK, 3 rows affected (0.01 sec)Records: 3 Duplicates: 0 Warnings: 0greatsql> insert into t_partition(ua,start_time) select substring(md5(rand()),1,20),start_time from t_partition; Query OK, 6 rows affected (0.00 sec)Records: 6 Duplicates: 0 Warnings: 0............... greatsql> insert into t_partition(ua,start_time) select substring(md5(rand()),1,20),start_time from t_partition; Query OK, 3145728 rows affected (35.68 sec)Records: 3145728 Duplicates: 0 Warnings: 0greatsql> insert into t_partition(ua,start_time) select substring(md5(rand()),1,20),start_time from t_partition; Query OK, 6291456 rows affected (1 min 11.51 sec)Records: 6291456 Duplicates: 0 Warnings: 0greatsql> insert into t_partition(ua,start_time) select substring(md5(rand()),1,20),start_time from t_partition; Query OK, 12582912 rows affected (2 min 26.74 sec)Records: 12582912 Duplicates: 0 Warnings: 0greatsql> select count(*) from t_partition; +----------+| count(*) |+----------+| 25165824 |+----------+1 row in set (0.50 sec)greatsql> select count(*) from t_partition partition(P20230310); +----------+| count(*) |+----------+| 25165824 |+----------+ 向分区插入数据insert into t_partition(ua,start_time) select substring(md5(rand()),1,20),'2023-03-11' from t_partition partition(P20230310); insert into t_partition(ua,start_time) select substring(md5(rand()),1,20),'2023-03-12' from t_partition partition(P20230310); insert into t_partition(ua,start_time) select substring(md5(rand()),1,20),'2023-03-13' from t_partition partition(P20230310); insert into t_partition(ua,start_time) select substring(md5(rand()),1,20),'2023-03-14' from t_partition partition(P20230310); insert into t_partition(ua,start_time) select substring(md5(rand()),1,20),'2023-03-15' from t_partition partition(P20230310); insert into t_partition(ua,start_time) select substring(md5(rand()),1,20),'2023-03-16' from t_partition partition(P20230310); insert into t_partition(ua,start_time) select substring(md5(rand()),1,20),'2023-03-17' from t_partition partition(P20230310); insert into t_partition(ua,start_time) select substring(md5(rand()),1,20),'2023-03-18' from t_partition partition(P20230310); insert into t_partition(ua,start_time) select substring(md5(rand()),1,20),'2023-03-19' from t_partition partition(P20230310); insert into t_partition(ua,start_time) select substring(md5(rand()),1,20),'2023-03-20' from t_partition partition(P20230310); insert into t_partition(ua,start_time) select substring(md5(rand()),1,20),'2023-03-21' from t_partition partition(P20230310); 。。。。。。。。。。。greatsql> insert into t_partition(ua,start_time) select substring(md5(rand()),1,20),'2023-03-19' from t_partition partition(P20230310); Query OK, 25165824 rows affected (5 min 17.92 sec)Records: 25165824 Duplicates: 0 Warnings: 0greatsql> insert into t_partition(ua,start_time) select substring(md5(rand()),1,20),'2023-03-20' from t_partition partition(P20230310); Query OK, 25165824 rows affected (5 min 19.56 sec)Records: 25165824 Duplicates: 0 Warnings: 0greatsql> insert into t_partition(ua,start_time) select substring(md5(rand()),1,20),'2023-03-21' from t_partition partition(P20230310); Query OK, 25165824 rows affected (5 min 27.27 sec)Records: 25165824 Duplicates: 0 Warnings: 0 更新数据greatsql> Update t_partition set ua=concat(ua,'abc') where start_time='2023-03-19';Query OK, 25165824 rows affected (12 min 55.53 sec)Rows matched: 25165824 Changed: 25165824 Warnings: 0删除分区sgreatsql> alter table t_partition drop partition P20230311;Query OK, 0 rows affected (13.68 sec)Records: 0 Duplicates: 0 Warnings: 0greatsql> alter table t_partition drop partition P20230312;Query OK, 0 rows affected (0.07 sec)Records: 0 Duplicates: 0 Warnings: 0两个分区数据量是一样,但删除第一个分区耗时较长。 ...

June 7, 2023 · 8 min · jiezi

关于数据库:干货分享-CloudQuery-数据保护能力之动态数据脱敏

在企业数字化转型的过程中,尤其随着互联网+、云计算、大数据等信息技术与通信技术的迅猛发展,海量数据在各种信息系统上被存储和解决,其中蕴含大量有价值的敏感数据,这意味着数据泄露的危险也一直减少。 数据泄露可能由各种因素引起,包含歹意攻打、黑客入侵、员工失误、设施失落或偷盗等。一旦数据泄露,个人隐私将面临泄露危险,可能导致身份偷盗、金融欺诈、个人信息滥用等问题。此外,一些行业和法规要求组织必须采取措施来爱护敏感数据,例如金融机构须要爱护客户的个人身份信息,医疗机构须要爱护患者的病历数据。 为了应答这些挑战,数据脱敏技术应运而生。数据脱敏是一种数据保护办法,通过对敏感数据进行批改、转换或暗藏,以爱护数据的安全性和隐衷性。脱敏后的数据依然保留其原始数据的构造和格局,但不蕴含间接辨认集体的敏感信息。 数据脱敏也成为大部分企业在数据管控中的必修课。 CloudQuery 的数据脱敏能力CloudQuery 目前曾经搭载了动态脱敏和动静脱敏两种数据脱敏形式。 动态脱敏是一种在数据存储或传输过程中对数据进行脱敏解决的办法,采纳“先脱敏-后散发”的形式。它通常在数据收集和存储阶段对敏感信息进行脱敏,以确保数据在存储和传输过程中的安全性。动态脱敏的指标是通过对敏感信息进行不可逆的解决,使其无奈还原为原始数据,以爱护个人隐私。 而动静脱敏一种在数据应用过程中动静地对敏感信息进行脱敏解决的办法。与动态脱敏不同,动静脱敏是在须要应用敏感信息时进行加密,其余状况下仍保持数据的明文状态。能够说,动静脱敏的外围概念是依据理论需要和应用场景,在数据应用过程中灵便调整脱敏级别和形式,以实现更高级别的隐衷爱护和数据可用性的均衡。 动态数据脱敏和静态数据脱敏实用于不同的场景,两者之间没有优劣之分,次要是以应用场景来抉择适合的脱敏模式。 目前 CloudQuery 动态脱敏性能仅对企业版客户凋谢,本文将次要介绍几个版本的通用能力——动静脱敏。 CloudQuery 动静脱敏解决方案目前支流的动静脱敏技术路线分为「后果集解析」和「语句改写」两条门路: 后果集解析:不改写发给数据库的语句,须要提前获悉数据表构造,待数据库返回后果后再依据表构造判断汇合内哪些数据须要脱敏,并逐条改写后果数据。语句改写:将蕴含敏感字段查问的语句改写,对于查问中波及的敏感字段(表列)通过外层嵌套函数的形式改写,使得数据库运行查问语句时返回不蕴含敏感数据的后果集。但两种办法各有优劣。「后果集解析」具备更高的灵活性和数据可用性,但同时在解决大规模数据时会带来肯定的性能开销。「语句改写」效率更高,其在查问语句中改写敏感字段的形式更确保敏感数据不会传输到应用层或其余环节,保障较高的数据安全性,同时语句改写还具备良好的可移植性。但绝对的,因为在查问语句中进行批改,「语句改写」势必会限度一些简单查问,其可定制性较弱。 针对两种办法的不同,<font color="#0256FF">CloudQuery 在动静脱敏的实现上交融了 SQL 语句改写与后果集改写两种技术路线长处,实现了性能和适用性的均衡,用户可基于不同的场景依据 SQL 语句的不同,触发不同形式的脱敏,全面笼罩运维场景和业务场景下数据实时脱敏需要。</font> 例如: select * from table1; 该语句因为语句中是查问的所有列,这时咱们不会进行前置脱敏,转而在执行完结之后,比照后果集中的列名,判断与已配置的列名是否雷同,去进行后果集解析的脱敏。 而上面这种:select a from table1; 在语句中有显式的查问 a 这个列,则会对 a 进行改写,将语句改写成 select func(a) from table1; 去执行,这样就只会应用前置脱敏,而不必去遍历后果集。 应用过程中能够依据数据量和性能要求应用不同的 SQL 语句去查问。 CQ 的动静脱敏性能如何应用?CloudQuery 社区版 v2.0.0 的动静脱敏性能毋庸扭转生产数据库中的数据,即可根据用户级别、数据级别,对数据库返回数据进行差异化脱敏。能够确保不同角色的用户可能差异化地拜访数据库中的敏感数据。反对截取、加密、暗藏、替换等脱敏算法。 在 CloudQuery 的主页面点击「数据保护治理」菜单按钮可进入数据保护设置页面。 咱们这里给 AAA 字段设置一个保留前三位的截取算法。 之后也可在该处或者该表的父级节点抉择是否开启规定。 改写前后如下图所示: (改写前) (改写后) CloudQuery 动静脱敏瞻望在之后的版本中,CloudQuery 会陆续推出更多功能来欠缺动态数据脱敏图谱,如: 自定义后果集数据解析规定: 即在一个 schema 下指定一个正则表达式,如手机号码或身份证号,如果查问后果有合乎格局的数据,则会依照相应改规定进行脱敏。并且反对内置脱敏规定的自定义增加,该形式能够捕捉到没有被配置的脱敏算法拦挡到的敏感数据,进一步保障数据安全。通过分级形式脱敏: 即反对对字段设置等级,对用户设置等级。不同用户只能查问到其对应等级的数据,不符合要求的数据则会被脱敏,提供更加个性化和准确的隐衷爱护能力。数据扫描: 自动识别敏感数据项和敏感数据的地位,扫描后数据可被分类为不同的敏感级别或类别,以便为每个类别利用相应的脱敏规定。同时,数据扫描能够剖析敏感数据之间的关联性,确保在脱敏过程中保持数据的一致性和完整性。通过了解敏感数据之间的关系,能够确保脱敏后的数据依然具备可用性和实用性。字段脱敏算法举荐: 针对不同的利用场景和需要举荐不同的字段脱敏算法,联合多种算法和策略,以实现对不同类型的敏感数据进行灵便、平安和高效的脱敏解决。动态数据脱敏是 CloudQuery 数据保护治理能力里的重要组成部分。通过实时对敏感数据进行脱敏解决,在数据应用和共享的过程中缩小了对敏感信息的可见性,从而升高了数据泄露和滥用的危险。 ...

June 7, 2023 · 1 min · jiezi

关于数据库:让-Easysearch-运行在-Kylin-V10-Lanceaarch64上

简介本文次要介绍在国产操作系统 Kylin V10 (Lance)-aarch64 上装置单机版 Easysearch/Console/Agent/Gateway/Loadgen 系统配置在装置之前,须要先进行零碎参数调整并创立操作用户,以下命令均须要应用 root 用户操作。 #配置nofile和memlocktee /etc/security/limits.d/21-infini.conf <<-'EOF'* soft nofile 1048576* hard nofile 1048576* soft memlock unlimited* hard memlock unlimitedroot soft nofile 1048576root hard nofile 1048576root soft memlock unlimitedroot hard memlock unlimitedEOF#敞开THPecho never > /sys/kernel/mm/transparent_hugepage/enabledecho never > /sys/kernel/mm/transparent_hugepage/defraggrep -i HugePages_Total /proc/meminfogrep -wq transparent_hugepage /etc/rc.local || cat <<-'EOF' >> /etc/rc.localif test -f /sys/kernel/mm/transparent_hugepage/enabled; then echo never > /sys/kernel/mm/transparent_hugepage/enabledfiif test -f /sys/kernel/mm/transparent_hugepage/defrag; then echo never > /sys/kernel/mm/transparent_hugepage/defragfiEOFchmod 755 /etc/rc.local#内核调优tee /etc/sysctl.d/70-infini.conf <<-'EOF'vm.max_map_count = 262145net.core.somaxconn = 65535net.core.netdev_max_backlog = 65535net.ipv4.tcp_max_syn_backlog = 65535net.ipv4.tcp_syncookies = 1net.ipv4.tcp_tw_reuse = 1net.ipv4.tcp_timestamps=1net.ipv4.tcp_fin_timeout = 10net.ipv4.tcp_keepalive_time = 900net.ipv4.tcp_max_tw_buckets = 2000000net.ipv4.ip_local_port_range = 1024 65535EOFsysctl -p /etc/sysctl.d/70-infini.conf用户配置#创立Easysearch操作用户groupadd -g 602 esuseradd -u 602 -g es -m -d /home/es -c 'easysearch' -s /bin/bash es配置 JDK#在各个节点上别离操作wget -N https://release.infinilabs.com/easysearch/jdk/zulu17.40.19-ca-jdk17.0.6-linux_aarch64.tar.gz -P /usr/srcmkdir -p /usr/local/jdktar -zxf /usr/src/zulu*.tar.gz -C /usr/local/jdk --strip-components 1tee /etc/profile.d/java.sh <<-'EOF'# set java environmentJAVA_HOME=/usr/local/jdkCLASSPATH=$CLASSPATH:$JAVA_HOME/libPATH=$JAVA_HOME/bin:$PATHexport PATH JAVA_HOME CLASSPATHEOFsource /etc/profilejava -versionEasysearch 部署部署及明码配置#在线装置curl -sSL http://get.infini.sh | bash -s -- -p easysearch -d /data/easysearch#初始化证书(若不采纳默认证书,如须要调整证书可批改证书生成文件)cd /data/easysearchbin/initialize.shll /data/easysearch/config/{*.crt,*.key,*.pem}#调整默认明码及服务配置文件export ES_HOME=/data/easysearchpass=`tr -cd 'a-zA-Z0-9!@#$%' </dev/urandom | head -c20`#记录明码后,删除该文件echo $pass > /usr/src/passhash=`$ES_HOME/bin/hash_password.sh -p $pass`echo $hash#更新明码字段cat <<EOF > $ES_HOME/config/security/user.ymlmeta: type: "user" config_version: 2# Define your internal users here## Admin usersadmin: hash: "$hash" reserved: true external_roles: - "admin" description: "Admin user"EOF配置文件及 JVM 调整cat <<EOF > /data/easysearch/config/easysearch.ymlcluster.name: infinilabsnode.name: node-1network.host: 0.0.0.0http.port: 9200transport.port: 9300bootstrap.memory_lock: falsebootstrap.system_call_filter: falsecluster.initial_master_nodes: ["node-1"]path.home: /data/easysearchpath.data: /data/easysearch/datapath.logs: /data/easysearch/logshttp.compression: truesecurity.enabled: truesecurity.audit.type: noopsecurity.ssl.transport.cert_file: instance.crtsecurity.ssl.transport.key_file: instance.keysecurity.ssl.transport.ca_file: ca.crtsecurity.ssl.transport.skip_domain_verify: truesecurity.ssl.http.enabled: truesecurity.ssl.http.cert_file: instance.crtsecurity.ssl.http.key_file: instance.keysecurity.ssl.http.ca_file: ca.crtsecurity.allow_default_init_securityindex: truesecurity.nodes_dn: - 'CN=infini.cloud,OU=UNIT,O=ORG,L=NI,ST=FI,C=IN'security.restapi.roles_enabled: [ "superuser", "security_rest_api_access" ]security.system_indices.enabled: truesecurity.ssl.http.clientauth_mode: OPTIONALsecurity.system_indices.indices: [".infini-*"]#for admin dn## specify admin certs to operate against system indices, basic_auth is not required## curl -k --cert config/admin.crt --key config/admin.key -XDELETE 'https://localhost:9200/.infini-*/'security.authcz.admin_dn: - 'CN=admin.infini.cloud,OU=UNIT,O=ORG,L=NI,ST=FI,C=IN'EOF#依据理论机器内存的大小进行配置,举荐配置为机器内存一半,且不超过31Gsed -i "s/1g/4g/g" $ES_HOME/config/jvm.options备份目录及权限调整#创立备份目录mkdir -p /data/easysearch/backup#更新目录权限chown -R es.es /data/easysearch环境变量及启动服务su - esgrep -wq easysearch ~/.bashrc || cat<<EOF >> ~/.bashrcexport ES_HOME=/data/easysearchEOFsource ~/.bashrc#当前台形式启动服务$ES_HOME/bin/easysearch -dEasysearch 验证curl -ku "admin:$pass" https://127.0.0.1:9200curl -ku "admin:$pass" https://127.0.0.1:9200/_cluster/health?prettycurl -ku "admin:$pass" https://127.0.0.1:9200/_cat/nodes?v部署 Consolecurl -sSL http://get.infini.sh | bash -s -- -p console#装置服务并启动cd /opt/console./console-linux-arm64 -service install./console-linux-arm64 -service start#验证systemctl status console部署 Agentcurl -sSL http://get.infini.sh | bash -s -- -p agent#批改Agent配置文件cd /opt/agentsed -i "/ES_ENDPOINT:/ s|\(.*\: \).*|\1$https://localhost:9200|" agent.ymlsed -i "/ES_USER:/ s|\(.*\: \).*|\1admin|" agent.ymlsed -i "/ES_PASS:/ s|\(.*\: \).*|\1$pass|" gateway.ymlsed -i "/API_BINDING:/ s|\(.*\: \).*|\1\"0.0.0.0:8080\"|" agent.ymlhead -n 5 agent.yml#装置服务并启动./agent-linux-arm64 -service install./agent-linux-arm64 -service start#验证systemctl status agent部署 Gatewaycurl -sSL http://get.infini.sh | bash -s -- -p gatewaycd /opt/gateway#批改Gateway配置文件sed -i "/ES_PASS:/ s|\(.*\: \).*|\1$pass|" gateway.ymlhead -n 10 gateway.yml#装置服务并启动./gateway-linux-arm64 -service install./gateway-linux-arm64 -service start#查看服务systemctl status gatewaycurl -u "admin:$pass" http://127.0.0.1:8000部署 Loadgencurl -sSL http://get.infini.sh | bash -s -- -p loadgen#写入数据测试cd /opt/loadgenmkdir -p mockcat <<EOF > mock/nginx.log175.10.75.216 - - [28/Jul/2020:21:20:26 +0800] "GET / HTTP/1.1" 200 8676 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36"175.10.75.216 - - [28/Jul/2020:21:20:26 +0800] "GET /vendor/bootstrap/css/bootstrap.css HTTP/1.1" 200 17235 "http://dl-console.elasticsearch.cn/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36"175.10.75.216 - - [28/Jul/2020:21:20:26 +0800] "GET /vendor/daterangepicker/daterangepicker.css HTTP/1.1" 200 1700 "http://dl-console.elasticsearch.cn/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36"175.10.75.216 - - [28/Jul/2020:21:20:26 +0800] "GET /vendor/fork-awesome/css/v5-compat.css HTTP/1.1" 200 2091 "http://dl-console.elasticsearch.cn/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36"175.10.75.216 - - [28/Jul/2020:21:20:26 +0800] "GET /assets/font/raleway.css HTTP/1.1" 200 145 "http://dl-console.elasticsearch.cn/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36"175.10.75.216 - - [28/Jul/2020:21:20:26 +0800] "GET /vendor/fork-awesome/css/fork-awesome.css HTTP/1.1" 200 8401 "http://dl-console.elasticsearch.cn/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36"175.10.75.216 - - [28/Jul/2020:21:20:26 +0800] "GET /assets/css/overrides.css HTTP/1.1" 200 2524 "http://dl-console.elasticsearch.cn/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36"175.10.75.216 - - [28/Jul/2020:21:20:26 +0800] "GET /assets/css/theme.css HTTP/1.1" 200 306 "http://dl-console.elasticsearch.cn/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36"175.10.75.216 - - [28/Jul/2020:21:20:26 +0800] "GET /vendor/fancytree/css/ui.fancytree.css HTTP/1.1" 200 3456 "http://dl-console.elasticsearch.cn/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36"175.10.75.216 - - [28/Jul/2020:21:20:26 +0800] "GET /syncthing/development/logbar.js HTTP/1.1" 200 486 "http://dl-console.elasticsearch.cn/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36"EOFcat <<EOF > loadgen.ymlenv: ES_USERNAME: admin ES_PASSWORD: $pass ES_ENDPOINT: http://localhost:8000runner: # total_rounds: 1 no_warm: false # Whether to log all requests log_requests: false # Whether to log all requests with the specified response status log_status_codes: - 0 - 500 assert_invalid: false assert_error: falsevariables: - name: ip type: file path: dict/ip.txt - name: message type: file path: mock/nginx.log replace: # replace special characters in the value '"': '\"' '\': '\\' - name: user type: file path: dict/user.txt - name: id type: sequence - name: uuid type: uuid - name: now_local type: now_local - name: now_utc type: now_utc - name: now_unix type: now_unix - name: suffix type: range from: 10 to: 13requests: - request: method: POST runtime_variables: batch_no: uuid runtime_body_line_variables: routing_no: uuid basic_auth: username: $[[env.ES_USERNAME]] password: $[[env.ES_PASSWORD]] url: $[[env.ES_ENDPOINT]]/_bulk body_repeat_times: 5000 body: | { "index" : { "_index" : "test-$[[suffix]]", "_id" : "$[[uuid]]" } } { "id" : "$[[uuid]]","routing_no" : "$[[routing_no]]","batch_number" : "$[[batch_no]]","message" : "$[[message]]","random_no" : "$[[suffix]]","ip" : "$[[ip]]","now_local" : "$[[now_local]]","now_unix" : "$[[now_unix]]" }EOF#执行测试./loadgen-linux-arm64 -c 6 -d 6 --compress#查看测试索引文档curl -u "admin:$pass" http://127.0.0.1:8000/_cat/indices/test*?v至此,实现在 Kylin V10 (Lance)-aarch64 上装置单机版 Easysearch/Console/Agent/Gateway/Loadgen。通过浏览器 http://装置机器 IP:9000/ 即可拜访 Console,对 Easysearch 进行配置管理。 ...

June 6, 2023 · 4 min · jiezi

关于数据库:活动预告-中国数据库联盟ACDU中国行定档深圳一起揭秘数据库前沿技术

在当今数字化时代,数据库是各行各业中最外围的信息管理系统之一。随着技术的飞速发展,数据库畛域也不断涌现出新的前沿技术和翻新利用。数据库运维和开发人员须要紧跟前沿技术,能力放弃竞争力,并实现更高效、更智能、更人性化的利用场景和服务。 作为中国数据库联盟(ACDU)的品牌流动之一,【ACDU 中国行】在线下会集数据库畛域的行业知名人士,独特探讨数据库前沿技术及其利用,促成行业倒退和翻新,同时也为开发者们提供一个敌对交换的技术平台。 6月30日下午13:30-17:30,2023首期 ACDU中国行来到深圳, 以 数据库前沿技术揭秘及利用为主题,探讨数据库的将来倒退方向和翻新利用。让咱们一起探秘神秘大咖阵容! 嘉宾及议题介绍13:50-14:00 主办方致辞:回归根源,发展趋势,行业瞻望 分享嘉宾:盖国强 云和恩墨创始人/总经理,中国DBA联盟理事长,墨天轮社区发起者 14:00-14:30 新时代下数据库运维和DBA面临的挑战和时机望 分享嘉宾:徐戟(白鳝) 南京基石数据技术有限责任公司CTO、技术总监,墨天轮MVP 14:30-15:00 Greenplum Database 7 性能晋升的秘密武器 分享嘉宾:汤韬 Greenplum 数据库内核资深研发工程师 15:00-15:30 MySQL 8.0 新个性解读器 分享嘉宾:姜承尧 腾讯科技总监,TDSQL内核负责人 15:30-16:00 基于PostgreSQL内核加强和扩大的产品设计哲学 分享嘉宾:赵伟 泽拓科技& KunlunBase创始人 16:00-16:30 深算院自研数据库系统的设计与实际 分享嘉宾:王海峰 YashanDB技术总监 16:30-17:00 openGauss 5.0.0的新个性解读践 分享嘉宾:熊小军 华为高级研发工程师,openGauss数据库内核Committer 17:00-17:30 Oracle 23c翻新技术与SQL加强 分享嘉宾:杨廷琨 云和恩墨联结创始人兼CTO 流动亮点高质量的嘉宾阵容本次流动邀请了Oracle、PostgreSQL、MySQL、Greenplum、openGauss、YashanDB等国内外的出名专家,分享他们在实践中的教训和心得,为您带来最新、最有价值的信息; 关注热点话题探讨数据库行业的热点话题,包含数据库新个性解读、翻新利用、数据库智能运维等等,让参会者跟上最新的技术变动,把握发展趋势; 现场互动与交换ACDU China Tour 提供与各位专家进行面对面交换的机会,为参会者搭建交换互动平台,晋升与行业内人士的交换、学习和单干! 精美伴手礼与惊喜互动大奖在现场筹备了三重好礼,除了到场即可支付的精美伴手礼,前100位到场的敌人还能够取得墨天轮月卡1张,现场还可参加多轮抽奖,最高可赢取价值500元的大奖。 点击此处即可报名:https://www.modb.pro/event/832欢送各位朋友增加墨天轮小助手(_微信号:modb666_)备注“深圳”进入专属交换群!期待与大家线下相聚,共论数据库前沿技术与发展趋势! 欲了解更多可浏览墨天轮社区,围绕数据人的学习成长提供一站式的全面服务,打造集新闻资讯、在线问答、流动直播、在线课程、文档阅览、资源下载、常识分享及在线运维为一体的对立平台,继续促成数据畛域的常识流传和技术创新。

June 6, 2023 · 1 min · jiezi

关于数据库:SeaTunnel-StarRocks-连接器的使用及原理介绍

作者:毕博,马蜂窝数据平台负责人,StarRocks 沉闷贡献者 & Apache SeaTunnel 贡献者 Apache SeaTunnel(以下简称 SeaTunnel)是一个分布式、高性能、易扩大、用于海量数据(离线&实时)同步和转化的数据集成平台。StarRocks 通过与 SeaTunnel 的联合能够轻松实现 StarRocks 和不同数据源之间的数据交换。 SeaTunnel StarRocks 连接器简介首先介绍一下数据同步平台 Apache SeaTunnel 的根本架构。 上图为 SeaTunnel 架构图,它提供了一套形象的 API,包含 Source 、Transform、Sink API 等。基于这些形象 API 可扩大出各种各样 Connector,其中基于 Source API 实现的 Source Connector 能够从左侧泛滥的数据源中读取数据,Transform Connector 用于实现数据 Pineline 中的数据转换解决,而 Sink Connector 能够将数据写入到右侧多种异构的数据源中。 同时,在运行时,SeaTunnel 还提供了一个翻译层,会将 Connector 实现的 Source 和 Sink API 翻译成引擎外部可运行的 API,使连接器能够在不同引擎上运行。目前 SeaTunnel 反对三种执行引擎,Spark、Flink 以及 SeaTunnel 自研执行引擎 Zeta Engine。 以上就是 SeaTunnel 的整体架构,能够看出,SeaTunnel 通过 Souce Connector 和 Sink Connector 实现与不同数据源进行链接。 ...

June 6, 2023 · 4 min · jiezi

关于数据库:11000新能源车企如何将数据库管理效能发挥到极致

1:1000 的数据库变更治理窘境在数字化转型的浪潮下,越来越多的企业扩充了软件研发团队的规模以减速业务零碎的迭代降级,从而应答疾速变动的市场竞争环境。新能源汽车作为近年的风口行业,更加重视研发的投入,以 Bytebase 的某新能源车企客户为例,仅研发人员就超过千人。然而业务迭代并非简略的越快越好,因为快而疏忽了品质,可能造成难以估计的损失,作为零碎中最要害一环的数据库,每一次变更都要尤为审慎。 该企业的数据库治理团队曾经建设了根底的变更治理流程,每一次对数据库的改变都要求业务开发团队在零碎中提交申请,DBA 审核实现后再由专人正式公布。但就像少数研发组织一样,该企业同样面临数据库管理人员严重不足的问题,甚至达到了 1:1000 的迥异比例,而疾速倒退的业务又带来了极为频繁的数据库变更需要,这让日常的数据库管理工作陷入了窘境: 业务开发提交变更脚本繁琐。须要将语句复制粘贴到文档中,文字描述待变更指标库,再通过 IM 等合作管理工具发送给审核人,割裂的流程导致沟通老本极高。人工审核流于形式。随着变更申请疾速增多,人工审核逐步难以应答,最终只能抓大放小,甚至齐全跳过审核阶段。手工公布效率低下。DBA 须要下载对应脚本再连贯指标库执行,一旦出错须要重复沟通批改变更治理占用大量工夫。因为变更频繁,DBA 日常破费大量工夫解决相干工作,为了不影响变更时效,团队成员甚至须要时刻随身携带电脑。这种窘境亟待扭转。 构建全新变更治理流程通过引入 Bytebase,该企业构建了全新的变更治理流程,通过与上下游的研发工具买通,从变更发动,审核,再到最终公布实现全流程自动化,极大晋升了人效,在确保变更品质的同时,DBA 节约了大量工夫用于更多高价值的工作。 利用代码仓库治理 SQL 脚本并间接发动变更申请SQL 脚本作为代码的一种,同样要求有序、统一,利用代码仓库进行治理无疑是最佳的抉择。利用 Bytebase 的能力,实现了与代码仓库的集成,所有 SQL 脚本只有合并入指定分支,即可主动触发部署工单。对于企业的业务开发团队而言,在本人最相熟的 GitLab 工作界面即可实现所有工作,大幅提效的同时也升高了来回复制代码出错的概率。 工单触发 IM 告诉由 GitLab 发送的变更脚本将在 Bytebase Console 生成工单,同时会主动在飞书中生成相应的音讯告诉,审核人员能够第一工夫查看工单,而业务开发团队也能第一工夫获知工单状态变动。 SQL 脚本全自动审核通过 Bytebase 内置的主动审核能力,该团队定义了不同的审核策略,实现了全自动的工单审核流程,诸如语法错误、性能隐患等问题在正式执行前即可被自动检测工具发现。同时,业务开发团队也能够实时获知审核后果,缩小了沟通老本。 主动变更公布通过审核的变更工单将主动公布到指标数据库,并即时反馈执行后果,免去了 DBA 手动执行的繁琐流程,也杜绝了误操作的可能。 挪动端审批对于一些小型变更,DBA 甚至无需登录 Bytebase Console,在 IM 中即可实现审阅与核准,大幅晋升了业务团队的体验,这种便捷的审核模式极为适宜这种业务变动频繁,审核需要多而迫切的业务场景。 数据库变更版本化治理所有的变更都将进行版本化治理,相干的变更脚本、变更前后的数据库构造变动、工单审核流程等信息,全部都是可追溯的,数据库全生命周期尽在把握。 企业的落地实际在实际新一代数据库变更治理流程的过程中,该企业的 DBA 团队也总结出了一些落地教训。 主动、主动、还是主动该团队核心理念就是贯彻自动化,通过利用一系列工具,将数据库的 CI/CD 的绝大多数环节实现了自动化,大幅解放了多个团队的生产力。当然,数据库的复杂性也决定了难以实现齐全的自动化,对于特定场景的人工染指,依然是一种必要的补充。 以 DevOps 为理念的自助治理以 DevOps 的理念为指引,该团队十分强调让业务开发参加变更管理工作。这一过程要害是寻找到不影响开发团队工作习惯的模式,最合适的莫过于将相干工作内容植入开发团队罕用工作界面,如 GitLab 与 IM 等工具。 正当分类数据库为了有序疏导开发团队参加变更管理工作,包含提交工单以及参加工单的审核流程,须要精准的界定权限。在这种理念下,不能简略连续传统集中化管理模式中依照保护等级进行分类的模式,更要依照产品线、项目组等维度进行划分,从而确保每一个开发者只能参加本身所属我的项目的数据库变更流程。 正当布局代码仓库目录因为利用了代码仓库进行 SQL 脚本的治理,同样须要对其目录构造进行正当布局。总体上能够延用 monorepo 的理念,将所有脚本集中在一个仓库中寄存。具体的子目录设计则与 Bytebase 中的项目组划分进行一一对应,确保同一个我的项目下的数据库脚本寄存在同一个子目录下。 ...

June 6, 2023 · 1 min · jiezi

关于数据库:大数据公司数据分析取数流程以及SQL示例

无效的数据分析,首先须要从宏大的数据库中获取所需的数据,这就波及到SQL取数的技巧。 SQL应用流程作为一种结构化查询语言,SQL能够对关系型数据库进行增删改查操作。对于数据分析师,最罕用的就是查问操作,即从数据库中提取出满足条件的数据,以便再进行计算解决或可视化展现。那么,SQL取数的根本流程是什么呢? 首先,确定要取数的指标表和字段,以及要计算的指标。这须要对业务需要有清晰的了解,晓得要从哪些表中获取哪些字段,以及要计算哪些内容。其次,编写SQL查问语句,应用select、from、where、group by、having、order by子句,指定要查问的字段名、表名、条件、分组、排序,熟练掌握SQL语法,灵便应用各种函数。而后,运行SQL查问语句,从数据库中获取数据,肯定要严格检查数据的准确性和完整性。正确地连贯数据库,执行查问语句,还要留神检查数据是否有缺失、异样或谬误等问题。最初,将查问后果导出到其余工具或平台,筹备下一步的解决或展现。不同的场景,配合不同的工具,广泛的如Excel、Power BI、Tableau。SQL具体代码内容具体的业务需要决定如何写SQL代码,但总的来说,分为以下几个局部: 建表语句:创立数据库或表,指定表名、字段名、字段类型、主键、索引等属性。插入语句:向表中插入数据,指定要插入的表名和字段值。查问语句:从表中查问数据,指定要查问的字段名、表名、条件、排序、分组等。更新语句:批改表中的数据,指定要批改的表名、字段名、条件和新值。删除语句:删除表中的数据,指定要删除的表名和条件。不同局部的SQL简略示例如下: -- 建表语句create table products ( prod_id int primary key, -- 产品编号 prod_name varchar(50) not null, -- 产品名称 prod_price decimal(10,2) check (prod_price > 0), -- 产品价格 prod_category varchar(20) -- 产品类别);-- 插入语句insert into products values (1, 'iPhone 14', 6999.00, '手机');insert into products values (2, 'iPad Pro', 4999.00, '平板');insert into products values (3, 'MacBook Air', 7999.00, '笔记本');-- 查问语句select * from products; -- 查问所有产品信息select prod_name, prod_price from products where prod_category = '手机'; -- 查问手机类别的产品名称和价格select prod_category, avg(prod_price) as avg_price from products group by prod_category; -- 查问每个类别的产品平均价格-- 更新语句update products set prod_price = prod_price * 0.9 where prod_id = 1; -- 将产品编号为1的产品价格打九折-- 删除语句delete from products where prod_price < 5000; -- 删除价格低于5000的产品SQL代码示例再看一个简略的示例,假如咱们要从一个产品表中获取产品名称、价格和类别等信息,并计算每个类别的产品平均价格。 ...

June 5, 2023 · 1 min · jiezi

关于数据库:从-MySQL-到-OBOracle如何处理自增列

业务须要将数据库转换为 OceanBase 数据库,但源端波及到 Oracle 及 MySQL 两种不同数据库,须要合并为 OceanBase 中繁多的 Oracle 模式,其中源端 MySQL 数据库须要革新为 OB Oracle 并做异构数据迁徙。在数据迁徙中发现,MySQL 中的自增列(AUTO_INCREMENT)在 OB Oracle 中是不反对的,在 OB Oracle 对应 MySQL 自增列的性能是通过序列实现的。通过测试以及浏览相干文章,共测试实现了以下四种 OB Oracle 创立并应用序列的办法。 作者:杨敬博 爱可生 DBA 团队成员,一位会摄影、会铲屎、会打球、会骑车、生存能够自理的 DBA。 背景形容OceanBase 数据库中分为 MySQL 租户与 Oracle 租户,本文针对 OceanBase 中 Oracle 租户怎么创立自增列,以及如何更简略不便的解决自增列的问题开展介绍。OceanBase 的 Oracle 租户以下简称:OBOracle。 发现问题场景业务须要将数据库转换为 OceanBase 数据库,但源端波及到 Oracle 及 MySQL 两种不同数据库,须要合并为 OceanBase 中繁多的 Oracle 模式,其中源端 MySQL 数据库须要革新为 OB Oracle 并做异构数据迁徙。在数据迁徙中发现,MySQL 中的自增列(AUTO_INCREMENT)在 OB Oracle 中是不反对的,在 OB Oracle 对应 MySQL 自增列的性能是通过序列实现的。通过测试以及浏览相干文章,共测试实现了以下四种 OB Oracle 创立并应用序列的办法。 ...

June 5, 2023 · 6 min · jiezi

关于数据库:墨天轮专访陶建辉坚持做难而正确的事把握35岁黄金时期

导读: 时序数据库(Time Series Database)在最近几年被越来越多的用户承受并应用,并有宽泛的利用场景。云原生时序数据库 TDengine 始终稳居墨天轮时序数据库榜首,其近期的海内倒退也初见成效。本期,墨天轮技术社区邀请到了涛思数据领航者——陶建辉学生,针对公司创建初心、时序数据库将来发展趋势、数据库出海等话题开展探讨,同时有过三次守业经验的他也将分享本人的心得体会,以及对数据库从业者将来倒退的倡议! _涛思数据创始人&CEO —— 陶建辉_  TDengine 创始人与外围开发。1994年到美国留学,1997年起,先后在芝加哥 Motorola、3Com 等公司从事无线互联网的研发工作。2008年初回到北京开办和信,后被联发科收买。2013年初开办高兴妈咪,后被太平洋网络收买。2017年5月开办涛思数据,专一物联网大数据的解决,产品 TDengine 开源后,在 GitHub 寰球趋势排行榜上多日排名第一。涛思数据已获红杉、GGV、经纬、明势资本等多家机构的近7000万美元的投资。—— 以下为采访全文 ——   墨天轮社区:您守业抉择的行业多样,从通信、母婴行业再到当初的时序数据库,逾越的幅度也比拟大,您最初抉择时序数据库是基于怎么的初衷? 陶建辉:我上一家守业公司是做母婴智能硬件,智能硬件产生的数据都是时序数据,因而让我理解到了时序数据这样的场景。在公司被收买后,我看了很多智能硬件、物联网、工业互联网的我的项目,感觉时序数据的解决是一个共性的、绝对规范的需要。而且2016年主动驾驶很火,主动驾驶能产生海量的时序数据,分布式能源也是很多人探讨,这些分布式能源零碎产生的数据也是海量的,因而我认为时序数据处理将成为一个重要的技术畛域。 调研发现市场上曾经有 InfluxDB、OpenTSDB 这些产品,但这些产品做得一般般,并没有充分利用时序数据的个性,而过后 InfluxDB 曾经融资6000多万美元,因而我认为这是一个值得守业的赛道。2016年底就本人入手开始写程序,验证本人提出的 “一个数据采集点一张表” 这一数据模型的效率,测试发现,竟然写入和查问性能至多比 InfluxDB 快五倍以上,因而我就正式决定融资、组建团队,这样,涛思数据在2017年6月就正式成立了。   墨天轮社区:TDengine 在开源方面是比拟胜利的,如何在开源的同时实现商业化? 陶建辉:以后 TDengine 次要通过企业版和云服务实现商业化。相比开源版,TDengine 企业版领有更多企业所须要的数据库经营保护性能,比方数据备份、容灾、加密、平安传输,以及可视化的治理界面、数据的多级存储、边云协同等等。但开源版与企业版的外围性能都是齐全一样的。 云服务更多的是面向中小企业用户,是全托管的时序数据处理平台,这也将是咱们今后很重要的支出起源。   墨天轮社区:相较于 InfluxDB,TDengine 有哪些差异化的劣势?目前您认为 TDengine 最胜利的标杆利用案例是什么? 陶建辉:绝对于 InfluxDB, TDengine 有以下几方面的劣势: 超强性能,基于寰球公认的时序数据基准测试后果来看,TDengine 的写入性能是其 3.0 ~ 10.6倍, TDengine 的查问性能是其 1.9 ~ 37.0 倍,均匀 11.3 倍,磁盘空间的占用也有显著劣势;TDengine 不仅只是一个时序数据库,它还带有缓存、数据订阅、流式计算的性能,是一个极简的时序数据处理平台,这样能大幅升高整个数据平台设计的复杂度和运维老本;TDengine 更简略易用,因为反对规范 SQL。TDengine 最胜利的标杆案例之一应该是逾越速运的车辆轨迹数据处理,在资源的节俭方面极其显著。与 Hadoop 零碎相比,采纳 TDengine 之后,服务器台数由21台降为3台,磁盘空间由每日的352G降为4G,而且经营保护变的极为简略,升高人力老本(具体请看:https://www.taosdata.com/user-cases/4863.html)。   墨天轮社区:最近 AI 热潮来袭,TDengine 在人工智能方面有哪些倒退成绩及将来布局? ...

June 5, 2023 · 1 min · jiezi

关于数据库:降本增效StarRocks-在同程旅行的实践

作者:周涛 同程旅行数据中心大数据研发工程师 同程旅行是中国在线游览行业的创新者和市场领导者。作为一家一站式平台,同程旅行致力于满足用户游览需要,秉持 "让旅行更简略、更高兴" 的使命,次要通过包含微信小程序、APP、轻利用及其他渠道在内的线上平台,为用户提供简直涵盖游览所有方面的全面翻新产品和服务抉择,涵盖交通、住宿、景点门票预订及各种配套增值游览产品及服务,旨在满足用户在整个旅途中一直变动的游览须要。目前,同程旅行的月沉闷用户已达到2亿多人。为了晋升数据分析查问性能,同时升高人力和硬件老本,公司的出行、住宿和公共等多个业务线都已接入并应用了 StarRocks 技术。同程旅行有多年的 OLAP 应用教训,随着业务增长和变动,促使咱们须要一直摸索更适合的组件来满足需要。在这方面,StarRocks 作为一款优良的数据库,在同程旅行的生产环境中失去了广泛应用,涵盖实时、离线和 Customer Data Platform(顾客数据平台,以下简称 CDP)等多个利用场景。 本文将从同程旅行 OLAP 平台演进、业务痛点和 StarRocks 是如何解决以后业务痛点这几个局部具体介绍 StarRocks 在同程旅行的生产落地实际。 同程旅行的 OLAP 平台演进随着公司的业务变动和用户量的减少,数据量也在一直减少。数据分析场景变得越来越多样化,对实时剖析的时效性要求也更高了。为了更好地满足这些需要,同程旅行的 OLAP 平台也在一直演进,整体的倒退过程大抵分为三个阶段: 第一阶段:以 Druid+Kylin 为根底构建的数据分析体系,满足了过后对于离线数据分析减速的需要,但在应用过程中也逐步暴露出 SQL 剖析、联邦查问、BI 兼容等方面能力有余与 CUBE 运维老本较低等一系列问题; 第二阶段(引入 StarRocks 前):在这一阶段,咱们采纳 ClickHouse+Greenplum 撑持实时、离线业务的剖析解决,在肯定水平上解决了上一阶段存在的问题; 第三阶段:由 StarRocks 作为对立的 OLAP 组件,缩小多组件的保护压力。同时重视在企业外部与相干数据平台的集成,晋升用户应用体验,升高用户组件应用和切换老本。 在阐明咱们为什么抉择 StarRocks 作为咱们新一代的 OLAP 组件前,咱们须要先理解原有平台架构的有余:ClickHouse:次要用于用户行为轨迹和订单实时数据存储和剖析Greenplum:次要用于公司外部的灵动剖析看板,做剖析报表应用 如上图所示,在原始架构中,对于实时场景,业务数据通过 Kafka 传入 Flink,在 Flink 中进行荡涤、打宽表等逻辑解决,之后将后果数据导入 ClickHouse 中;对于离线场景,数据对立存储在 HDFS 中,通过 Hive+Spark 进行荡涤解决后,将后果数据传入 Greenplum 中。 实时场景 次要波及业务订单数据,数据能够通过前端用户埋点到 Kafka,或者订阅业务订单数据库 Binlog,实时写入到 MQ,而后应用 Flink SQL,关联维度表,将数据打宽,最初写入到 ClickHouse 中。 ...

June 5, 2023 · 2 min · jiezi

关于数据库:如何把数据从-TDengine-2x-迁移到-3x

一.迁徙背景:随着时序数据库(Time Series Database) TDengine 3.0 的公布至今,咱们除了在继续地优化产品质量的自身,也始终在致力地晋升用户体验。但因为 3.0 底层有大量的重构优化,导致开源版的 2.0 用户无奈通过惯例路径来降级到 3.0 ,本期文章将会帮助大部分开源版用户解决这个问题。 注释:首先,咱们先说下 taosdump 为什么是帮助“大部分”开源版用户解决这个问题: taosdump 的导出行为的实质其实是应用 SQL 进行查问,将数据压缩后输入到本地,导入行为则是通过 STMT 接口再把导出的数据导入新的环境。在外部,它嵌入了一个 TDengine 客户端,通过 -T 参数的线程数配置,并发地把所有 SQL 申请发给数据库,尔后,后续的查问工作就是数据库本人的事件了。鉴于以上起因,所以它的导出导入的性能都非常依赖于数据库自身的部署建模是否迷信,硬件资源是否短缺等因素。 举个简略例子:如果某用户在建表的时候,对于一列本应应用 binary(100) 就足够的数据应用了 nchar(2000),那么等到导出 SQL 执行的时候,性能就会被连累很多。 因而,可能顺利完成数据导出的用户,应尽量领有如下几个特色: 领有足够磁盘空间——因为硬盘上的数据是列式压缩,而导出数据为行式压缩。如果抉择一次性导出全副数据,倡议须要至多留出 du -sh $dataDir/vnode --exclude='wal' 大小的 3 倍空间(多多益善)。但如果是依照库/表为单位分批导出,或者指定工夫范畴导出的话,就比拟灵便了。数据库日常应用负载不高,在大量导出 SQL 执行时,数据库仍有短缺资源能够保障失常生产应用。待迁徙的 2.0 数据为测试环境不需放心影响业务,或者生产环境的业务间歇期足够实现数据的导出——这两点须要联合以后导出速度本人评估。总结而言,导出/导入数据的快慢是由 SQL 执行效率来决定的,而 SQL执行效率的背地又是由部署建模,硬件资源等因素决定的。 只有磁盘空间短缺,工夫短缺,就能够实现导出操作。导入则绝对简略,没有额定需要,依照失常的数据库部署思路即可。 因为 taosdump 自身的产品特色决定了在上述非凡状况下,迁徙数据会有效率问题,因而这也是咱们开发业余的企业版数据迁徙工具 taosX 的起因之一。 二.迁徙操作导出方: 对于 2.0 一侧,首先要筹备好最新版本的 TDengine 和 taosdump 工具,具体操作如下: 把数据库降级到 2.6.0.34,降级注意事项以及操作步骤都能够参考这篇文章:https://www.taosdata.com/engineering/10222.html。(留神:RPM 和 Deb 包不含 taosdump ,它须要通过装置 taosTools 包取得。 所以倡议大家间接应用蕴含 TDengine 的 Tar 包实现降级。)TDengine 安装包需从 2.6 版本的文档去下载:https://www.taosdata.com/all-downloads 。如果应用了 RPM 和 Deb 的话,同样须要通过上述链接下载最新版的 taostool 获取 taosdump工具(以后最新版为 2.4.5)应用 taosdump 把数据导出:具体操作可参考:https://docs.taosdata.com/2.6/reference/taosdump/ ...

June 5, 2023 · 2 min · jiezi

关于数据库:MySQL对derived-table的优化处理与使用限制

前言随着MySQL版本的倒退,优化器是越来越智能,优化器开关也越来越多,本文给大家分享一下MySQL对derived table的优化解决。 何为derived table?这里我把它翻译成派生表,简略来讲,就是将from 子句中呈现的检索后果集当做一张表,比方from 一个select结构的子查问,这个子查问就是一个派生表,from 一个视图,这个视图就是一个派生表,from 一个with 结构的长期表(Common table expression,CTE),这个CTE表就是一个派生表。 一、优化器对derived table的优化优化器解决derived table有两种策略:1.将derived table合并到外查问块中,2,将derived table 物化为一个长期表。应用优化器开关derived_merge来管制优化器抉择哪种策略。设置为on,抉择策略1;设置为off,抉择策略2。此开关从5.7.6版本时引入,默认值为on。 8.0.22版本中又引入优化器开关derived_condition_pushdown,默认值为on,示意外查问块中与派生表相干的条件会推入到派生表中,设置为off,则不会推入。 上面试验来阐明,接下来本章节试验都是基于MySQL8.0.25。 试验表构造 mysql> show create table t1\G*************************** 1. row *************************** Table: t1Create Table: CREATE TABLE `t1` ( `id` int DEFAULT NULL, `c1` varchar(100) DEFAULT NULL, KEY `idx_id` (`id`), KEY `idx_c1` (`c1`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci1 row in set (0.00 sec)试验语句: select * from (select id,c1 from t1 ) dt where id=2;(1)以后为两个开关都关上,此为默认值 ...

June 5, 2023 · 4 min · jiezi

关于数据库:实现一个简单Database13

前文回顾实现一个简略的Database1(译文)实现一个简略的Database2(译文)实现一个简略的Database3(译文)实现一个简略的Database4(译文)实现一个简略的Database5(译文)实现一个简略的Database6(译文)实现一个简略的Database7(译文)实现一个简略的Database8(译文)实现一个简略的Database9(译文)实现一个简略的Database10(译文)实现一个简略的Database11(译文)实现一个简略的Database12(译文)译注:cstack在github保护了一个简略的、相似sqlite的数据库实现,通过这个简略的我的项目,能够很好的了解数据库是如何运行的。本文是第十三篇,次要是在节点决裂后更新父节点 Part 13 决裂后更新父节点 对于咱们史诗般的 B 树实现之旅的下一步,咱们将解决,在叶子节点决裂后修复父节点(也就是更新父结点中的条目信息)。我来用上面的例子作为参考: Example of updating internal node 在这例子中,减少一个 Key "3" 到树中。这会引起左侧叶子节点决裂(假如节点中可寄存两个条目,超过三个将引起决裂)。在决裂后做一下几个步骤来修复树(的构造):1、用左侧叶子节点(left child)中最大 Key (“3”) 来更新父节点中的第一个Key。2、在更新 Key 后增加一个新的指针和一个键对儿: 新指针指向新的孩子节点(也是叶子节点)新减少的键对儿是新的孩子节点中的最大的 Key (“5”)所以,首先得得首先,应用两个新函数替换之前的埋桩代码:update_internal_node_key() for step 1 and internal_node_insert() for step 2 @@ -670,9 +725,11 @@ void leaf_node_split_and_insert(Cursor* cursor, uint32_t key, Row* value) { */ void* old_node = get_page(cursor->table->pager, cursor->page_num);+ uint32_t old_max = get_node_max_key(old_node); uint32_t new_page_num = get_unused_page_num(cursor->table->pager); void* new_node = get_page(cursor->table->pager, new_page_num); initialize_leaf_node(new_node);+ *node_parent(new_node) = *node_parent(old_node); *leaf_node_next_leaf(new_node) = *leaf_node_next_leaf(old_node); *leaf_node_next_leaf(old_node) = new_page_num;@@ -709,8 +766,12 @@ void leaf_node_split_and_insert(Cursor* cursor, uint32_t key, Row* value) { if (is_node_root(old_node)) { return create_new_root(cursor->table, new_page_num); } else {- printf("Need to implement updating parent after split\n");- exit(EXIT_FAILURE);+ uint32_t parent_page_num = *node_parent(old_node);+ uint32_t new_max = get_node_max_key(old_node);+ void* parent = get_page(cursor->table->pager, parent_page_num);++ update_internal_node_key(parent, old_max, new_max);+ internal_node_insert(cursor->table, parent_page_num, new_page_num);+ return; } }为了获取对父节点的援用,咱们须要开始在每个节点中记录指向其父节点的指针。 ...

June 5, 2023 · 4 min · jiezi

关于数据库:MySQL-Router高可用搭建

装置简介高可用搭建高可用及负载平衡测试问题解决一、装置简介1.1 装置目标MySQL官网提供了InnoDB Cluster,该集群由MySQL MGR和MySQL Router组成。MySQL MGR在数据库层面实现自主高可用性,而MySQL Router则负责代理拜访。在部署实现后,MySQL Router将造成单点,如果呈现故障,将会影响数据库集群的可用性。因而,为了进步数据库系统的可用性,须要搭建MySQL Router的高可用性计划。 1.2 MySQL router高可用组件介绍本篇文章中的高可用计划,次要是通过Corosync和Pacemaker是两个开源软件我的项目实现,它们联合起来为高可用性集群提供了通信、同步、资源管理和故障转移等服务。 1.2.1 corosyncCorosync是一个开源的高可用性集群通信和同步服务,能够实现集群节点之间的通信和数据同步,同时提供了牢靠的消息传递机制和成员治理性能,以确保在分布式环境下集群的稳固运行。 Corosync基于牢靠的UDP多播协定进行通信,并提供了可插拔的协定栈接口,能够反对多种协定和网络环境。它还提供了一个API,能够让其余应用程序应用Corosync的通信和同步服务。 1.2.2 pacemakerPacemaker是一个开源的高可用性集群资源管理和故障转移工具,能够实现在集群节点之间主动治理资源(如虚构IP、文件系统、数据库等),并在节点或资源故障时进行主动迁徙,从而确保整个零碎的高可用性和连续性。 Pacemaker反对多种资源管理策略,能够依据不同的需要进行配置。它还提供了一个灵便的插件框架,能够反对不同的集群环境和利用场景,比方虚拟化、云计算等。 将Corosync和Pacemaker联合起来,能够提供一个残缺的高可用性集群解决方案。它通过Corosync实现集群节点之间的通信和同步,通过Pacemaker实现集群资源管理和故障转移,从而确保整个零碎的高可用性和连续性。 它们联合起来为高可用性集群提供了牢靠的通信、同步、资源管理和故障转移等服务,是构建牢靠、高效的分布式系统的重要根底。 1.2.3 ldirectordldirectord是一个用于Linux零碎的负载平衡工具,它能够治理多个服务器上的服务,并将客户端申请散发到这些服务器中的一个或多个上,以进步服务的可用性和性能。ldirectord通常是与Heartbeat或Keepalived等集群软件一起应用,以确保高可用性和负载平衡。 ldirectord主要用途包含: 负载平衡:ldirectord能够基于不同的负载平衡算法进行申请散发,例如轮询、加权轮询、起码连贯、源地址哈希等。它能够将客户端申请散发到多个后端服务器中的一个或多个上,从而实现负载平衡。健康检查:ldirectord能够定期检查后端服务器的可用性,并将不可用的服务器从服务池中排除,从而确保服务的高可用性和稳定性。会话放弃:ldirectord能够依据客户端的IP地址、Cookie等标识,将客户端申请路由到雷同的后端服务器上,从而实现会话放弃,确保客户端与后端服务器之间的连贯不会被中断。动静配置:ldirectord反对动静增加、删除、批改后端服务器和服务,管理员能够通过命令行或配置文件等形式进行操作,从而实现动静配置。ldirectord是专门为LVS监控而编写的,用来监控lvs架构中服务器池(server pool) 的服务器状态。 ldirectord 运行在 IPVS 节点上, ldirectord作为一个守护过程启动后会对服务器池中的每个实在服务器发送申请进行监控,如果服务器没有响应 ldirectord 的申请,那么ldirectord 认为该服务器不可用, ldirectord 会运行 ipvsadm 对 IPVS表中该服务器进行删除,如果等下次再次检测有相应则通过ipvsadm 进行增加。 2、装置布局MySQL及MySQL Router版本均为8.0.32 IP主机名装置组件应用端口172.17.140.25gdb1MySQL MySQL Router ipvsadm ldirectord pcs pacemaker corosyncMySQL:3309 MySQL Router:6446 MySQL Router:6447 pcs_tcp:13314 pcs_udp:13315172.17.140.24gdb2MySQL MySQL Router ipvsadm ldirectord pcs pacemaker corosyncMySQL:3309 MySQL Router:6446 MySQL Router:6447 pcs_tcp:13314 pcs_udp:13315172.17.139.164gdb3MySQL MySQL Router ipvsadm ldirectord pcs pacemaker corosyncMySQL:3309 MySQL Router:6446 MySQL Router:6447 pcs_tcp:13314 pcs_udp:13315172.17.129.1 VIP6446、6447172.17.139.62 MySQL client 大略装置步骤如下 ...

June 5, 2023 · 14 min · jiezi

关于数据库:图文结合带你搞懂MySQL日志之Binary-log二进制日志

往期回顾 图文联合带你搞定MySQL日志之Undo log(回滚日志)图文联合带你搞懂InnoDB MVCC图文联合带你搞懂MySQL日志之Redo Log(重做日志)图文联合带你搞懂MySQL日志之Error Log(谬误日志)图文联合带你搞懂MySQL日志之Slow Query Log(慢查问日志)图文联合带你搞懂MySQL日志之relay log(中继日志)图文联合带你搞懂MySQL日志之General Query Log(通用查问日志) 此篇为图文联合搞懂MySQL日志的最初一篇,MySQL中共有八大日志,其中数据定义语句日志不是给用户查看的,在此篇尾部简略介绍,接下来图文联合系列还会持续推出新文章! 二进制日志(Binary log)binlog能够说是MySQL中比拟重要的日志了,在日常开发及运维过程中,常常会遇到。 binlog即binary log,二进制日志文件,也叫作变更日志(update log)。它记录了数据库所有执行的DDL和DML等数据库更新事件的语句,然而不蕴含没有批改任何数据的语句(如数据查问语句select、show等)。 它以事件模式记录并保留在二进制文件中。通过这些信息,咱们能够再现数据更新操作的全过程。 如果想要记录所有语句(例如,为了辨认有问题的查问),须要应用通用查问日志。Binary log次要利用场景: 一是用于数据恢复,如果MySQL数据库意外进行,能够通过二进制日志文件来查看用户执行了哪些操作,对数据库服务器文件做了哪些批改,而后依据二进制日志文件中的记录来复原数据库服务器。二是用于数据复制,因为日志的延续性和时效性,master把它的二进制日志传递给slaves来达到master-slave数据统一的目标。能够说MySQL数据库的数据备份、主备、单主、多主、MGR都离不开Binary log,须要依附Binary log来同步数据,保证数据一致性。 查看默认状况查看记录二进制日志是否开启:在MySQL8中默认状况下,二进制文件是开启的。 mysql> show variables like '%log_bin%';+---------------------------------+-----------------------------+| Variable_name | Value |+---------------------------------+-----------------------------+| log_bin | ON | //开关| log_bin_basename | /var/lib/mysql/binlog | // 寄存门路| log_bin_index | /var/lib/mysql/binlog.index || log_bin_trust_function_creators | ON |// 函数创立 | log_bin_use_v1_row_events | OFF || sql_log_bin | ON |//变更sql记录下来+---------------------------------+-----------------------------+6 rows in set (0.01 sec)log_bin_basename:是binlog日志的根本文件名,前面会追加标识来示意每一个文件log_bin_index:是binlog文件的素引文件,这个文件治理了所有的binlog文件的目录log_bin_trust_function_creators:限度存储过程,后面咱们曾经讲过了,这是因为二进制日志的一个重要性能是用于主从复制,而存储函数有可能导致主从的数据不统一。所以当开启二进制日志后,须要限度存储函数的创立、批改、调用log_bin_use_v1_row_events此只读零碎变量已弃用。ON示意应用版本1二进制日志行,OFF示意应用版本2二进制日志行(MySQL5.6的默认值为2)。日志参数设置形式 1 :永久性形式 ...

June 5, 2023 · 3 min · jiezi

关于数据库:GreatSQL-803224-今日发布

1.新增个性1.1 SQL兼容性1.2 MGR1.3 性能优化1.4 平安2.稳定性晋升3.其余调整4.bug修复5.GreatSQL VS MySQL6.GreatSQL Release NotesGreatSQL 8.0.32-24版本公布,减少并行load data、(逻辑 & CLONE)备份加密、MGR读写节点可绑定动静VIP、Oracle兼容扩大、审计日志加强等重磅个性。直播预报:GreatSQL 8.0.32-24发布会 直播工夫:2023.06.05 15:00 - 16:00 扫码预约发布会或点击下方浏览原文进行报名 0.我的项目信息代码仓库:https://gitee.com/GreatSQL/GreatSQL最新下载:https://gitee.com/GreatSQL/GreatSQL/releases/tag/GreatSQL-8.0...我的项目文档:https://greatsql.cn/docs我的项目官网:https://greatsql.cn1.新增个性1.1 SQL兼容性在GreatSQL 8.0.32-24中,实现了多项SQL兼容性性能,包含数据类型扩大、SQL语法等超过20个兼容个性。 1.1.1 数据类型扩大CLOBVARCHAR21.1.2 SQL语法DATETIME 运算ROWNUM子查问无别名EXPLAIN PLAN FOR1.1.3 函数ADD_MONTHS()CAST()DECODE()INSTR()LENGTH()LENGTHB()MONTHS_BETWEEN()NVL()SUBSTRB()SYSDATE()TO_CHAR()TO_DATE()TO_NUMBER()TO_TIMESTAMP()TRANSLATE()TRUNC()SYS_GUID()更多信息详见文档:GreatSQL中的SQL兼容性(https://gitee.com/GreatSQL/GreatSQL-Doc/blob/master/relnotes/...) 1.2 MGR1.2.1 MGR内置动静VIP在GreatSQL 8.0.32-24中,新增MGR读写节点反对绑定VIP(虚构IP)个性。利用该个性,使得MGR在单主模式下运行时,能自动识别读写节点并绑定VIP,反对利用端即可通过VIP对数据库发动读写申请,当读写节点角色发生变化时,VIP也会随之主动漂移并从新绑定,利用端无需批改VIP配置。 更多信息详见文档:GreatSQL中MGR反对内置vip个性(https://gitee.com/GreatSQL/GreatSQL-Doc/blob/master/relnotes/...) 1.2.2 新增applier queue批处理机制新增相应选项 group_replication_applier_batch_size_threshold。当MGR中的并发事务太大,或者个别Secondary节点(磁盘I/O)性能较差时,可能会导致applier queue沉积越来越大,始终无奈及时跟上Primary节点。 这时候无效的方法就是让applier queue落地时采纳批量的形式,进步落盘效率。默认地,applier queue里的event是一一落盘的,这种形式效率很低。当applier queue超过 group_replication_applier_batch_size_threshold 设定的阈值时,就会触发批量落盘模式,每100个event批量落盘,就能大大提高落盘效率。 在生产环境中,选项 group_replication_applier_batch_size_threshold 值不要设置太小,倡议不低于10000。默认值 100000,最小值10(仅用于开发、测试环境),最大值100000000(基本上等于禁用)。一个大事务会蕴含很多个event,当该选项设置太低时,可能会导致一个事务中的event没方法及时落盘,会造成relay log不残缺,节点crash时,就须要从Primary节点从新读取binlog进行复原。 System Variable Namegroup_replication_applier_batch_size_thresholdVariable ScopeGlobalDynamic VariableYESPermitted Values[10 ~ 100000000]Default100000Description当applier queue超过 group_replication_applier_batch_size_threshold 设定的阈值时,就会触发批量落盘模式,每100个event批量落盘,进步落盘效率。1.2.3 Xcom cache调配动态化在MySQL 5.7里,Xcom cache size最大值1G,且不可动静调整。从MySQL 8.0开始,可对其动静调整。在 <= MySQL 8.0.20的版本中,最小值1G。在>= MySQL 8.0.21的版本中,最小值128M。 ...

June 5, 2023 · 2 min · jiezi

关于数据库:智慧水务系统如何进行有效的数据架构整改三个企业的改造实践分享

在智慧水务零碎中,往往须要对设施中产生的液位、电流、水量等实时指标数据进行存储、剖析及监控操作,而这些都是典型的时序数据。面对这些数据的解决时,很多企业在后期抉择的大都是传统的实时数据库甚至关系型数据库,随着设施数量的减少,数据量也达到了百万、千万量级,传统的数据库解决方案曾经无奈满足业务需要。为了帮忙有以上问题的企业更好地进行数据架构整改,本篇文章汇总了三个典型智慧水务场景下的数据架构降级实际,给到大家参考。 禹为科技 x TDengine“TDengine 的音讯订阅、缓存、流式计算等诸多个性,能够代替 Kafka、OpenTSDB 和 Flink,缩小业务代码中定时计算(如用水量)等性能,简化了整体架构。在架构简化当前,排查和定位问题也能失去疾速响应,开发和运维老本大大节约。同时,TDengine 代替了 OpenTSDB+Redis+MySQL,进步了数据实时性和一致性,其表结构设计正当,能够节俭存储空间,进而节俭存储费用。” 业务背景相较于水利信息化零碎,禹为科技灌区信息化平台具备设施厂家多、数据多且存储周期长、数据类型较为集中、须要实时展现的指标较多等特点。为理解耦零碎中的数据接入和数据分析,禹为科技将数据的接入和计算剖析拆分为独立的通用物联网平台及大数据平台,在古代灌区信息化平台的建设过程中,经验了数据库&定时工作的架构、以流式计算为外围的架构和以 TDengine 为外围的架构三个阶段,最终选用 TDengine 帮忙其对水位、流量、水量等实时指标数据分析。 架构图点击案例查看更多技术细节 鼎蓝水务 x TDengine“应用感触就是 TDengine 的数据处理性能十分高。当初的接入网关的设施数是 23 个液位、9 个频率计、9 个电流计、10个拦蓄盾、3个泵站、3个截留井、1个泵闸,总共有 40 张表,每张表每天新增 6 万条数据,当初每张表的大概三百万条数据。应用 TDengine 带来的最大益处是不必再思考 SQLServer 中的分库分表操作,数据一直写入一个月后,查问时延也没有减少。而且咱们发现 TDengine 在解决 13 个设施、百万量级的数据量写入工作时,内存开销只有 1.5GB,查问时内存增长也发觉不进去,整体内存开销比 SQLServer 升高了 50%。” 业务背景鼎蓝水务智慧排水系统须要解决来自拦蓄盾检测设施上报的数据。在这些监测数据的解决流程上,数据从网关推送过去后会有一个判断是否实时数据。此前所有数据都是应用 SQL Server 存储,数据量达到 2000 万后 SQL Server 的查问时延就变得十分慢,不得不做分库分表操作来进步查问速度,但这个解决办法遇到跨库跨表的查问十分不便。架构革新后,对于非实时数据,则会流经 Redis 去重,做报警判断而后写入 SQL Server;对于实时数据则间接写入TDengine,不须要再通过 Redis,之后前端须要的一些相似液位电流数据等就能够间接从 TDengine 拜访。 数据处理流程图点击案例查看更多技术细节 万朗智水 x TDengine“设置参数为十万张点表,每个点表 1s 须要存储 1 条记录。在理论测试过程中,应用 HTTP 接口,采纳单机 4C16GB 的配置,8 线程每次写 500 条记录,10 万条记录写入只须要 300ms(如果应用 java 客户端更快);单变量采样查问根本在 2ms 内实现。整个测试继续了 48 小时,测试期间 CPU 在 20%-30% 之间,内存维持在 6GB 左右,写入相当稳固,没有呈现超时。查问方面,咱们应用 MySQL 查问 3 个点一年的数据间接申请超时,应用 TDengine 根本 2s 左右就能返回给页面进行渲染。写入和查问速度比 OpenTSDB 都还高一个级别。” ...

June 2, 2023 · 1 min · jiezi

关于数据库:墨天轮正式发布5月行业分析报告首发时序实时数据库两大全球产业图谱

为了帮忙大家及时理解中国数据库行业倒退现状、梳理以后数据库市场环境和产品生态等状况,从2022年4月起,墨天轮社区行业剖析钻研团队出品将继续每月为大家推出最新《中国数据库行业剖析报告》,继续流传数据技术常识、致力促成技术创新与行业生态倒退,目前已更至第十三期,并公布了共计122页的2022年度剖析报告。墨天轮5月《中国数据库行业剖析报告》已正式公布(点击即可跳转,欢送大家下载查阅),本期报告盘点了墨天轮“中国数据库风行度排行”、新品公布、产品投融资及中标等业内资讯,以此展示以后数据库市场倒退前沿动静。 本期报告重点聚焦时序数据库与实时数据库,详尽展现其技术原理、利用场景及发展趋势,并公布【寰球时序数据库产业图谱】与【寰球实时数据库产业图谱】,最初精选几款典型的时序数据库与实时数据库产品,介绍了其原理个性与劣势实际,以期为大家摸索技术倒退新趋势带来启发。 一、数据库排行榜及前沿动静 本章节目录 5月中国数据库风行度排名剖析2023年5月的墨天轮中国数据库风行度排行榜共262个数据库参加排名,榜单前十用一句话能够概括为:openGauss 立足翻新夺探花;华为云 GaussDB 云上之争成赢家;其余数据库自暴自弃居原位。在本月排行榜前三中,开源数据库 OTO 组合(OceanBase、TiDB 和 openGauss)重聚,openGauss 较上月晋升一名。此外华为云 GaussDB 排名回升至第六位。 本月排行榜十名之后,局部数据库厉兵秣马、奋发图强,获得了肯定的问题。诸如云和恩墨推出的企业级关系型数据库 MogDB 排名较上月回升3个位次至第13名;阿里云工夫序列数据库 Alibaba TSDB 本月排名较上月晋升7个位次;Apache Kylin 团队打造的下一代企业级智能多维数据库 Kyligence 本月排名跃升10个位次至第22名;拓数派推出的云原生数据库 PieCloudDB 本月排名急速回升46个位次至第41名等等。 数据库行业倒退动静报告整顿了近期业内较受关注的投融资、上市等资讯,如航天软件首次公开发行股票并在上交所科创板上市的申请顺利取得证监会注册批复,此前其预计将1.52亿元用于神通数据库系列产品研发降级建设项目;4月,四家向量数据库公司(Qdrant、Pinecone、Chroma 和 Weaviate)最近共取得10多亿融资。此外,还盘点了业界中标、新品公布及流动大会等热点动静,如 TDSQL、TiDB、GoldenDB 联结中标中国建行公布的《国产数据库-小机下移竞争局部》我的项目,中标金额共计3436万元;时序数据库 InfluxDB 公布3.0版本等。此处因篇幅所限仅截选局部内容,具体内容可查阅报告。 二、时序数据库的概述及解析 本章节目录 随着物联网、车联网和工业互联网的疾速倒退,时序数据库(Time Series Database) 再次走上时代的风头浪尖,受到业内极大的关注。时序数据库是一种专门用于存储和解决工夫序列数据的数据库系统,具备高效的工夫序列数据存储和查问能力,以反对大规模工夫序列数据的存储、剖析和可视化。 本期报告则具体介绍了时序数据库的原理、背景和相干技术要点及典型利用场景。尽管在过来2年里,时序数据库在DB-Engines官网中的风行度在所有模型中排名第二,这反映了市场对时序数据库的关注,但以后时序数据库面临着云、可视化、边缘计算等服务带来的挑战,报告则梳理了其七大技术挑战与三大将来发展趋势。受篇幅所限此处仅展现局部内容,具体内容可查阅报告。 据墨天轮最新统计,截止2023年5月,寰球时序数据库有54个。其中,墨天轮中国数据库风行度排名收录了36个时序数据库产品。本次报告整顿公布【寰球时序数据库产业图谱】,将之分为开源与商业数据库两类,并以中国和国外产品进行辨别。以下为图谱截图,下载报告可查看高清版。 三、实时数据库的倒退与将来 本章节目录 实时数据库(RTDB-Real Time DataBase) 技术是实时零碎和数据库技术相结合的产物,实用于解决不断更新的数据及具备工夫限度的事务处理,起初是基于先进管制和优化管制而呈现的,对数据的实时性要求比拟高,因此实时、高效、稳固是实时数据库要害的指标。 随着工业数字化转型一直进入外围业务深水区,我国工业企业进入了通过新型工业技术和数字化技术实现高质量和低碳化倒退指标的倒退新阶段,5G、云计算等新兴技术疾速倒退,传统实时数据库的利用零碎纷纷优化降级,我国实时数据库产业正在迎来重大倒退时机。经亿欧智库测算,中国实时数据库市场规模将于2025年达到269亿元,CAGR 为36.6%,处于成长期中前段。 报告第三章则对实时数据库的基本原理、关键技术与性能等 进行梳理,并介绍了其倒退历程,受篇幅所限此处仅展现局部内容,具体内容可查阅报告。 以后,实时数据库在电力、汽车制作、新能源发电以及石化等不同行业中都有着宽泛的利用,撑持企业大数据处理、实时监控和决策等方面需要场景。且随着市场规模的急速收缩和国产化代替之路的减速演进,国产时序数据库发展前景一片向好,报告则整顿了实时数据库的利用场景、倒退现状与技术发展趋势,此处仅作局部出现,具体内容可下载报告查阅。 最初,报告整顿公布了 【寰球实时序数据库产业图谱】,并整顿了实时数据库与关系型数据库、内存数据库以及时序数据库在概念、应用领域、开发目标、表构造以及数据恢复性能等方面有一些区别,望帮忙大家更深刻梳理把握。 四、中国数据库产品案例集报告最初一章则选取了几则典型的中国时序数据库与实时数据库产品作为案例,介绍其外围架构与性能、个性等。 首先是时序数据库产品中,展现了浙江智臾科技研发的高性能分布式时序数据库 DolphinDB,可能为海量结构化数据的疾速存储、检索、剖析及计算提供一站式解决方案;涛思数据推出的开源云原生时序数据库 TDengine,专为物联网、工业互联网、金融、IT 运维监控等场景设计并优化;以及浪潮推出的专门面向工业物联网、数字能源、车联网等行业场景的 AIoT 数据库产品 KaiwuDB ;云和恩墨在 openGauss 内核根底上开发的时序数据库 Uqbar 以及星环科技推出的 Transwarp TimeLyre 企业级分布式时序数据库。 此外筛选了4款实时数据库产品进行了展现,蕴含力控推出的企业级实时历史数据库 pSpace 、麦杰科技研发的实时数据库系统 openPlant® 以及浙江中控推出的 ESP-iSYS 实时数据库等。此处仅展现本章节中局部内容,大家能够下载报告获取更多内容。 本文仅对5月《中国数据库行业剖析报告》的局部内容进行了摘录、整顿,更多残缺、具体内容大家能够下载报告全文理解,也欢送各位数据行业同道交换、探讨、建言献策,咱们一起见证、独特助力中国数据库产业的发展壮大! 报告全文下载地址:https://www.modb.pro/doc/107365往期报告下载2022年4月-2023年3月中国数据库行业剖析报告合辑2022年中国数据库行业年度剖析报告更多精彩内容尽在墨天轮数据社区,围绕数据人的学习成长提供一站式的全面服务,继续促成数据畛域的常识流传和技术创新。增加社区墨天轮小助手(VX:modb666)可获取更多技术干货。

June 2, 2023 · 1 min · jiezi

关于数据库:冷知识|数据库-Shard-一词的起源

作者| Raph Koster原文|https://www.raphkoster.com/2009/01/08/database-sharding-came-... TL;DR:数据库词汇 Shard 来源于网游鼻祖 Ultima Online (网络创世纪) 。 「在初创企业的分片」是一篇对于数据库可扩展性的技术文章。引起了我的留神的是这个奇异的术语:分片 (sharding)。为什么要用这种形式形容数据库呢? 所以我理解了一些相干内容,分片指运行一堆并行数据库,并查找正确的那个,而不是试图将所有货色塞进一个。 我疾速谷歌了一下,该术语应该源自一名曾在 Friendster (社交网络) 和 Flickr (图片分享网站) 工作过的人,并且维基百科前不久才加上了相干条目)。在结尾文章的评论中有人提到了该术语在 2006 年被应用过。 Flickr 的本体是大型多人线上游戏 Game Neverending。其实,Ludicorp (Flickr 母公司) 的商业计划书中援用了我的话,并且 Stewart Butterfield (小编注:Flickr 联结创始人) 也问过我是否能够成为参谋,但我和 Sony 的合同没能承受他们邀请 。唉!不过,shard 这个词必定曾经在他们办公室里传开了……因为在大型多人线上游戏中,shards 具备十分特定的含意和历史。 它指在真实世界里数据库的分区。每个并行的世界都运行雷同的动态模板数据库源,但演变出不同的运行时数据库。但这些被称为「服务器」- 比方 3D 网友祖师爷 Meridian 59 就有很多服务器,它们用数字来标识,而不是现金风行的名称。 「分片」之所以产生,是因为当咱们意识到须要运行多个残缺 Ultima Online 正本供用户连贯时,咱们须要想出一个虚构故事。我去读了一堆晚期 Ultima 的货色,并试图想出一个虚构理由:邪恶巫师 Mondain 曾试图通过将其精髓困在水晶中来管制 Sosaria。当 UltimaI 第一部结尾处 Mondain 被战胜并且水晶被粉碎时,每个水晶分身 (shard) 都持有一部分 Sosaria 的折射复制品。 这个单词是顺便选中的,因为水晶是咱们假造的。如果 Mondain 在纸张或画作上捕获了 Sosaria,我会用「残片」或「碎片」,但在第一部中提到他应用了水晶来取得力量。咱们甚至在过后探讨了「多元宇宙」等术语,认为这些都是漫画迷的怪癖,不合乎 Ultima 的格调...所以就用了「分身」。 ...

June 2, 2023 · 1 min · jiezi

关于数据库:MySQL-三万字精华总结-面试100-问和面试官扯皮绰绰有余

MySQL 三万字精髓总结 + 面试100 问,和面试官扯皮入不敷出写在之前:不倡议那种上来就是各种面试题列举,而后背书式的去记忆,对技术的晋升帮忙很小,对正经面试也没什么帮忙,有点货色的面试官深挖下就懵逼了。 集体倡议把面试题看作是费曼学习法中的回顾、简化的环节,筹备面试的时候,跟着题目先本人讲给本人听,看看本人会称心吗,不称心就持续学习这个点,如此重复,好的offer离你不远的,奥利给 一、MySQL架构和其它数据库相比,MySQL 有点不同凡响,它的架构能够在多种不同场景中利用并施展良好作用。次要体现在存储引擎的架构上,插件式的存储引擎架构将查询处理和其它的零碎工作以及数据的存储提取相拆散。这种架构能够依据业务的需要和理论须要抉择适合的存储引擎。 连贯层:最上层是一些客户端和连贯服务。次要实现一些相似于连贯解决、受权认证、及相干的平安计划。在该层上引入了线程池的概念,为通过认证平安接入的客户端提供线程。同样在该层上能够实现基于SSL的平安链接。服务器也会为平安接入的每个客户端验证它所具备的操作权限。服务层:第二层服务层,次要实现大部分的外围服务性能, 包含查问解析、剖析、优化、缓存、以及所有的内置函数,所有跨存储引擎的性能也都在这一层实现,包含触发器、存储过程、视图等引擎层:第三层存储引擎层,存储引擎真正的负责了MySQL中数据的存储和提取,服务器通过API与存储引擎进行通信。不同的存储引擎具备的性能不同,这样咱们能够依据本人的理论须要进行选取存储层:第四层为数据存储层,次要是将数据存储在运行于该设施的文件系统之上,并实现与存储引擎的交互画出 MySQL 架构图,这种变态问题都能问的进去 MySQL 的查问流程具体是?or 一条SQL语句在MySQL中如何执行的? 客户端申请 ---> 连接器(验证用户身份,给予权限) ---> 查问缓存(存在缓存则间接返回,不存在则执行后续操作) ---> 分析器(对SQL进行词法剖析和语法分析操作) ---> 优化器(次要对执行的sql优化抉择最优的执行计划办法) ---> 执行器(执行时会先看用户是否有执行权限,有才去应用这个引擎提供的接口) ---> 去引擎层获取数据返回(如果开启查问缓存则会缓存查问后果) 说说MySQL有哪些存储引擎?都有哪些区别?二、存储引擎存储引擎是 MySQL 的组件,用于解决不同表类型的 SQL 操作。不同的存储引擎提供不同的存储机制、索引技巧、锁定程度等性能,应用不同的存储引擎,还能够取得特定的性能。 应用哪一种引擎能够灵便抉择,<mark>一个数据库中多个表能够应用不同引擎以满足各种性能和理论需要</mark>,应用适合的存储引擎,将会进步整个数据库的性能 。 MySQL服务器应用可插拔的存储引擎体系结构,能够从运行中的 MySQL 服务器加载或卸载存储引擎 。 查看存储引擎-- 查看反对的存储引擎SHOW ENGINES-- 查看默认存储引擎SHOW VARIABLES LIKE 'storage_engine'--查看具体某一个表所应用的存储引擎,这个默认存储引擎被批改了!show create table tablename--精确查看某个数据库中的某一表所应用的存储引擎show table status like 'tablename'show table status from database where name="tablename"设置存储引擎-- 建表时指定存储引擎。默认的就是INNODB,不须要设置CREATE TABLE t1 (i INT) ENGINE = INNODB;CREATE TABLE t2 (i INT) ENGINE = CSV;CREATE TABLE t3 (i INT) ENGINE = MEMORY;-- 批改存储引擎ALTER TABLE t ENGINE = InnoDB;-- 批改默认存储引擎,也能够在配置文件my.cnf中批改默认引擎SET default_storage_engine=NDBCLUSTER;默认状况下,每当 CREATE TABLE 或 ALTER TABLE 不能应用默认存储引擎时,都会生成一个正告。为了避免在所需的引擎不可用时呈现令人困惑的意外行为,能够启用 NO_ENGINE_SUBSTITUTION SQL 模式。如果所需的引擎不可用,则此设置将产生谬误而不是正告,并且不会创立或更改表 ...

June 2, 2023 · 9 min · jiezi

关于数据库:MySQL笔记十三之时间格式化dateformat

本文首发于公众号:Hunter后端 原文链接:MySQL笔记十三之工夫格式化date_format 这一篇笔记介绍如何对 MySQL 中的工夫字段进行格式化解决。 依据前一篇笔记的内容,当初咱们对 book 表增加一个工夫字段,created_time: alter table book add column created_time datetime default null;下面的语句咱们对 book 表增加了 created_time 字段,字段类型为 datetime,默认值为 null。 对于一个工夫字段,模式可能是 timestamp 工夫戳格局,也可能是 '年-月-日 时:分:秒' 格局。 如果咱们仅仅想查看年份、月份、或者工夫,就须要对字段的数据进行格式化解决,或者在 group by 分组的时候进行统计须要对工夫进行对立的解决。 MySQL 的工夫格式化函数有两种,一个是 date_format,一种是 time_format。 然而 time_format 只反对对时分秒的解决,对年月日的日期不失效,而 date_format 则适用性更广,年月日时分秒都可,所以咱们来介绍 date_format 的解决办法。 首先咱们插入两条数据: insert into book (book_name, author, created_time) values('mysql', 'mysql_author', '2022-05-04 14:23:15'), ('python', 'python_author', '2022-06-11 22:13:56');而后 MySQL 里对工夫的格式化的年月日时分秒的解决是 '%Y-%m-%d %H:%i:%s' 留神: 在分钟的解决上,和 Python 的解决是不一样的。 而后咱们如果要获取年份、年月日,小时的解决见下: select date_format(created_time, '%Y'), date_format(created_time, '%Y-%m-%d'), date_format(created_time, '%H') from book; 就能够看到相应的数据的输入: ...

June 1, 2023 · 1 min · jiezi

关于数据库:Apache-DolphinScheduler-发布-317-版本修复-SeaTunnel-任务保存错误

近日,Apache DolphinScheduler 公布了 3.1.7 版本。此版本次要基于 3.1.6 版本进行了 bug 修复,共计修复 7 个 bug, 优化 1 个 doc。 其中的较为重要的为: SeaTunnel 工作保留谬误 #14129工作故障转移时不利用 StartParams #13958修复子流程类型节点始终处于“筹备暂停”或“筹备进行”状态(#14170)全副 Changelog:https://github.com/apache/dolphinscheduler/releases/tag/3.1.7 下载地址:https://dolphinscheduler.apache.org/zh-cn/download/3.1.7 Bugfixfix: Save task SeaTunnel error #14129[fix-#13940] add status of stop in class of TaskExecutionStatus (#14016)Bug-13951 StartParams is not applied when task is failover(RECOVER_TOLERANCE_FAULT_PROCESS CommandType) #13958[fix-#14169]The subprocess type node is always in the ready pause or ready stop state (#14170)fix-11321 fix create workflow contains chunjun node failed (#11979)make status and schedule publish status display together (issue-12834) (#12922)fix the select component on the page of workflow relation (#13805)Doc 优化[Doc] Fix upgrade-schema.sh cannot load driver class (#14072)感激贡献者zhongjiajie ...

June 1, 2023 · 1 min · jiezi

关于数据库:Apache-DolphinScheduler-发布-317-版本修复-SeaTunnel-任务保存错误

近日,Apache DolphinScheduler 公布了 3.1.7 版本。此版本次要基于 3.1.6 版本进行了 bug 修复,共计修复 7 个 bug, 优化 1 个 doc。 其中的较为重要的为: SeaTunnel 工作保留谬误 #14129工作故障转移时不利用 StartParams #13958修复子流程类型节点始终处于“筹备暂停”或“筹备进行”状态(#14170)全副 Changelog:https://github.com/apache/dolphinscheduler/releases/tag/3.1.7 下载地址:https://dolphinscheduler.apache.org/zh-cn/download/3.1.7 Bugfixfix: Save task SeaTunnel error #14129[fix-#13940] add status of stop in class of TaskExecutionStatus (#14016)Bug-13951 StartParams is not applied when task is failover(RECOVER_TOLERANCE_FAULT_PROCESS CommandType) #13958[fix-#14169]The subprocess type node is always in the ready pause or ready stop state (#14170)fix-11321 fix create workflow contains chunjun node failed (#11979)make status and schedule publish status display together (issue-12834) (#12922)fix the select component on the page of workflow relation (#13805)Doc 优化[Doc] Fix upgrade-schema.sh cannot load driver class (#14072)感激贡献者zhongjiajie ...

June 1, 2023 · 1 min · jiezi

关于数据库:知乎运营分析平台-舰桥平台如何通过-Apache-Doris-实现查询速度-10-倍提升

导读:知乎为实现精细化经营,进步经营效率,依赖 Apache Doris 构建了外部对立的经营剖析平台——舰桥平台,次要利用于事实接入层、事实建模层和事实运算层等架构核心层的建设,并继续对导入、查问等方面进行性能调优,最终实现上千亿行数据分钟级导入,千亿级数据秒级查问响应。该平台以后曾经广泛应用于知乎不同事业部的社区、商广、教育&会员、技术中台等畛域,失去各局部宽泛认可。 作者|知乎舰桥平台 Leader 侯容 在长期的业务经营中,知乎团队发现在内容经营、创作者经营、热点经营等许多场景中,经营团队须要依赖 SQL 或自行编写 SQL 代码来对用户信息、业务数据进行查问剖析。这往往须要投入大量的精力,造成人力投入大、工作效率低等问题,无奈实现精细化经营,无奈高效实现业务指标。 为了解决上述问题,知乎舰桥平台应运而生。舰桥平台是知乎外部对立的经营剖析平台(即一站式内容&用户治理平台),次要利用于知乎的六大外围经营场景,包含找人、找内容、盯人、盯内容、找机会、查问题场景。该平台以后曾经广泛应用于知乎不同事业部的社区、商广、教育&会员、技术中台等畛域。 知乎舰桥平台的根底能力包含筛选、剖析、打包和监控,这些能力都不同水平地依赖 Apache Doris 提供的计算、存储和剖析能力。在本文中,咱们将次要介绍 Doris 在舰桥平台中的利用,以及在 Doris 的优化实际。 业务架构 如业务架构图所示,知乎舰桥是一个数据密集型的一个利用,架构共由五层组成,这里对较为重要的层级进行介绍: 数据层和事实层: 数据层次要由内容数据、用户数据和流量数据组成,思考到原始数据不具备可展现性和可描述性,因而咱们将原始数据形象出内容事实、用户事实和流量事实,并存储在事实层以供下层利用。根底能力层: 在根底能力层咱们搭建筛选、打包、剖析和监控四大根底能力。一般来说先依照业务要求筛选出指标用户数据,接着对这些用户进行下载并打包,打包后造成内容池、人群包或畛域(可别用于投放、举荐、Push、推送等场景);同时咱们提供了基于筛选、打包、全栈等的多维度面向剖析的能力,具体体现为榜单、散布、趋势、明细等;除此之外还提供了监控的能力,包含实时/定时监控、监控模板和监控合作。业务工具层: 咱们将根底能力层的四大根底能力搭建成不同的业务工具,别离为榜单&列表、业务剖析、异动发现和问题诊断,用于反对业务侧的不同口头。基于业务架构,咱们思思考应该通过一个怎么的技术架构能够低成本、高效率的实现咱们的需要,因而咱们先对技术架构进行了模块职责的划分,并心愿各模块可具备以下能力: 人机(UI )界面:以用户体验为核心,构建高效易用、简略易懂的 UI 界面,帮忙经营同学疾速了解并上手。合作能力:针对多场景、多部门的业务需要,构建对立齐备的合作平台,最大水平地升高业务交互老本。外围业务能力:须要将数据进行业务形象,确保所有需要都在已知的概念中被定义,方便使用、升高应用老本。事实运算:须要反对大规模数据的高效低提早简单运算,以满足各业务线的经营需要。事实建模:断绝接入层与业务层,进步迭代效率,以便更快地满足业务需要。事实接入层:反对海量数据导入,并可能实现大量数据疾速导入,同时反对麻利接入,低成本扩大,以适应业务的疾速倒退和变动。技术架构为了建设符合要求和指标的技术架构,咱们对多个大数据组件进行了调研选型,在调研中发现,Apache Doris 各方面能力都比拟优良,能够提供多种数据导入计划、领有便捷易用的建表能力、更灵便的的物化视图以及对向量化的全面反对,基于这些优异性能,最终咱们决定引入 Apache Doris 建设舰桥平台技术架构,并被次要利用在舰桥平台的三个核心层,即事实接入层、事实建模层和事实运算层。 事实接入层: 事实接入层采纳了 Segment 文件预处理技术和大规模导入技术,极大水平地减速数据从 HDFS 导入到 Doris 的速度,在此过程中,广泛应用了 Spark 技术,此外咱们还通过 Flink 间接将另一部分数据流式写入,数据流式写入有两个步骤:一部分通过 Flink Connector 间接写入的,另一部分先通过 Flink 实现 ETL 解决,再通过 Routine Load 实现写入。该层借助于 Doris 丰盛的 Load 协定,实现了多种数据的规模化疾速导入。事实建模层: 事实建模层咱们对业务进行了梳理和拆分,搭建了适合的业务模型,包含用户模型、内容模型、流量模型等等,同时还包含业务场景化的模型,例如主题模型和分层模型等等。因为 Doris 具备数据结构治理简略的个性,能够帮忙咱们疾速试错和优化数据模型,极大水平的晋升了数据模型迭代的效率。事实运算层: 事实运算层咱们采纳了数据和机器预绑定的技术,并利用了 Doris 的向量化技术和物化视图。此外,咱们还进行了大量的调优工作,例如,查问打算的调优、数据结构优化、算子合并技术等,从而实现性能的优化。在基于 Doris 的事实接入、事实建模和事实运算层的反对下,咱们高效地搭建了外围业务能力、人机界面和合作能力,最大水平地满足业务需要,充沛达成了业务架构提出的指标。因本文以介绍 Doris 的利用为主,其余层的将不做具体形容。 ...

June 1, 2023 · 3 min · jiezi

关于数据库:首个国人主导的数据集成项目-SeaTunnel-从-Apache-基金会正式毕业

北京工夫 2023 年 6 月 1 日,寰球最大的开源软件基金会 Apache Software Foundation(以下简称 ASF)正式发表 Apache SeaTunnel 毕业成为 Apache 顶级我的项目(TLP, Top Level Project)。这是首个由国人主导并奉献到 ASF 的大数据集成畛域的顶级我的项目,这一里程碑的达成标记着 SeaTunnel 在开源软件开发畛域的冲破,并为其在技术、社区单干和凋谢翻新方面的卓越体现取得了宽泛认可。Apache SeaTunnel 原名 Waterdrop,在 2021 年 10 月更名为 SeaTunnel 并申请加入 Apache孵化器。目前 Apache SeaTunnel 已公布 40+个版本,并在大量企业生产实践中应用,包含 J.P.Morgan、字节跳动、Stey、中国移动、富士康、腾讯云、国双、中科大数据研究院、360、Shoppe、Bilibili、新浪、搜狗、唯品会等企业,广泛应用于海量异构数据集成、CDC 数据同步,SaaS 数据集成以及多源数据处理等场景中。 2021 年 12 月 9 日, Apache SeaTunnel 以全票通过的优良体现正式成为 Apache 孵化器我的项目。之后在导师 Jean-Baptiste Onofré、Kevin Ratnasekera、Willem Ning Jiang、 Ted Liu、Guo William、Zhenxu Ke、Lidong Dai 的领导下,由孵化器治理委员会成员进行辅导和孵化。 2023 年 5 月 17 日,Apache 董事会通过 Apache SeaTunnel 毕业决定,完结了为期 18 个月的孵化,正式确定 Apache SeaTunnel 成为 Apache 顶级我的项目。 ...

June 1, 2023 · 7 min · jiezi

关于数据库:云原生数据库厂商拓数派加入龙蜥社区打造多样化的数据底座

近日,杭州拓数派科技倒退有限公司(以下简称“拓数派”,又称 “OpenPie”)正式签订 CLA 贡献者许可协定,退出龙蜥社区(OpenAnolis)。 拓数派是立足于国内根底数据计算畛域的高科技翻新驱动企业。作为国内该畛域比比皆是的 Day-1 准独角兽,致力于在数字原生时代,使用突破性计算实践、独创的云原生数据库旗舰产品以及之上的算法和数学模型,建设下一代云原生数据平台的前沿规范,驱动企业实现从“软件公司”到“数据公司”再到“数学公司”的继续进阶,减速数字化转型降级。 拓数派旗下旗舰产品 PieCloudDB,采纳当先的数仓虚拟化技术,买通多云的数据管道,数据计算资源按需扩缩容,晋升数仓的敏捷性和弹性,助力企业升高数仓治理复杂度。PieCloudDB 在实现数量级减少可计算数据空间的同时,数量级升高数仓老本,关上有限数据计算空间,推动 AI/BI 到下一个精度;在 eMPP 分布式专利技术、服务器无感知(Serverless) 及 TDE(通明数据加密)等多项核心技术加持下,为企业构建高平安,高牢靠,高在线「坚如磐石」的云原生虚构数仓,助力企业实现数据价值最大化,更好地赋能业务倒退并走向绿色,成为新一代 AI 数据计算基础设施的一个榜样。目前,PieCloudDB 在金融、医疗、汽车及制作等行业积攒了一批种子用户,产品备受业界及用户的高度关注及认可。拓数派 COO 陆公瑜示意:“ 拓数派始终持‘凋谢互信,单干共赢’的理念,踊跃打造丰盛的社区生态。将来,咱们将携手龙蜥社区,给用户带来数据库畛域最前沿的技术,满足用户多样化的数据分析需要,努力实现以‘数据计算’赋能百业,独特为客户发明价值!”龙蜥社区理事韩磊示意:“拓数派从成立至今倒退十分迅速,其产品 PieCloudDB 可能帮忙用户进步数仓的敏捷性和弹性,实现数量级数量级升高数仓老本。置信拓数派与龙蜥社区携手可能在数字时代助力更多企业进步数据价值,减速企业数字化转型降级。 截至目前,已有 300+ 家企业签订 CLA 协定退出龙蜥社区,包含平安厂商格尔软件、海泰方圆,数据库厂商南大通用、巨杉数据库,中间件厂商西方通、中创中间件、宝兰德等,欢送更多企业退出。 龙腾打算 2.0 可参看:首批招募 50 家!「龙腾社区生态倒退打算」正式公布 —— 完 —— 为给大家提供更好的内容和服务,龙蜥社区诚挚地邀请大家参加问卷调研,请扫描下方二维码或点此链接填写,咱们将筛选出优质反馈,送出龙蜥周边!

June 1, 2023 · 1 min · jiezi

关于数据库:OpenMLDB-v08-新功能离线引擎数据源支持-Amazon-S3

简介Amazon S3(以下简称 S3)是一种十分受欢迎的云存储服务,它以其卓越的扩展性、安全性和稳定性而广受寰球企业和开发者的青睐。在新公布的 OpenMLDB v0.8.0 版本中,新减少了对于 Amazon S3 作为离线数据源的反对,其带来的次要益处包含: 安全性和稳定性:S3 提供高级别的平安保障,以爱护您的数据。扩展性和灵活性:S3 可能轻松解决任意量级的数据,提供高效的大规模数据管理能力。老本效益:只需依据理论应用的存储量来付费,无需为未应用的存储空间付费。配置办法为了在 OpenMLDB 中应用 Amazon S3 作为离线数据源,须要做如下配置: 首先须要在 AWS 上注册帐号,并且创立无效的 AccessKey 和 SecretKey。在 OpenMLDB 的 TaskManager 的部署文件 taskmanager.properties 中,增加以下配置,留神批改内容为集体的 AccessKey 和 SecretKey:spark.default.conf=spark.hadoop.fs.s3a.access.key=xxx;spark.hadoop.fs.s3a.secret.key=xxx配置后重启 TaskManager 服务,后续加载离线数据时,无论是硬拷贝还是软链接都能够应用 S3 门路进行导入。以下“利用实际”展现具体应用步骤。残缺产品文档参考: https://openmldb.ai/docs/zh/main/integration/offline_data_sou... 。 利用实际以下具体演示应用 OpenMLDB 间接拜访 S3 数据进行特色抽取,并应用软链接形式防止从 S3 拷贝原始数据到本地。 第一步,注册 AWS 帐号,开明 S3 服务,并且申请可用的 AccessKey 和 SecretKey。 筹备好后,咱们能够应用浏览器或 S3 工具来上传数据到 S3 对应的 bucket 中,这里咱们提前上传好数据文件。 第二步,启动 OpenMLDB 集群,依照官网文档配置好 AWS 的 AccessKey 和 SecretKey,启动后能够应用命令行(OpenMLDB CLI)的命令 SHOW COMPONENTS 测试 OpenMLDB 所有组件是否失常。 ...

June 1, 2023 · 1 min · jiezi

关于数据库:好物分享|在-Mac-上启动本地数据库实例的免费工具

Bytebase 是一款帮忙 DBA 和开发者团队做数据库 CI/CD 的开发者工具,目前反对 MySQL,PostgreSQL,Redis 等十余种数据库,从开发到测试都须要部署多个不同品种的数据库实例,如果一一部署十分耗时耗力。 市面上有不少解决此类问题的小工具,团队里的同学也陆续举荐过几款 Mac 收费工具,明天来给大家分享一下。 DBnginDBngin 目前反对了 PostgreSQL,MySQL 和 Redis,它反对应用同一数据库的不同版本,也能够同时在多端口运行多个版本的数据库服务,很不便测试! DBngin 是开源的,看了一下组织,发现原来是 TablePlus(数据库 GUI 工具)团队做的,所以 DBngin 能够一键连上 TablePlus,可视化治理你的本地数据库了。 Postgres.appPostgres.app 如其名(和 logo)只反对 Postgres。 它其实是一个残缺的 PostgreSQL 安装包,把 Postgres 打包成了一个规范的 Mac app,如果不会用命令行也齐全没有问题,因为有个超级简略的 UI。 它也是开源的。 StackBricksStackBricks 反对了 MariaDB,MySQL,PostgreSQL 和 Redis,而且反对的版本十分多,也能够在多个端口启动多个本地数据库。 StackBricks 是三个工具中惟一不开源的(不过还是收费的),不过有个 Issue Tracker。 总结一下因为不是产研(是 Developer Marketing 的♀️),所以只有测试的时候好用,对于性能并没有太高的要求,所以对我来说高颜值 & 不便操作比拟重要 ヽ(´ー`)ノ 其实,之前我始终用 DBngin(先入为主),然而为了写好物举荐所以用了一下团队同学举荐的几个其余产品,如同 StackBricks 还挺好用,那就先用着试试看吧。 如果你也有举荐的好用工具,欢送留个 comment ❤️ 你能够拜访官网:https://www.bytebase.com/,收费注册云账号,立刻体验 Bytebase。

June 1, 2023 · 1 min · jiezi

关于数据库:MySQL笔记十二之重命名表添加表字段修改表字段属性

本文首发于公众号:Hunter后端 原文链接:MySQL笔记十二之重命名表、增加表字段、批改表字段属性 这一节介绍以下几种操作: 重命名表增加表字段批改字段属性重命名字段名删除字段1、重命名表假如要将表 book 批改为 book_new,根本语法如下: rename table book to book_new;2、增加表字段当初须要对 book_new 表增加一个字段名为 number,类型为 int 的字段,语句如下: ALTER TABLE book_new ADD COLUMN number INT;在下面的语句中,我把增加字段的语法的关键字都大写展现了。 咱们还能够在新增字段的时候指定一个默认值: ALTER TABLE book_new ADD COLUMN number INT DEFAULT 0;3、批改字段属性假如咱们当初须要对刚刚加的 number 字段从 INT 变成 FLOAT,能够如下操作: ALTER TABLE book_new MODIFY number FLOAT DEFAULT 0;4、重命名字段名当初须要对 book_new 这张表的 number 字段名称改为 number_float,语句如下: ALTER TABLE book_new CHANGE number number_float FLOAT;须要留神,批改名称也还是须要对字段的类型进行指定,加上 DEFAULT 操作也是能够的: ALTER TABLE book_new CHANGE number number_float FLOAT DEFAULT 1;5、删除字段假如当初咱们须要删除 book_new 表中的 number_float 字段: ...

May 31, 2023 · 1 min · jiezi

关于数据库:APP出海的现状与挑战

随着国内挪动互联网市场的饱和,越来越多的国内APP开发者和企业将眼光投向了海内市场,寻求新的增长机会。依据艾瑞征询的数据,2020年上半年,寰球APP下载量达到715亿次,用户总支出达到501亿美元,其中中国出海APP占据了重要的份额。然而,国内APP出海也面临着诸多挑战,海内网络环境、利用生态、数据安全标准、用户偏好等都不同于国内,要想出海,须要一一解决。本文将从国内APP出海的市场、赛道、厂商等方面进行剖析,探讨国内APP出海的现状与挑战。 市场剖析依据语言、经济水平、文化特色等方面综合划分,海内市场可分为T1、T2、T3三类市场。 T1,成熟市场,互联网基础设施欠缺,用户品质高,且付费志愿强,美欧日韩等发达国家和地区都属于这类。T1是毋庸置疑的黄金市场,无论变现还是品牌力都绝对成熟。与此同时T1市场的竞争也十分激烈,利用装置老本、推广营销、政策合规等挑战也是三个市场最大的,适宜对本人的产品能力有信念、心愿建设品牌影响力的开发者。T2,新兴市场,互联网基础设施疾速成熟中,市场增速显著,获客成本低,典型的有东南亚倒退较快的泰国、越南、印尼、新加坡等国家。同时,因为市场增长持重,网络环境绝对较好,付费能力和互联网渗透率也在上升期,T2市场也早已成为中国移动利用出海的“桥头堡与后花园”,在头部国家都已有大量中国互联网巨头和企业布局,且已开拓出许多细分赛道。因而,T2市场也更适宜具备差异化劣势的产品能够到此一搏。T3,后劲市场,互联网基础设施绝对个别,但人口基数宏大、互联网流量日益增长,为利用出海带来了广大的蓝海 ,比方拉丁美洲、非洲,以及东南亚一些经济绝对落后的发展中国家。互联网渗透率处于低位,人口红利显著,这也意味着将来会有较大的增长后劲,同时,竞争也没有T1\T2强烈,出海利用的下载量增速非常可观。因而,对于无论是首次尝试出海的新的开发者或者是打算开拓新市场的开发者,T3市场都不容错过。从中国出海APP在各个区域中所占据份额来看,T1市场中美国、日本和韩国是目前中国游戏企业出海的重要三大指标市场。这些APP市场外乡厂商竞争力强,用户付费能力强,进入门槛高,目前中国出海厂商占据份额较低,但增长率较高。在T2市场,东南亚是中国非游戏利用在海内市场下载量最高的区域,其中印尼、印度双印市场体现出了比拟显著的劣势。 而T3市场中,拉丁美洲、非洲以及中东北非等地区都有着微小的后劲,其中巴西、墨西哥等人口大国,均匀每日互联网应用时长均在8小时以上,超过寰球均值(7小时)。撒哈拉以南非洲的人口和经济也在持续增长,这些地区的互联网人口红利还有待开释。沙特、阿联酋、土耳其等中东及北非国家人均GDP绝对较高,互联网需要旺盛,且付费能力强。 赛道剖析从寰球APP下载量和用户收入来看,在2020年上半年受到新冠疫情影响下,在线媒体、游戏、教育等畛域实现了较大幅度的增长。其中游戏APP下载有285亿次(占总下载量40%),非游戏APP下载430亿次(占总下载量60%)。游戏APP收入有366亿美元(占总支出73%),非游戏APP收入总计约135亿美元(占总支出27%)。 各市场中国出海游戏热门品类次要包含角色扮演、策略、动作、棋牌、博彩和MOBA六大类。 基于天文、文化等劣势,中国的角色扮演游戏目前仍以邻近的日韩和东南亚市场为主, 日本市场因为外乡的强垄断性,中国和外乡产品竞争强烈,相比韩国市场劣势尚弱。 策略类的数量在各国差别不大,各国家对于中国的策略游戏接受度都比拟高。有数据显示策略类是目前中国游戏在寰球范畴内接受度最高的品类,即便在成熟的美国和日本市场凭借其弱小的用户基数和杰出的用户付费能力,已成为了中国策略游戏最成熟的两大海内市场。 而出海非游戏热门品类次要包含社交、视频、摄影、工具、教育等五大类。 社交类利用不受本地文化、宗教等影响,也不须要投入大规模的经营和推广的特色,使得其可能疾速关上市场,比方字节跳动的TikTok、欢聚时代的BIGO LIVE等社交利用都是以后“出海潮”的明星产品。 视频类利用次要包含短视频、直播和流媒体三个细分畛域,其中短视频和直播畛域因为内容创作和生产的低门槛,受到了寰球用户的欢送,比方字节跳动的TikTok、Likee、Vigo Video等短视频利用,在寰球多个市场问题亮眼。流媒体畛域则次要由Netflix、YouTube等国内巨头占据主导地位,中国出海利用在这一畛域的体现绝对较弱,但也有一些冲破,比方爱奇艺、WeTV等平台利用韩剧在东南亚市场极高的影响力,收费提供韩剧内容拉动了其增长。 厂商剖析在2020年上半年进入过各国iOS APP Store & Google Play Store TOP 200的中国非游戏APP数量显示,整体上,非游戏榜单中的中国产品数量低于游戏榜。相比游戏榜单,非游戏榜单也呈现出了比拟显著的区域差别。中国APP上榜数量较多的国家根本为新兴市场国家,其中印尼、印度双印市场体现出了比拟显著的劣势。相较之下,在成熟市场如美国、韩国和日本,中国APP上榜数量较少。 在2020年上半年根本出现字节跳动、欢聚时代为主、BAT为辅辐射寰球,专一垂直畛域的中小型厂商在主打的指标市场大放异彩的场面。字节跳动旗下TikTok在寰球的霸主位置毋庸置疑, 摄影产品Ulike在韩国摄影应用领域位居前列,社交产品Helo在印度市场拥趸万千。 2020年上半年,字节跳动无悬念成为中国非游戏利用在海内市场下载量最高的公司,同时, 仅次于Google和Facebook 跻身寰球利用下载量前三甲公司。 总结与倡议综上所述,国内APP出海是一个充斥时机和挑战的过程,须要开发者和企业依据不同的市场、赛道、用户等因素进行精准的定位和策略。在此,咱们提出以下几点倡议: 抉择适合的指标市场。依据本身的产品特点和劣势,抉择与之匹配的市场进行出海,防止自觉跟风或一哄而上。同时,要充沛理解指标市场的网络环境、用户需要、竞争格局、法律标准等方面的信息,做好市场调研和剖析。做好本地化经营。依据指标市场的文化、语言、习惯等特色,对产品进行本地化的优化和改良,进步用户的认同感和黏性。同时,要利用当地的渠道和平台进行无效的推广和营销,进步品牌知名度和影响力。重视技术创新和产品质量。在竞争日益强烈的海内市场,要想怀才不遇,就必须有技术创新和产品质量的保障。要一直跟进海内市场的技术倒退和用户需要变动,对产品进行继续的更新和优化,提供更好的用户体验和价值。防备危险和危机。在出海过程中,要时刻关注海内市场的政治、经济、社会等方面的变动,预防和应答可能呈现的危险和危机。要恪守当地的法律法规,爱护用户的数据安全和隐衷权力,保护本身的合法权益。

May 31, 2023 · 1 min · jiezi

关于数据库:Apache-DolphinScheduler-306-发布或将是最后一个-30X-版本

Apache DolphinScheduler 于近日公布了 3.0.6 版本,次要针对 3.0.5 重要 bug 进行修复。如果之后没有发现重大问题,3.0.6 将会是 3.0.x 最初一个版本。 Bug修复Master 从新连贯 zk 后 slot 没有失常更新 #14014父工作流失败时 subprocess 没有失常完结 #14087下载地址:https://dolphinscheduler.apache.org/zh-cn/download/3.0.6 Release Note:https://github.com/apache/dolphinscheduler/releases/tag/3.0.6 致谢贡献者Radeity、fuchanghai 参加奉献随着国内开源的迅猛崛起,Apache DolphinScheduler 社区迎来蓬勃发展,为了做更好用、易用的调度,真挚欢送酷爱开源的搭档退出到开源社区中来,为中国开源崛起献上一份本人的力量,让外乡开源走向寰球。 参加 DolphinScheduler 社区,奉献第一个PR(文档、代码) 咱们也心愿是简略的,第一个PR用于相熟提交的流程和社区合作以及感触社区的友好度。 社区汇总了以下适宜老手的问题列表:https://github.com/apache/dolphinscheduler/issues/5689非老手问题列表:https://github.com/apache/dolphinscheduler/issues?q=is%3Aopen+is%3Aissue+label%3A%22volunteer+wanted%22如何参加奉献链接:https://dolphinscheduler.apache.org/zh-cn/community/developme...来吧,DolphinScheduler开源社区须要您的参加,为中国开源崛起添砖加瓦吧,哪怕只是小小的一块瓦,汇聚起来的力量也是微小的。 参加开源能够近距离与各路高手切磋,迅速晋升本人的技能,如果您想参加奉献,咱们有个贡献者种子孵化群,能够增加社区小助手微信(Leonard-ds) ,手把手教会您( 贡献者不分程度高下,有问必答,要害是有一颗违心奉献的心 )。 增加社区小助手微信(Leonard-ds) 增加小助手微信时请阐明想参加奉献。 来吧,开源社区十分期待您的参加。 本文由 白鲸开源科技 提供公布反对!

May 31, 2023 · 1 min · jiezi

关于数据库:火山引擎-DataLeap如何构建一套完整易用的数据标准体系

数据规范是数据治理体系中的外围因素之一。 一方面,对立的数据规范能够在简单的业务场景下,帮忙团队对齐数据口径,晋升数据在剖析、诊断等场景的品质与效率;另一方面,数仓团队与分析师团队也须要积淀一套麻利、可控的数据规范指标治理流程,以便后续在指标口径的减少、批改、下线等方向更规范、高效。 但数据规范建设并不是一个简略的过程。在同一个企业外部,也存在对规范认知不统一的问题。以银行业举例,对于 “客户” 的定义,客户部认为 “办了银行的卡的人即为客户”,而网银部则认为 “银行网站注册过、或者通过银行转账的人都属于客户”,这即是对同一个概念存在认知偏差。 另外,在理论数据开发过程中,也存在开发人员对同一个字段采纳不同的命名,或者存在同义不同名的元数据字段,导致沟通成本增加,甚至最终影响数据品质。 近期,火山引擎大数据治理研发套件 DataLeap 上线的「数据规范」模块瞄准这一问题,心愿为数据从业提供一套数据规范的治理能力。据介绍,该模块已提供数据规范、规范代码、命名词典治理的性能,还反对对各类数据源的库表进行扫描,并进行智能举荐对标。对于企业整体的数据规范状况,DataLeap 则提供可视化的统计大盘,帮忙数据团队疾速理解规范的新建状况和应用状况。火山引擎 DataLeap 数据规范产品页面  用户仅仅只须要操作 3 个关键步骤,即可实现数据规范对立: 规范建设:通过在规范域治理事后定义好字段类型配置,实现版本资产映射治理,反对批量导入,实现数据规范代码对立、命名词典批量导出。规范治理:查看版本历史,帮忙用户订阅规范并查看变更日志记录。规范映射:可将数据规范与多种数据源字段倡议映射,可查看数据规范评估后果,或依据映射通过状况纠正。 在应用场景上,用户基于 DataLeap 实现对立数据规范建设,打消数据不一致性,推动数仓标准数据建设,还能够与指标服务买通,对接数据地图资产,进一步达到数据治理的目标。除了数据规范治理之外,火山引擎 DataLeap 还提供数据集成、开发、运维、治理、资产、平安等能力,帮忙用户晋升数据研发效率、升高治理老本,减速推动企业的数字化转型,目前曾经利用于泛互联网、制作、新批发、汽车等畛域。 立刻跳转火山引擎 DataLeap 官网理解更多

May 31, 2023 · 1 min · jiezi

关于数据库:哪个更快全表扫描还是建立索引

最近在 HN 上看到一个帖子:全表扫描优于建索引的状况,看了一下作者原文 ,还挺乏味的,分享给大家。 有时为了不便疾速搜寻大量数据,一种办法是建设索引进行预处理,这样搜寻只须要查看一小部分数据。然而,值得建设索引的门槛可能比你设想的要高。以下是我经验过的全表扫描反而更好的案例: 十年前我为一个小型计费服务编写了一个外部通信应用程序。音讯存储在 MySQL 中,如果全表搜寻变慢或者遇到负载问题的时候,我就会增加索引;但即便有 10 年的音讯须要搜寻,在没有装置和保护 Sphinx(过后MySQL 还不反对 InnoDB FULLTEXT 索引,v5.6 之后才加上)状况下它还是能放弃响应。我最近发现有人保护了一个 0.5GB 的全文索引来搜寻他 shell 历史记录中 100k 个命令。我在立体文件上用 grep,测试了一下,当初查问我 180k 历史条目须要 200ms。我的 contra 舞蹈搜寻工具 依据查问对每个舞蹈进行排名,并且没有天文空间索引,因为其实只有 ~350 个舞蹈。我最近工作的时候会用一个病毒计数浏览器 来实时检索人类病毒分类树,用 JS 的 includes 命令扫描约 15k 名称简直就跟你打字速度一样快。我在广告业 (小编注:作者曾在 Google Ads 下班) 工作时,我常常须要应用生产日志来调试问题,并应用 Dremel (Melnik 2010, Melnik 2020) 分布式扫描大量数据,速度十分快。因为查问绝对较少,所以保护索引的老本要高得多。除非你从一开始就晓得会搜寻数亿条记录,否则请思考从简略扫描开始,并仅在性能难以承受时增加索引。即便这样,在查问较少且变动较大的状况下,在摄入工夫而不是查问工夫方面做些改良可能成果更好。 你能够拜访官网:https://www.bytebase.com/,收费注册云账号,立刻体验 Bytebase。

May 31, 2023 · 1 min · jiezi

关于数据库:DMS的数据库克隆原理是什么会影响源端的性能吗

数据管理DMS的数据库克隆性能反对将源数据库的表构造和表数据复制至指标数据库中,实现全副表或局部表备份,实用多环境数据库初始化,例如将开发环境复制到测试环境。 前提条件 数据库类型为MySQL。 数据库实例的管控模式为自在操作。更多信息,请参见管控模式。 在数据库中呈现克隆性能,次要是为了满足目前云原生的技术利用场景,同时也是为了海量数据备份而诞生的; 在数据库中实现克隆性能利用有两种形式: 本地克隆(Local Cloning): 启动克隆操作的mysql数据库服务器实例中的数据,将会克隆到同服务器或同节点上的一个目录里; 近程克隆(Remote Cloning): 残缺内容请点击下方链接查看: https://developer.aliyun.com/ask/505766?utm_content=g_1000372999 版权申明:本文内容由阿里云实名注册用户自发奉献,版权归原作者所有,阿里云开发者社区不领有其著作权,亦不承当相应法律责任。具体规定请查看《阿里云开发者社区用户服务协定》和《阿里云开发者社区知识产权爱护指引》。如果您发现本社区中有涉嫌剽窃的内容,填写侵权投诉表单进行举报,一经查实,本社区将立即删除涉嫌侵权内容。

May 31, 2023 · 1 min · jiezi

关于数据库:MySQL笔记十一之update更新和delete更新操作

本文首发于公众号:Hunter后端 原文链接:MySQL笔记十一之update更新和delete更新操作 这一篇笔记介绍表的更新和删除操作: UPDATE 和 DELETE。 在介绍之前,阐明一点:慎用!慎用!!慎用!!! 肯定要对这两个语法慎用,肯定要加上限度条件,除非是须要更新或者删除全表的数据。 我的做法个别是在 UPDATE 或者 DELETE 前先把条件放到 SELECT 前面查一遍数据,发现返回的数据是咱们的指标数据,而后再把 WHERE后的条件放到 UPDATE 和 DELETE后进行操作。 1、UPDATEUPDATE 是更新操作,能够更新一行或多行满足条件的某个字段或多个字段的值,应用 WHERE 关键词限定范畴 更新某个字段 语法模板是: update 表名 set 字段名=值 WHERE id = 1;比方咱们想要更新 id = 2 的数据,将 book_name 的值改为 Python: update book set book_name = 'Python' where id = 2;更新多个字段 如果同时更新多个字段的值,语法如下: update 表名 set 字段1=值1, 字段2=值2 where id = 1;比方 book_name 和 author 两个字段的值: update book set book_name = 'Python', author = 'Python_author' where id = 1;留神: 如果 update 语句不增加 WHERE 条件限度,更新的是全表。 ...

May 30, 2023 · 1 min · jiezi

关于数据库:商业地产研策如何搜集数据

商业地产研策横跨多个畛域,是一份综合性极强的工作,要求高,难度大,从业者需具备市场洞察力、数据分析能力、逻辑思维能力、沟通协调能力等等质素,在具体工作上需参加地产我的项目的简直所有方面的钻研、策动。 在商业地产研策的过程中,须要收集和剖析大量数据,包含宏观经济数据、人口构造数据、消费水平数据、商业格局数据、竞争对手数据、土地老本数据、建设老本数据、经营老本数据、租金程度数据、销售价格数据等。那么,从业者该如何收集这些数据呢?本文将介绍一些办法: 数据起源次要有以下几种: 国家或中央政府公布的统计数据或报告:具备权威性,全面反映了城市区域的宏观经济、人口构造、消费水平等状况。每年国家统计局会公布《中国统计年鉴》、《中国城市统计年鉴》。行业公布的标准规范:须要关注的规范性条例,包含各类建设工程或经营费用的基准或范畴。如住房和城乡建设部公布的《建设工程造价治理方法》、《物业管理服务免费规范》等。业余机构公布的钻研报告:这类数据针对性强,动静灵便地反映了各类商业物业租金程度、销售价格、回报率这类市场行情。像中国房地产协会公布的《中国房地产市场倒退报告》、《中国房地产指数零碎》等。现场走访和问卷调查:我的项目所在区域的各类商业设施和竞争对手的数量、规模、地位、类型等特色,都须要亲力亲为地去走访调查,以及消费者对于我的项目产品或服务质量、满意度、忠诚度等意见和倡议更要严肃认真看待。如何收集分为以下几个步骤: 确定数据需要:依据研策目标和内容,确定须要收集的数据类型和指标,制订相应的收集打算和办法。收集已有数据:涵盖网络搜寻、图书馆查阅、专家征询等,收集官网报告、行业标准、业余机构的数据等,初步整顿和筛选。寻找新的数据:现场走访、问卷调查,收集竞争对手的信息和消费者对于我的项目产品的意见。验证和补充数据:从其余起源的流动数据,验证已有数据和新生成数据的准确性,依据理论状况进行补充欠缺。剖析数据有以下几个步骤: 整合演绎:依据研策内容,将收集到的各类数据进行分类和汇总,提取出要害信息和重要指标。形容解释:依据钻研办法和工具,将整合后的数据进行形容和解释,形容数据之间的关系和法则。预测评估:依据钻研办法和工具,将形容后的数据进行预测和评估,展现将来发展趋势和可能影响因素。造成论断:依据剖析后的数据,造成论断和倡议,提出相应的计划。

May 30, 2023 · 1 min · jiezi

关于数据库:Bytebase-VS-Archery

产品功能定位Archery:以 DBA 为核心的数据库管理工具,性能偏重SQL 审核与简略的查问客户端,用户群更偏差 DBA。Bytebase:以 DevOps 理念打造,面向开发者与 DBA 的一站式数据库变更合作平台,同时强调管控与效率,除了面向 DBA 的管控能力外,提供了较多面向研发团队的提效性能,尤其有弱小的 SQL 变更版本治理与变更公布能力,并实现了与上下游研发工具预集成。 产品状态Archery:提供了基于 Web 的图形化界面与 API,并集成了多种开源工具提供相干能力。Bytebase:提供了基于 Web 的图形化界面,同时提供 API 接口、Terraform provider、命令行等多种模式应答不同研发治理流程。 次要性能比照变更审核 变更公布 查问与优化 实例治理 平安与治理 体验与反对 局部性能具体比照变更流程展现Archery只有最简略的单库单环境变更流。Bytebase工单驱动的变更公布。多环境的流水公布。 变更后果剖析Archery不提供后果剖析,只有工单的执行日志。Bytebase图形化查看变更历史。清晰的可视化差别比照,同时能够查看变更后的残缺表构造。 SQL 审核Archery只能提醒违反的标准,无奈提醒谬误所在行。Bytebase能够在GitLab/GitHub 提交代码时开发者进行 SQL 预审核。执行前的实时审核。能够提醒谬误所在行。 审核标准配置Archery只能通过参数配置文件批改。Bytebase可视化配置,反对多种数据库,可抉择可过滤,同时可保留为模板用于不同环境不同数据库。 总结Bytebase 和 Archery 都提供了数据库版本控制和变更的能力,但两者在产品定位,产品状态,治理性能和应用办法上等方面都有较大的差别,上文对这两个工具进行了多维度比拟。 另附上: Bytebase VS FlywayBytebase VS Liquibase 你能够拜访官网:https://www.bytebase.com/,收费注册云账号,立刻体验 Bytebase。

May 30, 2023 · 1 min · jiezi

关于数据库:ByConity与主流开源OLAP引擎ClickhouseDorisPresto性能对比分析

引言:随着数据量和数据复杂性的一直减少,越来越多的企业开始应用OLAP(联机剖析解决)引擎来解决大规模数据并提供即时剖析后果。在抉择OLAP引擎时,性能是一个十分重要的因素。 因而,本文将应用TPC-DS基准测试的99个查问语句来比照开源的ClickHouse、Doris、Presto以及ByConity这4个OLAP引擎的性能体现,以便为企业抉择适合的OLAP引擎提供参考。 TPC-DS基准测试简介TPC-DS(Transaction Processing Performance Council Decision Support Benchmark)是一个面向决策支持系统(Decision Support System,简称DSS)的基准测试,该工具是由TPC组织开发,它模仿了多维分析和决策反对场景,并提供了99个查问语句,用于评估数据库系统在简单的多维分析场景下的性能。每个查问都设计用于模仿简单的决策反对场景,包含跨多个表的连贯、聚合和分组、子查问等高级SQL技术。 OLAP引擎介绍ClickHouse、Doris、Presto和ByConity都是以后比拟风行的开源OLAP引擎,它们都具备高性能和可扩展性的特点。 ClickHouse是由俄罗斯搜索引擎公司Yandex开发的一个列式数据库管理系统,它专一于大规模数据的疾速查问和剖析。Doris是一个分布式列式存储和剖析零碎,它反对实时查问和剖析,并能够与Hadoop、Spark和Flink等大数据技术进行集成。Presto是一个分布式SQL查问引擎,它由Facebook开发,能够在大规模数据集上进行疾速查问和剖析。ByConity是由字节开源的云原生数仓,采纳了存储计算拆散的架构,实现租户资源隔离、弹性扩缩容,并具备数据读写的强一致性等个性,它反对支流的OLAP引擎优化技术,读写性能十分优异。本文将应用这四个OLAP引擎对TPC-DS基准测试的99个查问语句进行性能测试,并比照它们在不同类型的查问中的性能差别。 测试环境和办法: 服务器配置: Architecture: x86_64CPU op-mode(s): 32-bit, 64-bitByte Order: Little EndianCPU(s): 48On-line CPU(s) list: 0-47Thread(s) per core: 2Core(s) per socket: 12Socket(s): 2NUMA node(s): 2Vendor ID: GenuineIntelCPU family: 6Model: 79Model name: Intel(R) Xeon(R) CPU E5-2650 v4 @ 2.20GHzStepping: 1CPU MHz: 2494.435CPU max MHz: 2900.0000CPU min MHz: 1200.0000BogoMIPS: 4389.83Virtualization: VT-xL1d cache: 32KL1i cache: 32KL2 cache: 256KL3 cache: 30720KNUMA node0 CPU(s): 0-11,24-35NUMA node1 CPU(s): 12-23,36-47测试方法: ...

May 30, 2023 · 1 min · jiezi

关于数据库:用一杯星巴克的钱训练自己私有化的ChatGPT

文章摘要:用一杯星巴克的钱,本人入手2小时的工夫,就能够领有本人训练的开源大模型,并能够依据不同的训练数据方向增强各种不同的技能,医疗、编程、炒股、恋爱,让你的大模型更“懂”你…..来吧,一起尝试下开源DolphinScheduler加持训练的开源大模型!导读让人人都领有本人的ChatGPTChatGPT的诞生无疑让咱们为人工智能的将来充斥期待,它以其精密的表白和弱小的语言理解能力,震撼了寰球。然而在应用ChatGPT的时候,因为它是SaaS,所以个人隐私泄露,企业数据安全问题是每一个人、每一个企业都放心的问题。而当初越来越多的开源大模型呈现,让集体/企业领有本人的大模型成为可能,然而,开源大模型上手、优化、应用要求门槛都比拟高,很难让大家简略的应用起来。为此,咱们借助Apache DolphinScheduler,一键式地反对了开源大模型训练、调优和部署,让大家能够在极低的老本和技术储备下,用本人的数据训练出专属于本人的大模型。当然,开源大模型的功力间隔ChatGPT还有间隔,然而通过测试咱们看到7、8成的功力还是有的,而且这是能够依据你的场景和畛域常识非凡训练过的,针对性更强。同时,咱们深信未来随着技术倒退,开源大模型的能力会越来越强,让用户体验越来越好。来吧,咱们筹备开始。 面向人群——每一个屏幕背后的你咱们的指标是,不仅业余的AI工程师,更是任何对GPT有需要和趣味的人,都能享受到领有更“懂”本人的模型的乐趣。咱们置信,每一个人都有权力和能力去塑造本人的AI助手,而Apache DolphinScheduler可见即所得的工作流程为此提供了可能。顺带介绍下Apache DolphinScheduler,这是一个Star超过1万个的大数据和AI的调度工具,它是Apache开源基金会旗下的顶级我的项目,这意味着你能够收费应用它,也能够间接批改代码而不必放心任何商业问题。 无论你是业界专家,寻求用专属于你的数据来训练模型,还是AI爱好者,想尝试了解并摸索深度学习模型的训练,咱们上面的这个工作流程都将为你提供便捷的服务。它为你解决了简单的预处理、模型训练、优化等步骤,只需1-2个小时几个简略的操作,加上20小时的运行工夫,就能够构建出更“懂”你的ChatGPT大模型: https://weixin.qq.com/sph/AHo43o 那么,咱们一起开启这个神奇的旅程吧!让咱们把AI的将来带到每一个人的手中。 仅用三步,结构出更“懂”你的ChatGPT用低成本租用一个领有3090级别以上的GPU显卡启动DolphinScheduler在DolphinScheduler页面点击训练工作流和部署工作流,间接体验本人的ChatGPT吧1. 筹备一台3090显卡的主机首先须要一个3090的显卡,如果你本人有台式机能够间接应用,如果没有,网上也有很多租用GPU的主机,这里咱们以应用AutoDL为例来申请,关上 https://www.autodl.com/home,注册登录,后能够在算力市场抉择对应的服务器,依据屏幕中的1,2,3步骤来申请: 这里,倡议抉择性价比较高的RTX3090,通过测试反对1-2集体在线应用3090就能够了。如果想训练速度和响应速度更快,能够抉择更强的显卡,训练一次大概须要20小时左右,应用测试大略2-3个小时,估算40元就能够搞定了。 镜像点击社区镜像,而后在上面红框出输出 WhaleOps/dolphinscheduler-llm/dolphinscheduler-llm-0521 之后,即可抉择镜像,如下如所示,目前只有V1版本的,前面随着版本更新,有最新能够抉择最新 如果须要屡次训练模型,倡议硬盘扩容一下,倡议100G即可。 创立后,期待下图所示的进度条创立实现即可。 2. 启动DolphinScheduler为了能够在界面上部署调试本人的开源大模型,须要启动DolphinScheduler这个软件,咱们要做以下配置工作: 进入服务器进入服务器的形式有两种,能够依照本人的习惯进行: 通过JupyterLab页面登录(不懂代码的请进)点击如下JupyterLab按钮 页面跳转到JupyterLab,后能够点击这里的终端进入 通过终端登录(懂代码的请进)咱们能够从下图这个按钮获取SSH连贯命令 并通过终端链接 导入DolphinScheduler的元数据在DolphinScheduler中,所有的元数据都存储在数据库中,包含工作流的定义,环境配置,租户等信息。为了不便大家在应用时可能启动DolphinScheduler时候就可能看到这些工作流,咱们能够间接导入曾经做好的工作流定义数据,照屏幕copy进去。 批改导入MySQL的数据的脚本 通过终端如下命令,进入到以下目录 cd apache-dolphinscheduler-3.1.5-bin敲击命令,vim import_ds_metadata.sh 关上 import_ds_metadata.sh 文件 文件内容如下 #!/bin/bash# 设置变量# 主机名HOST="xxx.xxx.xxx.x"# 用户名USERNAME="root"# 明码PASSWORD="xxxx"# 端口PORT=3306# 导入到的数据库名DATABASE="ds315_llm_test"# SQL 文件名SQL_FILE="ds315_llm.sql"mysql -h $HOST -P $PORT -u $USERNAME -p$PASSWORD -e "CREATE DATABASE $DATABASE;"mysql -h $HOST -P $PORT -u $USERNAME -p$PASSWORD $DATABASE < $SQL_FILE把 xxx.xxx.xxx.x 和 xxxx 批改成你公网上一个mysql的一个数据库的数据(能够本人在阿里云、腾讯云申请或者本人装置一个),而后执行 ...

May 30, 2023 · 1 min · jiezi

关于数据库:如何将千亿文件放进一个文件系统EuroSys23-CFS-论文背后的故事

导读  这是一个技术创新的故事。 在事实业务的压力和技术现实的感召下,带着含糊的地图,百度桑田·存储 CFS 和 TafDB 两个技术团队启程进入无人区,寻找解开「千亿文件的状况下,文件存储系统仍然放弃高性能」难题的钥匙。 新架构小试牛刀后带来的惊喜还未继续多久,便被横贯在背后的平地给阻挡,退回到终点还是持续向前行…… 如本文作者所言,对论文背地的故事进行讲述,是为了可能帮忙读者更好地了解这个翻新后果自身,亦能为正在处于翻新过程的读者提供参考,愿大家早日找到那把钥匙。 全文18851字,预计浏览工夫22分钟。 一、引言本文的次要目标是解读百度桑田·存储团队发表于 EuroSys 2023 的论文《CFS: Scaling Metadata Service for Distributed File System via Pruned Scope of Critical Sections》,论文全文能够在 https://dl.acm.org/doi/10.1145/3552326.3587443 下载。 论文披露了百度智能云文件存储 CFS 的元数据系统的外围设计,对⻓期困扰文件系统元数据畛域的 POSIX 兼容性和高扩展性(特地是写扩展性)难以兼顾的问题进行了解答。这是一个大规模分布式文件系统是否扩大到百亿甚至千亿级别文件数,同时放弃高性能稳定性的一个关键问题。 作为一种高度凝练的体裁,论文除了展现必要的剖析过程,并不会告知读者这些翻新是如何被想到的。咱们认为讲清楚这次翻新的整个过程,既有助于了解论文自身,也是对论文内容的重要补充。基于这个思考,咱们将整篇文章依照以下构造组织内容: 首先,咱们概括介绍了文件系统元数据问题产生的背景和业界对该问题的摸索,并特地对本文着重解决的写扩展性问题进行了定量分析;而后,咱们通过介绍 CFS 元数据架构的演进历史,向读者展现了咱们摸索的过程以及对元数据问题实质的思考,最终引出论文里介绍的零碎架构;最初,咱们具体介绍了论文架构的整体设计和其中要害的细节。二、背景2.1 文件系统的概念文件系统的定义是一种采纳树形构造存储和组织计算机数据的办法,这个树形构造通常被称为层级命名空间(Hierarchical Namespace)。如下图所示,这种命名空间的特点是整个构造像一棵倒挂的树,非叶子结点只能是目录。如果不思考软链接追随(follow symlinks)、硬链接(hardlink)的状况,从根节点(/)登程,每一个目录项(目录、文件、 软链接等非法类型)都能够由一条惟一的门路达到。 文件系统能够分为元数据(Metadata)和数据(Data)两个局部。数据局部指的是一个文件具体存储了哪些内容,元数据局部是指层级命名空间树形构造自身。例如,如果咱们要读取 /a/b/file 这个文件的数据,元数据局部负责找到 /a/b/file 这个文件存储在哪儿,数据局部则负责把文件的内容读出来。 文件系统次要有两种 POSIX 和 HDFS 两种实现⻛格: POSIX:全称 Portable Operating System Interface,是 IEEE 制订的 UNIX 可移植操作系统兼容规范。该规范定义了一个文件系统相干的接口子集,是文件系统畛域最根底和权威的规范。POSIX 兼容文件系统就是指兼容该规范的文件系统;HDFS:源自 Hadoop 大数据生态,对 POSIX 规范做了一些比拟实用的简化和批改,次要是放弃了对 hardlink、随机写的反对,并减少了一些实用的递归操作。通常也将其归类为 POSIX-like 文件系统,意思是和 POSIX 类似。POSIX 和 HDFS ⻛格的文件系统不存在显著的分界线,在实现技术上是互通的,理论应用时通过简略的接口转换也能够互现替换,当然这种转换会以就义肯定的兼容性为前提。论文形容的零碎是 POSIX ⻛格的,但研究成果同样实用于 HDFS ⻛格的零碎,甚至文章里用于比照的 HopsFS 和 InifiniFS 均是 HDFS ⻛格的零碎。 ...

May 30, 2023 · 6 min · jiezi

关于数据库:Star-History-月度开源精选|2023-年-4-月

四月仍旧是人工智能的!在 AICG 浪潮的拍打中,咱们还是发现了一些乏味的且与 ChatGPT / LLM / AI / ML 不间接相干的我的项目,这就来理解一下。 Azimutt Azimutt 是一个针对事实世界数据库 schema(大而乱)的 ERD 工具。 现有的数据库表工具的问题是: 传统的 ERD 总是显示所有的货色,有超过 50 个表的时候,它们就没用了。数据目录(Data Catalog)次要是为了治理而记录数据,而不是为了理解关系型数据库。Azimutt 最后建设是旨在帮忙开发者更容易了解应用程序背地的关系型数据库,不过当初曾经倒退到能够设计、摸索、记录和剖析数据库了。 Ballerine Ballerine 是一家初创公司开源的用户危险决策基础设施,帮忙银行、Fintech 这种金融机构自动化客户和企业账户开明时的 KYC/KYB 决策。这周二刚发表了 500 万美元的种子轮融资。 比方金融机构必定心愿以最小的老本 onboard 新客户,但它也必须在速度和对相干法规的职责之间找到均衡,确保没有欺诈行为。Ballerine 就是来帮忙他们顺利完成这项工作的。 他们去年在 HN 的 debut 也是大获胜利,尽管上 HN 首页有肯定随机性然而「论题目的重要性」。 Linen Linen 是个搜索引擎敌对的社区聊天工具,能够作为 Discord/Slack 替代品。 对于搜索引擎敌对,Linen 显然是想把 Google searchable(谷歌可搜寻)做为一大亮点,因为 SEO-friendly 对于很多社区来说还挺有用的。不过,谷歌和搜寻这两个词显然引起了网友们的警觉,在 HN 上热烈探讨起用它来做聊天工具真的适合吗️? Plane Plane 是开源的 Jira / Linear 替代品。产品界面看起来其实跟其它项目管理工具差不太多,他们曾经纳入了 OpenAI,比方能够让 AI 给你的工单生成形容。不过感觉公司一旦用起了一个项目管理工具,迁徙老本是很高的,好奇他们如何跟这个畛域曾经比拟成熟的产品抢客户(不过他们自称曾经 Trusted by 1000+ Teams 了)。 ...

May 30, 2023 · 1 min · jiezi

关于数据库:MySQL笔记十之order-by-排序用法

本文首发于公众号:Hunter后端 原文链接:MySQL笔记十之order by 排序用法 MySQL 查问语句排序的关键字是 order by。 这一节介绍 order by 的如下几个用法: order by 的正序、逆序多个字段排序依照中文排序1、order by 的升序、倒序order by 的语法是 order by field_name asc/desc,asc 是升序,desc 是倒序 比方依据 book_name 字段依照升序排列返回: select * from book order by book_name asc;其实,asc 是 order by 的默认排序形式,所以如果是升序,asc 是能够省略的。 select * from book order by book_name;如果是倒序就是用 desc: select * from book order by book_name desc;2、多个字段排序如果是多个字段别离倒序、升序,通过逗号分隔连用即可: select * from book order by book_name desc, author asc;3、依照中文排序当初插入几条带中文的数据: insert into book (book_name, author) values('中文测试', '作者1'), ('这是测试', '作者2'), ('测试', '作者3');间接应用排序的逻辑会发现排序是不对的,因为 '测试' 的拼音是在 'ceshi',然而排序却并没有在其余两条数据后面: ...

May 29, 2023 · 1 min · jiezi

关于数据库:TiDB-x-Bolt丨超强可扩展性与弹性助力超-1-亿用户畅享出行服务

作者:PingCAP 封小明 通过 TiDB 连贯寰球极限场景和翻新场景,是 PingCAP 长期保持的国际化策略。目前,在寰球已有超过 3000 家企业抉择 TiDB。无论在游戏、金融、物流、互联网还是智能制作等行业,基于规模化 OLTP 扩容、实时 HTAP 剖析等利用场景,PingCAP 服务用户的脚步曾经从中国延长到寰球,笼罩日本、亚太、北美和欧洲等各个区域。 本文为“寰球极限场景与翻新场景应用 TiDB 的最佳实际”专题第二篇,分享 TiDB 如何为 Bolt 1亿用户提供超强可扩展性与弹性,保障其服务的全球化经营。 Bolt 是一家总部位于爱沙尼亚,提供城市交通和运送服务的出行互联网公司,业务畛域涵盖网约车、摩托车租赁、汽车共享和餐饮外卖等,是优步在欧洲的强劲竞争者。Bolt 在 45 个国家和地区的 500 多个城市领有超过 1 亿客户,与寰球 300 万多家供应商建设了合作伙伴关系,雇佣了 3000 多名员工。 MySQL 计划面临的次要痛点作为一家互联网公司,数据对于业务决策和个性化服务具备微小的价值与作用。过来,Bolt 始终应用 MySQL 作为其主数据库计划,并在很长一段时间内运行良好,但随着 Bolt 寰球业务的快速增长,MySQL 开始无奈应答其一直减少的数据量。 Bolt 外部有许多产品团队,开发和治理着数千个微服务。这些微服务在 300 多个 schema 中解决着数百 TB 的数据,而且数据量还在一直增长。MySQL 很难扩大到解决如此多的数据。为了尝试解决这些挑战,Bolt 开始尝试手动分表并增加列。但这个工作十分耗时,加载 1TB 的表须要一个星期或更长时间。此外,当他们运行 ALTER(DDL)等命令或进行备份时,还会呈现操作问题。 为了反对其上亿客户,Bolt 对系统的失常运行工夫和劫难复原有着十分严苛的要求。但基于 MySQL 的旧解决方案太软弱,无奈在劫难中顺利运行。即便他们在 MySQL 上部署了像 Galera 这样的多主机集群来进步零碎的可用性,偶然还是会失落数据。 为什么抉择 TiDB?为了解决以上痛点,Bolt 花了很多工夫摸索包含 Vitess 在内的数据库解决方案。但 Vitess 须要对 Bolt 的应用程序进行许多更改,业务革新简单——且它与 MySQL 有着相似的操作问题。此外,Vitess 对 MySQL 兼容性很差。最终,Bolt 抉择了开源的分布式 NewSQL 数据库 TiDB。 ...

May 29, 2023 · 1 min · jiezi

关于数据库:Fabarta-数据血缘治理解决方案荣获2023-鑫智奖双料奖项

5 月 23 日,由金科翻新社主办、寰球金融专业人士协会反对的“2023 鑫智奖·第五届金融数据智能优良解决方案评比”评比后果正式揭晓。Fabarta 数据血统治理解决方案荣获“专家举荐 TOP10 优良解决方案”及“数据治理与数据平台翻新优良解决方案”两项奖项。 “鑫智奖”是业内颇具权威性的奖项,关注行业数字化发展趋势及金融场景数据智能利用翻新实际,激发数据智能畛域的翻新力量,助力打造数字金融深入倒退的外围引擎。“‘鑫智奖’金融数据智能优良解决方案评比”流动曾经间断举办五届,累计收到 334 家科技企业的 409 个解决方案参评。本届参选计划通过 48 位业内权威专家评审后,最终评比出“风控、营销、经营、运维、网络信息安全、数据治理与数据平台、监管与合规”七大业余畛域内的优良解决方案。Fabarta 数据血统治理解决方案凭借本身先进性与创新性,在本次评比过程中失去金融机构专家的充沛认可与统一好评。 金融行业的数据治理面临着诸多挑战,数据血统治理便是其中的一个技术、业务和零碎交错的挑战。Fabarta 数据血统治理解决方案依据金融行业数据现状和治理需要,基于自有的多模图智能引擎、先进的 AI 解析能力以及深刻的金融行业常识,全面追溯数据血统并晋升数据洞察力,确保基于牢靠的数据进行决策;被动探查并主动解析多种血统起源,辨认血统链路中的孤岛、环路以及重要数据节点;通过深入分析数据血统,能够疾速定位数据品质问题,并及时采取纠正措施,同时通过前瞻性的剖析,提醒潜在问题,帮忙企业数据模型的设计和数据加工的效率,无效保障数据品质;直观的数据流程可视化工具,能够清晰地理解数据在不同零碎和环节之间的流动,辨认潜在的瓶颈和问题,从而优化数据处理和剖析的效率。Fabarta 数据血统治理解决方案真正地把图技术、AI 智能技术与企业数据治理技术交融在了一起,大幅晋升企业数据治理的效率,从而帮忙企业疾速构建多模态数据资产的大图,做出更理智的业务决策,晋升企业竞争劣势并实现更大的商业价值。 Fabarta 数据血统治理解决方案充沛交融了 Fabarta 图智能产品矩阵及多模态图引擎能力,创新性地将图数据库、图计算和 AI 技术用于企业数据血统治理,可能多角度展现数据血缘关系,追踪血统链路,联合内置图算法对数据血统进行高质量的剖析和洞察,并对整体血缘关系进行实时高质量剖析。这有助于进步数据品质和合规性,确保数据的准确性、完整性和一致性,升高数据经营老本和数据危险,为企业数据的资产化和服务化提供牢靠保障和无力撑持。目前,该计划已被多个客户采纳,客户对计划的理论应用体验十分认可,对其成果给予了充分肯定。 Fabarta 数据血统治理解决方案是智能化数据治理产品当中要害的一环,除此之外,Fabarta 智能化数据治理产品还交融了 AIGC 的能力智能化帮忙企业盘点多模态数据资产,并利用 Fabarta 多模态图引擎高效率地构建企业多模态数据资产地图,减速数据治理向数据资产治理的倒退,为企业结构面向多模态 Data Fabric 数据平台的基础设施。 在金融机构一直深入数字化转型实际,实现从数字化向数智化降级的过程中,数据智能将成为晋升竞争力、寻求高质量倒退的必由之路。将来,Fabarta 将积极探索金融数据智能技术新方向、利用新场景,并与业界合作伙伴一起共建金融数据智能产业生态,为金融业的数字化转型和数据智能化降级做出踊跃奉献。

May 29, 2023 · 1 min · jiezi

关于数据库:线性表的顺序存储和链式存储

在计算机科学中,线性表是一种常见的数据结构,用于存储一组具备程序关系的元素。线性表中的元素之间存在一对一的前驱和后继关系,每个元素都有惟一的前驱和后继(除了首元素和末元素)。线性表能够通过顺序存储或链式存储来实现。 顺序存储是线性表的一种实现形式,它应用间断的内存空间来存储元素。在顺序存储中,线性表的元素依照程序顺次寄存在一块间断的内存区域中。通过元素的索引,能够快速访问线性表中的任意地位元素。典型的线性表的顺序存储实现包含数组。 举个例子,假如咱们要存储一组学生的问题,能够应用线性表来示意。每个元素代表一个学生的问题,依照学生的呈现程序顺次寄存。咱们能够应用一个数组来实现顺序存储的线性表。 假如有以下学生问题:90、85、95、80、92。咱们能够创立一个长度为5的数组,将学生问题依照程序寄存在数组中。数组的索引示意学生的地位,从0开始。因而,数组的元素和对应的学生问题如下: 数组索引:0 1 2 3 4学生问题:90 85 95 80 92 这样,咱们就能够通过索引来拜访特定地位的学生问题。例如,要获取第3个学生的问题,能够通过拜访数组的索引2来获取,对应的问题是95。 除了顺序存储,线性表还能够通过链式存储来实现。链式存储应用节点的指针来连贯线性表中的元素,每个节点蕴含数据和指向下一个节点的指针。通过指针的援用,能够在链式存储中遍历拜访线性表的元素。 举个例子,假如咱们要存储一组学生的个人信息,包含姓名、年龄和性别。咱们能够应用线性表来示意,每个节点蕴含一个学生的信息以及指向下一个节点的指针。这样的线性表被称为链表。 假如有以下学生信息:{"Alice", 20, "Female"}、{"Bob", 22, "Male"}、{"Cindy", 19, "Female"}。咱们能够应用链表来存储这些信息。 链表的每个节点蕴含三个字段:姓名、年龄和性别,以及指向下一个节点的指针。链表中的节点依照程序连贯,每个节点指向下一个节点的指针造成链式构造。 图示如下: 头指针 → 节点1("Alice", 20, "Female") → 节点2("Bob", 22, "Male") → 节点3("Cindy", 19, "Female") → 空指针 这样,咱们就能够通过头指针开始遍历链表,顺次拜访每个节点的信息。例如,要获取第2个学生的年龄,咱们能够从头指针开始,沿着链表的指针找到第2个节点,而后读取节点中的年龄字段,对应的值是22。 线性表在计算机科学中十分常见,它提供了一种有序存储和拜访数据的形式。无论是顺序存储还是链式存储,线性表都在各种算法和数据结构中扮演着重要的角色,如列表、栈和队列等。

May 29, 2023 · 1 min · jiezi

关于数据库:描述图的两种数据结构-邻接表和邻接矩阵

图的邻接表和邻接矩阵是两种罕用的示意图的数据结构,用于形容图中各个顶点之间的连贯关系。 图是由一组顶点和一组边组成的数据结构,顶点示意图中的对象,边示意对象之间的关系。邻接表和邻接矩阵都能够无效地示意图的构造,并提供了不同的劣势和实用场景。 邻接表:邻接表是一种链表的汇合,用于示意图中每个顶点以及与之相邻的顶点。对于每个顶点,邻接表中都有一个链表,链表中存储着与该顶点间接相连的其余顶点。示例:思考上面这个无向图: A / \ B---C / \ / \ D---E---F应用邻接表来示意该图的构造如下: A -> B -> CB -> A -> C -> D -> EC -> A -> B -> E -> FD -> B -> EE -> B -> C -> D -> FF -> C -> E在这个示例中,每个顶点都对应一个链表,链表中存储与该顶点间接相连的其余顶点。例如,顶点A对应的链表蕴含顶点B和C,顶点B对应的链表蕴含顶点A、C、D和E,以此类推。 邻接表的长处是对稠密图(边数绝对顶点数较少)十分高效。它节俭了存储空间,因为只须要存储与每个顶点相邻的顶点列表。在图中增加或删除边的操作上,邻接表的工夫复杂度为O(1)。然而,查找特定边的操作绝对较慢,工夫复杂度为O(V),其中V是顶点的数量。 邻接矩阵:邻接矩阵是一个二维矩阵,用于示意图中顶点之间的连贯关系。矩阵的行和列别离代表图中的顶点,矩阵中的元素示意对应顶点之间是否存在边。示例:持续应用上述无向图的示例,应用邻接矩阵来示意该图的构造如下: A B C D E FA 0 1 1 0 0 0B 1 0 1 1 1 0C 1 1 0 0 1 1D 0 1 0 0 1 0E 0 1 1 1 0 1F 0 0 1 0 1 0在这个示例中,矩阵中的元素示意对应顶点之间是否存在边,1示意存在边,0示意不存在边。例如,第一行第二列的元素为1,示意顶点A与顶点B之间存在边。 ...

May 29, 2023 · 1 min · jiezi

关于数据库:什么是数据库的外模式和模式映像

在数据库设计中,外模式/模式映像(External Schema/Conceptual Schema Mapping)是指将内部模式与概念模式之间的映射关系。内部模式是指用户或应用程序对数据库的特定视图或子集的定义,而概念模式是指数据库的整体逻辑构造和组织形式。外模式/模式映像的作用是将内部模式与概念模式解耦,使得数据库系统能够同时反对多个不同的内部模式,并提供数据的独立性和灵活性。 上面咱们将具体介绍外模式/模式映像的概念,并通过一个具体的示例来阐明其在数据库设计中的利用。 在数据库设计中,通常采纳三级模式构造:内部模式、概念模式和外部模式。内部模式是用户或应用程序对数据库的可见局部,它定义了用户可能看到和操作的数据和操作形式。概念模式是数据库的整体逻辑构造和组织形式,它是数据库管理员(DBA)定义的全局模式,示意数据库的总体视图。外部模式是数据库在存储介质上的物理示意,它定义了数据的存储形式和拜访门路。 外模式/模式映像将内部模式与概念模式之间的映射关系定义了用户视图与全局视图之间的转换形式。它容许数据库系统反对多个不同的内部模式,并提供了以下几个重要的劣势: 数据的独立性:通过外模式/模式映像,数据库系统能够在概念模式的根底上定义不同的内部模式,使得用户可能依据本人的需要定义和操作数据。这种数据独立性使得数据库系统更加灵便,能够适应不同用户和应用程序的需要。安全性和隐衷爱护:外模式/模式映像能够限度内部模式对数据库的拜访权限,确保只有受权的用户能够拜访和操作数据。通过定义适当的映射关系,能够实现数据的隐衷爱护和安全控制。简化系统维护:外模式/模式映像将内部模式与概念模式解耦,使得对数据库构造的更改和调整能够在不影响内部模式的状况下进行。这简化了零碎的保护工作,缩小了对外部模式的影响。当初,咱们将通过一个具体的示例来阐明外模式/模式映像的利用。 假如咱们有一个在线商城的数据库系统,蕴含了用户信息、商品信息和订单信息等。咱们须要为不同类型 的用户提供不同的界面和性能,例如管理员界面、顾客界面和供应商界面。每种用户类型都有不同的数据需要和操作权限。 首先,咱们定义了概念模式,示意数据库的整体构造和组织形式。概念模式包含了用户信息、商品信息和订单信息等实体和它们之间的关系。 CREATE TABLE User ( UserId INT PRIMARY KEY, UserName VARCHAR(50), UserType VARCHAR(20), ...);CREATE TABLE Product ( ProductId INT PRIMARY KEY, ProductName VARCHAR(100), Price DECIMAL(10, 2), ...);CREATE TABLE Order ( OrderId INT PRIMARY KEY, UserId INT, ProductId INT, OrderDate DATE, ...);而后,咱们依据不同类型的用户需要,定义了相应的内部模式。管理员界面须要治理用户信息和商品信息,顾客界面须要浏览和下单,供应商界面须要治理商品信息和订单信息。 管理员界面的内部模式定义: CREATE VIEW AdminView ASSELECT UserId, UserNameFROM User;CREATE VIEW ProductManagementView ASSELECT ProductId, ProductName, PriceFROM Product;顾客界面的内部模式定义: CREATE VIEW CustomerView ASSELECT UserId, UserNameFROM User;CREATE VIEW ProductView ASSELECT ProductId, ProductName, PriceFROM Product;CREATE VIEW OrderView ASSELECT OrderId, ProductId, OrderDateFROM OrderWHERE UserId = :UserId;供应商界面的内部模式定义: ...

May 29, 2023 · 1 min · jiezi

关于数据库:16-年等待再见-SQL-Boy这一次数据库交互形态彻底被颠覆了

本文转载自 InfoQ。对于程序员来说,通过 SQL 操作数据库是日常工作中常常会遇到的工作,算得上是一项基本技能。但即使是业余人员面对 SQL 编写工作也往往会头疼不已,更不要说在这一畛域经验不足的初学者了。ChatGPT 大火之后,其辅助程序员编写代码的能力受到了很大关注。那么,相似 ChatGPT 这种能力是否用在数据库操作上,帮忙程序员甚至是不足代码教训的一般业务人员,应用自然语言来实现过来须要 SQL 能力做的事件呢?在近日举办的亚马逊云开发者 Tech Talk 上,Bytebase 联结开创⼈/CEO 陈天舟就介绍了这样一款产品——基于亚马逊云科技的云服务架构,能够用自然语言与数据库交互的 SQL Chat。InfoQ 将本场演讲内容整顿成文,心愿对大家有所帮忙。 软件交互范式的演进:从命令行到 CUI回顾软件行业的交互范式演进史,大抵上是从桌面到 Web 端,再到挪动端。在上世纪 70 年代,用户个别通过命令后界面(CLI)与计算机交互。倒退到 1979 年呈现了 VisiCalc, VisiCalc 首次引入了表格布局交互界面,具备革命性的意义。 这款软件还带火了 Apple 2 电脑,让很多个人用户开始洽购这款 PC 来制作表格。之后到了 1984 年,苹果公布了 Macintosh,搭配键盘、鼠标并采纳了 GUI 界面,这也是古代 PC 所采纳的规范界面的起源。再到 1993 年,第一款网页浏览器 Mosaic 诞生。 这款浏览器开启了 Web 端的时代。持续向前来到 2007 年,iPhone 的公布则开启了古代智能手机时代。这样来看,命令行 CLI 交互大略从 70 年代风行到 1984 年,GUI 的倒退则分了三个阶段,首先是 1984-1993 年是桌面端,1993-2007 年是 Web 端,2007 年到当初则是挪动端,每一次换代距离大概 13 年左右。 ...

May 29, 2023 · 1 min · jiezi

关于数据库:MySQL笔记九之limitoffset限制条数

本文首发于公众号:Hunter后端 原文链接:MySQL笔记九之limit、offset限度条数 select 语句获取数据咱们能够通过 where 语句来限度条件。 然而如果限度条件之后还是很多数据,比如说 一万条,但有时候咱们只是想看看数据的根本状况,不须要一万条数据,看不完,而且这一万条数据返回到客户端的工夫也很长,没必要,那么这就须要咱们应用 limit 和 offset 来限度返回的数量。 1、limitlimit 限度数量,前面跟一个整数 n,示意只返回符合条件的 n 条数据 比如说返回 book 表的前 5 条数据: select * from book limit 5;2、offsetoffset 是偏移量,和 limit 连用,比如说 limit 3 offset 5 示意舍弃前5条数据, 而后返回之后的 3条数据 能够了解成分页的用法,比如说每页数量为 10 条,而后咱们别离获区第1、2、3、4页的数据: select * from book limit 10 offset 0;select * from book limit 10 offset 10;select * from book limit 10 offset 20;select * from book limit 10 offset 30;留神: limit 和 offset 语句都放在查问语句的最初面。 ...

May 27, 2023 · 1 min · jiezi

关于数据库:MySQL笔记八之SELECT之LIKE模糊查找

本文首发于公众号:Hunter后端 原文链接:MySQL笔记八之SELECT之LIKE含糊查找 这一节介绍 like 的含糊搜寻用法。 跟 like 搭配的通配符有两种,一种是 %,一种是 _ % 是不限次数,不限字符的 _ 是不限字符,然而仅限次数为 1 的 %_1、%% 这个通配符表白的含意是 不限次数、不限字符。 举个例子,如果你写的是: WHERE name LIKE '%ython'那么,上面这种数据你都能够匹配上: ythonpythonPython123ythonasdasdajcaliaython也就是说,在 ython 前蕴含了0个或者无数个字符的数据都属于满足要求。 如果想要在 ython 后也能有字符怎么办?在前面加上 % 即可。 也就是说想要在左右两边,哪边须要匹配字符,就往哪边加 % 如果咱们尝试上面的语句: select * from book where book_name like '%YTHO%';能够发现小写的数据也被搜寻进去,如果咱们心愿强制辨别大小写,也就是搜寻的是小写字母就返回小写字母,搜寻的是大写就返回大写,能够加上 binary 参数: select * from book where binary book_name like '%YTHON%';2、__ 这个字符也可用于含糊搜寻,然而它只能匹配一个字符,接下来咱们插入几条数据: insert into book (book_name, author) values('test', 'test_author'), ('sest', 'sest_author'), ('atest', 'atest_author');而后这样搜寻: select * from book where book_name like '_est';这样,book_name 为 test 和 sest 的数据就能够被搜寻进去,值为 atest 的就不会,因为 _ 仅匹配一个任意字符。 ...

May 26, 2023 · 1 min · jiezi

关于数据库:超大型纸业品牌清风也用上-Apache-SeaTunnel-啦

我是韩山峰,来自金红叶纸业团体。明天,我将向大家介绍 Apache SeaTunnel 在咱们金红叶纸业团体中的利用场景,包含咱们为何抉择 Apache SeaTunnel ,以及咱们如何基于其晋升咱们外部的数据开发效率。 文|韩山峰编辑整理| 曾辉 讲师介绍韩山峰金红叶纸业 数据分析师 01 产品抉择历程在我刚退出金红叶的时候,所有数据都在 Oracle 数据库中。在那时,咱们用的是 Oracle 视图来做数仓。 如果一个视图不能满足需要,咱们就会创立另一个视图,如果两个视图还不能满足需要,咱们就会再套一个视图。但随着工夫的推移,这种形式的效率问题开始浮现,于是咱们开始寻找新的计划。 第一个工作是钻研 Oracle 和 Clickhouse 之间的数据同步。这一阶段,咱们的指标很简略,即间接将零碎表数据推送到 Clickhouse,而后由 Clickhouse 间接做前端利用。当解决了 Oracle 到 Clickhouse 的数据同步问题后,咱们开始进入第二个阶段。 第二阶段,咱们开始解决 SAP 的数据。作为一个传统企业,咱们的制作、营销及供应链生产,都依赖于 ERP 零碎,特地是 SAP,这也给咱们带来了数据输入的挑战。咱们抉择了应用SAP的RFC接口进行数据输入,并且很偶合的是咱们在第一阶段应用的工具 Kettle 也反对这种形式。 第三阶段,咱们布局应用 Hive 来建设咱们的数仓。然而,因为 Kettle 自身存在的问题和限度,咱们开始寻找新的工具,可能将咱们的 Oracle 数据库和 SAP 接口的数据导入到 Hive,并在数仓中进行模型解决和数据荡涤。 第四阶段,咱们开始摸索如何将荡涤过的 Hiv e数据推送到 Clickhouse,因为咱们的 BI、报表以及可视化利用,更多的是依赖于 Clickhouse 。咱们在这一阶段探讨了如何买通整个数据生态的问题。 在这个过程中,咱们评估了多种解决方案,包含商业解决方案和开源的 Apache SeaTunnel ,我还记得刚接触 Apache SeaTunnel 时,过后它的名字叫 “Waterdrop” 。 咱们具体浏览了它在 GitHub上 的文档,进行了深刻的代码剖析,并最终决定基于 Apache SeaTunnel 来搭建咱们的数据集成工具。 ...

May 26, 2023 · 1 min · jiezi

关于数据库:一文教会你用Apache-SeaTunnel-Zeta离线把数据从MySQL同步到StarRocks

在上一篇文章中,咱们介绍了如何下载安装部署SeaTunnel Zeta服务(3分钟部署SeaTunnel Zeta单节点Standalone模式环境),接下来咱们介绍一下SeaTunnel反对的第一个同步场景:离线批量同步。顾名思意,离线批量同步须要用户定义好SeaTunnel JobConfig,抉择批处理模式,作业启动后开始同步数据,当数据同步实现后作业实现退出。 上面以MySQL离线同步到StarRocks为例,介绍如何应用SeaTunnel进行离线同步作业的定义和运行。 1. 定义作业配置文件SeaTunnel应用配置文件来定义作业,在这个示例中,作业的配置文件如下,文件保留门路~/seatunnel/apache-seatunnel-incubating-2.3.1/config/mysql_to_sr.config #定义一些作业的运行参数,具体能够参考 https://seatunnel.apache.org/docs/2.3.1/concept/JobEnvConfigenv { job.mode="BATCH" #作业的运行模式,BATCH=离线批同步,STREAMING=实时同步 job.name="SeaTunnel_Job" checkpoint.interval=10000 #每10000ms进行一次checkpoint,前面会具体介绍checkpoint对JDBC Source和StarRocks Sink这两个连接器的影响}source { Jdbc { parallelism=5 # 并行度,这里是启动5个Source Task来并行的读取数据 partition_column="id" # 应用id字段来进行split的拆分,目前只反对数字类型的主键列,而且该列的值最好是离线的,自增id最佳 partition_num="20" # 拆分成20个split,这20个split会被调配给5个Source Task来解决 result_table_name="Table9210050164000" query="SELECT `id`, `f_binary`, `f_blob`, `f_long_varbinary`, `f_longblob`, `f_tinyblob`, `f_varbinary`, `f_smallint`, `f_smallint_unsigned`, `f_mediumint`, `f_mediumint_unsigned`, `f_int`, `f_int_unsigned`, `f_integer`, `f_integer_unsigned`, `f_bigint`, `f_bigint_unsigned`, `f_numeric`, `f_decimal`, `f_float`, `f_double`, `f_double_precision`, `f_longtext`, `f_mediumtext`, `f_text`, `f_tinytext`, `f_varchar`, `f_date`, `f_datetime`, `f_timestamp` FROM `sr_test`.`test1`" password="root@123" driver="com.mysql.cj.jdbc.Driver" user=root url="jdbc:mysql://st01:3306/sr_test?enabledTLSProtocols=TLSv1.2&rewriteBatchedStatements=true" }}transform {# 在本次示例中咱们不须要做工作的Transform操作,所以这里为空,也能够将transform整个元素删除}sink { StarRocks { batch_max_rows=10240 # source_table_name="Table9210050164000" table="test2" database="sr_test" base-url="jdbc:mysql://datasource01:9030" password="root" username="root" nodeUrls=[ "datasource01:8030" #写入数据是通过StarRocks的Http接口 ] }}2. 作业配置阐明在这个作业定义文件中,咱们通过env定义了作业的运行模式是BATCH离线批处理模式,同时定义了作业的名称是"SeaTunnel_Job"。checkpoint.interval参数用来定义该作业过程中多久进行一次checkpoint,那什么是checkpoint,以及checkpoint在Apache SeaTunnel中的作用是什么呢? ...

May 26, 2023 · 1 min · jiezi

关于数据库:INFINI-Labs-产品更新-Console-新增数据比对新增数据看板表格组件及支持下钻功能等

INFINI Labs 产品更新啦~,本次产品版本更新包含 Gateway v1.14.0、Console v1.2.0、Easysearch v1.1.1 等,其中 Console 在上一版根底上做了很多优化改良以及新增了一些个性,如新增数据比对校验性能、数据看板模块新增了表格组件、图表组件反对下钻性能等。欢送下载体验。 INFINI Gateway v1.14.0极限网关本次更新如下: Features反对自定义服务名称metrics 减少实例 user_in_ms 和 sys_in_ms 采集elasticsearch 减少 dial_timeout 选项Bug Fix修复网关开启实时日志推送后命令行日志无奈输入的问题logging 修复 min_elapsed_time_in_ms 选项不失效的问题修复一个生产闲置队列造成 CPU 占用高的问题更多更新参见【 Gateway 版本历史 】。 INFINI Console v1.2.0Console 本次更新如下: 数据比对数据比对目前反对跨集群索引全量数据校验,罕用于索引数据迁徙之后,校验两端的数据是否统一,保障数据迁徙的正确性。通过 UI 界面创立数据校验工作和治理。 进入校验工作详情,可能可视化展现分区子工作的进度,不同的色彩方块示意进度状态,如绿色示意校验胜利、红色示意校验失败,如失败了能够查看 log 日志进行谬误起因定位。 具体操作参见:教程。 数据看板Console 数据看板模块新增了表格组件,进一步扩大 Dashboard 看板图表多样化,加强数据可视化能力。详情查看 操作演示视频。 同时,数据看板模块新增了下钻性能,反对图表组件配置自定义下钻 URL 链接,在图表组件上进行工夫范畴框选后即可点击下钻按钮进行链接跳转。详情查看 操作演示视频。 告警模板反对环境变量新版 Console 反对解析零碎环境变量和配置文件中配置的环境变量。在配置告警规定音讯内容时可通过 {{$.env.VARIABLE}} 形式设置环境变量,详情参见:教程。 除了以上次要新增性能外,Console 其余更新如下: Bug fix修复数据看板组件复制的问题修复开启实时推送日志后,不写文件日志的问题修复初始化时,零碎集群没有索引,节点元数据的问题修复网关重启后,数据迁徙工作无奈完结的问题修复数据迁徙工作统计数据反复的问题修复数据摸索列表工夫字段排序问题Improvements告警规定表达式显示优化优化数据迁徙任务调度流程,缩小 ES 调用次数数据迁徙工作减少跳过 scroll/bulk 文档数查看选项更多更新参见【 Console 版本历史 】。 ...

May 26, 2023 · 1 min · jiezi

关于数据库:java连接TD数据库获取数据

1.目录构造2.创立springboot的我的项目,增加pom依赖3.配置数据库连接池4.配置数据库映射实体5.配置dao层\6.书写对应的xml格局的对应这里举例一个查问最新的一个数据7.Service层8.Controller层通过接口返回给前端9.初始化数据库10.通过接口获取lastone能够看到 获取胜利

May 26, 2023 · 1 min · jiezi

关于数据库:基于openfaas托管脚本的实践

作者 | 张曦 一、openfaas产品背景在云服务架构倒退之初,这个方向上的思路是使开发者不须要关怀搭建和治理后端应用程序。这里并没有提及无服务器这个概念,而是指后端基础设施由第三方来托管,须要的基础架构组建均以服务的模式提供,比方数据库、音讯队列和认证服务等。 但亚马逊在2014年公布AWS Lambda时,为在云中运行的应用程序带来了一个新的零碎架构思路,即不须要在服务器上部署期待HTTP申请或API调用的过程。Lambda提供了一个事件触发的机制及框架,当收到用户申请时触发一个事件,在一个AWS server上执行用户注册的性能(通常只是一个函数,业界个别称这种类型的服务为FaaS)。 以后,提供FaaS服务的云服务厂商除AWS外,还有Google Cloud(alpha)、Microsoft Azuze、IBM OpenWhisk等。国内的云服务提供商如阿里云 FC、百度云CFC、腾讯云SCF。比拟受欢迎的开源架构有OpenFaaS、Knative、OpenWhisk等。 二、我的项目业务背景阿拉丁是百度搜寻平台的产品,个别位于百度搜寻后果页的首位,是百度搜寻满足用户搜寻需要闭环的卡片式产品。离线工作提供高质量的结构化数据,在线server优化搜寻出卡策略,从而将高品质的搜寻后果出现给用户,最大水平的满足用户的搜寻体验以及需要。在线server部署在百度搜寻业务线的机器上,由百度搜寻业务线对立治理分配资源和保障业务稳定性。离线工作需业务方自行治理。 离线数据源的产出分为两种计划,定时读取数据库进行版本diff后,拼接结构化数据发送至搜寻业务线的音讯队列节点,或者pm提交物料数据触发建库工作生成全量静态数据,期待搜寻spider定时抓取建库,同时,离线计划也提供在线入口用于实时干涉数据、物料治理等性能。原计划是将所有脚本部署在业务方物理机上,定时工作由百度外部noah平台托管,反对配置运行工夫距离、运行指令,而后定时触发指令运行。对于手动触发类工作,在同一台物理机上部署了http server,通过接管http申请,而后到脚本目录下执行cmd指令实现,这种形式造成了机器资源的节约。原上线计划还存在另一个问题,通过将公布包拷贝到物理机部署的形式,较为繁琐,而且没有上线记录,当呈现问题不利于尽快回滚止损。 三、思路与指标从业务上来看,须要有两个性能点,定时运行脚本,还能反对传入文件流并触发脚本运行。为了节俭机器估算老本,应用百度智能云bcc虚机,为了保障脚本运行的稳定性,防止机器故障导致脚本全副无奈运行的状况产生,容器化部署脚本,基于faas的思路,把脚本工作放入函数中封装为一个云函数,反对定时工作、http申请触发脚本运行。 思考到百度智能云bcc虚机上能够部署cce Kubernetes集群,调研基于Kubernetes的Faas开源我的项目用于二次开发。目前支流Faas开源架构有OpenFaaS,Knative,OpenWhisk等,这三个框架的比照如下: 比照后发现Knative更适宜定位于创立、部署和治理无服务器工作负载的平台,须要独立治理容器基础设施,从配置和保护的角度来看,比较复杂且不是面对最终用户,所以临时先不思考。OpenFaaS和OpenWhisk比照,OpenWhisk利用的底层组件多于OpenFaas,从运维和部署OpenWhisk来看减少了肯定的复杂性,且OpenWhisk基于scale实现,如果须要二次开发,需从新动手一门新语言。而openfaas次要利用了promethus、alertmanager用于动静扩缩容,技术栈为与咱们日常开发语言统一,所以最终计划抉择了openfaas。 而且openfaas还反对event connectors的调用形式,调用形式如下图所示,和AWS Lambda的性能相似,不便与其余生态系统集成。目前官网已反对了Cron connector、MQTT connector、NATS connector等连接器,咱们定时工作就依赖于Cron connector实现。在应用上先在集群中部署对应的connector,而后在打包云函数用的yaml中annotations属性上,加上connector指定要加的内容即可依据工夫触发对应的云函数。 四、整体架构4.1 架构设计 在整体的架构上,工作由事件(http申请、定时器、faas客户端操作)触发,openfaas平台内会依据流量的特色路由到具体任务实例,触发工作执行,工作执行原理是of-watchdog将申请参数封装为stdin去执行cmd指令触发工作运行,期待工作执行实现从stdout中取到数据返回后果。 整体架构次要由以下几个外围局部组成: 网关:外围能力是负责对接内部触发源,将流量路由到具体任务实例下来执行;网关还负责统计各个工作的流量信息,为弹性伸缩模块提供数据撑持,同时也能够依据配置的工作并发度进行限流解决;网关也会同步工作运行状态、运行历史等信息,在工作执行失败后,告诉到工作负责人。 弹性伸缩:外围能力是负责工作实例的弹性伸缩,依据工作运行的流量数据、资源阈值配置计算函数指标实例个数,协调资源,而后借助Kubernetes的资源控制能力,调整函数实例的个数。 数据采集:采集网关对外裸露的流量数据,以及工作实例的资源使用量,作为弹性伸缩的判断根据。 日志采集:采集工作实例中的日志并落盘,不便业务方排查工作运行中呈现的问题。 控制器:外围能力是负责Kubernetes CRD(Custom Resource Definition)的管制逻辑实现。 工作实例:当网关流量路由过去,会在工作实例内执行相应的脚本代码逻辑。 上线平台:面向用户应用的平台,负责函数的构建、版本、公布以及一些函数元信息的治理,同时反对查看函数运行时日志和执行历史。 4.2 流程设计脚本整体生命周期如图中所示,有以下四个阶段:公布版本、构建、部署、伸缩。 公布版本:公布待上线版本,指定待打包脚本代码目录。 构建:将代码还有配置的定时工作等相干信息,一起打包生成镜像,用于后续的部署工作。 部署:将镜像部署到Kubernetes集群中。 伸缩:依据集群中工作实例的流量以及负载等信息,来进行实例的弹性扩缩容。 五、机器资源利用率晋升晋升机器资源利用率,通过动静的为工作实例分配资源去实现。当离线工作处于不工作的状态下,能够把对应的实例数缩减为0调配给其余有须要的实例,对流量超过并发度配置或者资源应用超过阈值限度的工作实例进行扩实例操作,应用尽可能少的机器去承载更多的脚本离线服务。 在离线工作上线前,会对工作进行注册,抉择工作分类,工作可分为同步触发(需期待返回后果)、定时触发、异步调用(不期待脚本后果间接返回)这三种类型。 5.1 同步触发型工作同步触发型工作次要是用于实时干涉线上数据,或操作物料数据入库,它的特点需期待返回后果确保操作胜利,且可能会有间断屡次操作。在下面三种类型工作中,这种类型的工作优先级是最高的,不会将其缩减到0实例。 同步工作弹性伸缩流程如上图所示,在工作监控过程中,通过拉取网关数据获取流量工作状况,pod资源则是promethus配置cadvisor数据源获取,如果发现网关收到大量429状态码(流量超过并发度配置),或者发现资源应用超过报警阈值(阈值设置为上线平台配置的资源最大值的80%),会对这些工作实例进行扩容。在扩容过程中如果发现机器资源不够,会依照定时工作、异步调用工作的先后顺序去找未运行的工作缩减实例数,在缩减定时工作时会依据最近一次工作执行工夫,由远及近的将工作实例缩减至0节约资源。反之,对同步触发类型的工作资源使用率很低的状况,依据并发度配置去适当的缩减资源。 5.2 定时工作定时工作次要利用于全量建库场景,在指定的工夫开始运行,属于可预期的工作类型,极其状况下工作实例只须要在指定工夫存在即可。 定时工作的触发基于cron-connector,然而在规定工夫保障对应的工作实例存在则由后台任务负责,定时运行查看将来的一段时间内对应工作的实例是否存在,如果不存在的话执行部署操作,同时注册回考察看工作实例部署状态,因为机器资源有余等起因导致实例数没有达到预期数,触发报警告诉到零碎运维人员。 5.3 异步调用工作异步工作次要利用于运行工夫较长、不须要及时获取返回后果的状况,这类工作对失效工夫不敏感,齐全能够提早一分钟用于部署实例再触发工作执行,但因为异步工作由人工触发,不可预测触发工夫,所以在弹性伸缩须要缩容时还是会优先思考定时工作。 异步调用工作,如果实例被缩减到0后,触发工作执行,网关内的激活器模块会先将申请信息存储,而后通过裸露metrics信息,触发流量大于总并发度(实例数*配置并发度)的报警,实现重新部署。网关进行轮训期待实例部署胜利后将申请回放重试,如果规定工夫内实例数仍为0,报警告诉到零碎运维人员。 六、稳定性保障6.1 网关稳定性保障所有的函数流量都须要通过网关服务,因而事件网关的可用性尤为重要。首先对网关做了主备解决,当主节点出问题时立即启用备节点。通过为了加重网关的压力,通过限流和异步化两个伎俩,尽可能减小网关申请上游的资源耗费。网关也能很好的爱护上游业务实例,反对在上线平台配置工作实例降级,间接返回降级数据,也反对干涉限度异样的流量拜访,保障上游工作实例的失常运行。 6.2 资源监控、报警基于promethus对所有的工作实例进行了监控,遇到实例重启、资源超过阈值等状况通过alertmanager发消息告诉到零碎运维工作人员。当工作运行失败也会发消息到工作负责人。同时将promethus数据输入给grafana,反对可视化查看实例资源状况,也反对在上线平台查看工作运行历史、运行时长等根本信息。 6.3 日志采集、留存因为工作实例受弹性伸缩影响,可能会被重新部署,这将导致旧实例的日志会无奈被找回,在工作实例中部署filebeat将日志文件导出,实现日志文件的长久化,同时反对在上线平台查看历史日志。在上线平台也能够登录到工作实例中查看实时日志排查问题,通过上线平台实现用户权限治理,限度用户只能登录有权限的工作实例,做到工作实例治理隔离。 6.4 bns服务稳定性保障bns百度命名服务,能够了解为百度外部的dns服务,实现原理是在解析bns地址时,申请百度机器上的bns-agent获取注册的服务地址。思考到节约资源应用,在咱们的工作实例中是没有部署bns-agent的,所以个别会申请近程的bns-agent服务,但起初发现会偶现连贯超时问题,影响了工作的稳定性。因而思考了三种计划: 计划1,工作实例中挂载bns服务,而后在实例启动命令中拉起bns服务; 计划2,参考dns原理,制订bns域规定,在coredns遇到bns域的域名时,转发给宿主机的agent服务,agent服务须要将bns-agent封装一层,能解析dns申请,转换为bns申请,从bns-agent获取机器ip,封装回dns协定格局回包; ...

May 26, 2023 · 1 min · jiezi

关于数据库:手机一开说办就办指尖上的数字江西

数字江西科技有限公司(下简称“数字江西”)是经省委省政府批准,由江西省信息中心(大数据中心)治理的国有控股合资公司,于2020年3月2日成立,是江西省人民政府的重要实际,也是江西省委省政府推动“新基建”建设、倒退“数字经济”、建设“数字政府”的重要策略布局之一。 随着“赣服通”5.0版本的上线,500余项政务服务事项不断更新,全省各地依靠“赣服通”平台强化“智慧”赋能,打造了政务服务新模式。 近年来,随着各行业数字化转型降级进度放慢,数字江西旗下“赣服通”的上线也正在悄悄扭转江西人民的生存形式,约每 1.7 个江西人就有 1 人在应用“赣服通”。 目前,“赣服通”曾经迎来了 5.0 版本的上线,500 余项政务服务事项不断更新,江西全省各地依靠“赣服通”平台强化“智慧”赋能,进一步打造政务服务新模式,提供便民利企好服务。 从 2018 年的 1.0 版本到现在的 5.0 版本,“赣服通”一直摸索区块链、政务服务、信用体系建设,以及推广全国首个政务数字人。“赣服通”的每一次版本迭代与翻新,都源自对技术的新需要和高要求。 眨眨眼 “养老资格认证”更简略养老资格认证的用户大多数都是老年人,所谓的“养老资格认证”,就是为了证实这些老年人还健在,其还领有支付养老金及一些相干保障的权力。 为了实现养老资格认证,有些中央甚至呈现,很多家属把行动不便的老年人抬到相干人社部门的办理窗口去办理业务,这是服务质量的欠缺。 当初,通过数字江西旗下的“赣服通”,大大简化了大众的办事流程——只须要亲属把手机关上,就能够帮忙出行不便的老年人进行刷脸,通过眨眨眼的动作就能够证实本人“领有支付保障金”的资格认证,节约了不必要的这种跑动,给老百姓特地是老年人带来了很大便当。 除此外,“赣服通”针对老年人还做了适老化的革新,针对像老年人的“老花”问题,以及对服务事项的不理解,“赣服通”在去年就推出了老年版。其最大的特点把字体进行了放大,并把老年人罕用的高频服务进行简版的整合,让老年人比拟不便的找到本人须要的手机的服务。 同时,为了配合这种适老化的革新,“赣服通”还推出了一个蓝马甲口头——帮忙老年人在互联网时代,怎么通过手机更不便地乘公交、坐地铁,通过这种适老化的服务,给他们带来真正的便当。 挪动政务 “学区房难题”更低碳“学区房”是困扰很多打工人家长的艰难点,“学区房”难买,围绕房子的后续退学问题更是难办。 以前,家长须要到线下窗口提交学区房、户口的相干纸质材料。当初,通过数字江西的挪动政务服务平台,进行中台数据交换共享,就能够实现相干证照电子化,确定本人的孩子在哪个学区上学,不再须要去线下窗口,大大简化了办事流程。 除此外,在确定退学之后,也存在一些其余的需要,比方学费、托管费、学杂费、学平险的缴纳,这些咱们都在“赣服通”开设了相干在线服务——退学一件事,通过这个服务就能够一站式在线解决、缴纳这一系列费用,真正给每个家长带来了便当。原来须要跑几个部门、几个窗口的事件,当初全副能够指尖通办,这种“零跑动”也是一种低碳的行为。 江西人社的窗口日常状况下每天可能要服务几千名大众,而当在线化当前,全省乃至全国的并发量更大,为了接受住高并发的冲击,数字江西在云平台体系的建设、数据库体系的建设、支撑体系的建设方面做了很多的尝试。 在自主研发的大背景下,数字江西抉择了 OceanBase 进行了分布式革新,这种数据库体系的变动很好的节约了数字江西的相干云资源,对云资源的开释也升高了相干的建设老本。正是通过这种技术和服务的交融,更好的服务了江西省的整个政务服务体系建设。 干部通 让“政务金融资源”更聚合说完了养老和房子,再到企业的注册停办,原来一家企业如果要享受一些惠企的政策,往往要通过多个政府部门的审批,提交一系列的证实资料。 而当初,“赣服通”上有一个入口叫“干部通”,在其之下有一个惠企专区,在专区内能够间接提交相干资料,但凡符合条件的企业都能够在线免申即享、即申即享,直至承诺兑现。这带来的间接益处是:整个企业的资金回流速度显著放慢,且大幅节约了企业办事的老本,进步企业的办事效率。 目前,咱们的企业和个体工商户,在经济大环境的局势下,很多企业都须要进行融资贷款,传统模式可能只能服务 20% 的大客户,而对其余的中小微企业,个体工商户,服务响应速度往往没有那么快。所以为了可能做到疾速响应,咱们将融资贷款做成了纯线上化的金融产品,依靠数据安全提供真正的金融产品。 “赣服通”金融服务专区通过聚合政务金融资源,和各个银行进行单干,首次采纳 齐全自主研发的原生分布式数据库 OceanBase,使用“区块链+可信受权”和对立电子证照,突破了金融畛域数据壁垒,实现金融服务“网上办、掌上办、马上办”。 为集体和企业提供全维度数字化金融服务,不便企业、大众、个体工商户进行纯在线化的贷款办理,切实进步了整个普惠金融的效率,让真正有资金须要的企业和法人享受到相干的便当。 通过数字技术带动传统产业的互联网化降级,各行各业的数字化转型效率一直进步。目前,数字江西“赣服通”正在成为宽广企业大众享受掌上金融服务,金融机构输入普惠金融产品的重要平台,其给人民大众带来的这种变动,也是整个政务服务新的发展趋势。 现在,各省积极探索在线政务,江西省政府“让数据多跑路,大众少跑腿”的背地是政务新模式正在进一步辐射“寻常百姓家”,是数字技术正在切实扭转人民生存,是分布式数据库 OceanBase 正在升高科技普惠的门槛,助力数字江西的每一笔「服务」都算数! 欢送拜访 OceanBase 官网获取更多信息:https://www.oceanbase.com/

May 26, 2023 · 1 min · jiezi

关于数据库:Bytebase更好地管理你的-OceanBase-数据库

咱们很快乐发表:OceanBase 用户当初能够应用 Bytebase 进行数据库变更治理啦! Bytebase 是一款为 DevOps 团队筹备的数据库 CI/CD 工具,专为开发者和 DBA 打造,也是惟一被 CNCF Landscape 收录的 Database CI/CD 产品。 治理 OceanBase 数据库变更在 Bytebase 主页点击「增加实例」,填入 OceanBase 数据库实例相干信息后,即可开始通过 Bytebase 治理你的 OceanBase 数据库。 从 Bytebase 1.17.0 起,就能够治理 OceanBase 实例,反对: 在 UI 和 GitOps 工作流中进行数据库 schema 和数据的变更。在数据库详细信息页面查看变更历史。在 SQL Editor 中查询数据库语句。更具体的性能反对列表请查看 https://www.bytebase.com/docs/introduction/supported-databases。 亲手试试 OceanBase你能够通过以下形式体验用 Bytebase 治理你的 OceanBase 数据库: Bytebase Cloud:https://hub.bytebase.com/workspace 自部署:https://www.bytebase.com/docs/get-started/install/overview 应用过程中遇到任何问题,欢送退出 OceanBase 用户群分享反馈 ❤️ 钉钉群:33254054 最初感激 @whhe 同学奉献的第一块砖! 将来咱们会与 Bytebase 一起逐步欠缺对于 OceanBase 变更治理性能,独特为开发者提供极致的数据库开发体验。 ...

May 26, 2023 · 1 min · jiezi

关于数据库:Bytebase-210-通过工单审批管控查询和导出权限

新性能反对通过工单审批管控查问(Query)和导出(Export)权限。反对对 Oracle 数据库变更进行 SQL 审核。反对通过 SSH 隧道连贯 PostgreSQL 和 Redis 数据库。 改良主动敞开已实现的工单。反对从我的项目中批量转移出数据库。反对为 GitOps 配置 Webhook URL。 社区SQL Chat 付费性能已上线,欢送拜访 SQL Chat 官网理解详情。 装置及降级参考降级指南。如果从之前版本升级,获取新版本后,重新启动降级即可。 你能够拜访官网:https://www.bytebase.com/,收费注册云账号,立刻体验 Bytebase。

May 26, 2023 · 1 min · jiezi

关于数据库:MySQL笔记七之SELECT数据查看WHERE之ANDORINNOT

本文首发于公众号:Hunter后端 原文链接:MySQL笔记七之SELECT数据查看WHERE之AND、OR、IN、NOT 上一节的 WHERE 查问操作都是单条件的,如果想要实现多条件,则能够应用上面几种逻辑语句: ANDORINNOT1、ANDAND 、OR 这种语句跟其余的计算机语言的应用是一样的,这里就简略的写几个例子。 AND 与逻辑,必须同时满足 要选出 ID 值小于100 同时大于2的数据,这是一个 与 句式,就应用 AND 来进行连贯。 select * from book where id > 2 and id < 100;2、OROR 或逻辑,满足条件之一即可 比方 id 值大于100 或者等于 1 的数据,就应用 OR 来连贯。 select * from book where id > 100 or id = 1;留神: 当 AND 和 OR 组合在一起应用的时候,要留神的一点是,AND 的运算是要优先于 OR的。所以留神:应用括号辨别优先级是个好习惯。 3、ININ 是一个范畴枚举,值在 IN 逻辑内满足的数据都能够取出来。 比如说,咱们要取出 id 值为1 和 3 和100 的数据,能够用 in (1, 3, 100)。 ...

May 25, 2023 · 1 min · jiezi

关于数据库:大数据赋能商业地产研策

商业地产是城市经济的重要支柱,也是城市形象的重要名片。在消费者需要日益多元和个性化的背景下,商业地产面临着强烈的市场竞争和经营效率的挑战。如何在复杂多变的市场环境中,做出科学合理的投资决策和经营策略,是商业地产企业的外围课题。 在这个过程中,大数据施展了不可代替的作用。大数据具备规模宏大、类型多样、价值密度低、时效性高的特点,它能够从多维度、多角度、多层次地反映商业地产的各种信息,为商业地产研策提供无力撑持。 具体来说,大数据能够赋能商业地产研策的以下几个方面: 城市选址:剖析城市的宏观经济、人口构造、交通网络、土地供给、政策法规等数据,评估城市的发展潜力和商业需要,确定投资指标城市和区域。地块评估:剖析地块的地位、规模、类型、四至标点、航拍等数据,评估地块的价值和危险,确定投资志愿和报价。市场剖析:收集并剖析竞品我的项目的信息,如地位、规模、类型、租金、销售、经营等数据,评估市场的供需格局和竞争态势,确定我的项目的定位和差异化劣势。消费者洞察:通过问卷调查、访谈、察看等形式,收集并剖析消费者的特色、偏好、行为、需要等数据,开掘消费者的痛点和潜在价值,确定我的项目的指标客群和产品类型。我的项目策动:依据城市选址、地块评估、市场剖析和消费者洞察的后果,制订我的项目的性能布局、主题格调、经营模式等策动计划,造成我的项目的外围竞争力和品牌形象。经营监测:实时监测我的项目的经营数据,如客流量、销售额、租户状况、流动成果等数据,评估我的项目的经营成果和问题,及时调整优化经营策略。数据中台:构建数据中台平台,实现数据的采集、存储、荡涤、整合、剖析和展现等性能,为商业地产研策提供一站式数据服务。总之,大数据是商业地产研策不可或缺的工具和资源,它能够帮忙商业地产企业晋升研策效率和精准度,升高研策老本和危险,实现商业地产的数智化转型和翻新倒退。

May 25, 2023 · 1 min · jiezi

关于数据库:Elasticsearch之join关联查询及使用场景-京东云技术团队

在Elasticsearch这样的分布式系统中执行相似SQL的join连贯是代价是比拟大的,然而,Elasticsearch却给咱们提供了基于程度扩大的两种连贯模式 。这句话摘自Elasticsearch官网,从“然而”来看,阐明某些场景某些状况下咱们还是能够应用的 一、join总述1、关系类比在关系型数据库中,以MySQL为例,尤其B端类零碎且数据量不是特地大的场景,咱们常常用到join关键字对有关系的两张或者多张表进行关联查问。然而当数据量达到一定量级时,查问性能就是常常困扰的问题。因为es能够做到数亿量级的秒查(具体由分片数量决定),这时候把数据同步到es是咱们能够应用解决方案之一。 那么不禁有疑难问了,因为业务场景的决定,之前必须关联查问的两张表还能做到进行关联吗? 答案是能够的,es也提供了相似于关系型数据库的关联查问,然而它又与关系型数据的关联查问有显著的区别与限度。 2、应用场景如果把关系数据库原有关联的两张表,同步到es后,通常状况下,咱们业务开发中会有两种查问诉求的场景 场景1 诉求:展现子表维度的明细数据(蕴含父表和子表中字段的条件) 计划:对于此种查问诉求,咱们能够把原来关联的父子表打成父子表字段混合在一起的大宽表,既能满足查问条件,又有查问性能的保障,也是罕用存储计划之一 场景2 诉求:展现父表维度的明细数据(蕴含父表和子表中字段的条件) 计划:然而,对于此种查问诉求,须要通过子表的条件来查问出父表的明细后果,场景1的宽表存储计划是子表明细数据,而最终咱们要的是父表明细数据,显然对于场景1的存储计划是不能满足的。如果非要应用场景1的存储计划,咱们还要对宽表后果进行一次groupby或者collapse操作来失去父表后果。 这个时候咱们就能够应用es提供的join性能来实现场景2的诉求查问,同时它也满足场景1的诉求查问 3、应用限度因为es属于分布式文档型数据库,数据天然是存在于多个分片之上的。Join字段天然不能像关系型数据库中的join应用。在es中为了保障良好的查问性能,最佳的实际是将数据模型设置为非规范化文档,通过字段冗余结构宽表,即存储在一个索引中。须要满足条件如下: (1)父子文档(数据)必须存储在同一index中 (2)父子文档(数据)必须存储在同一个分片中,通过关联父文档ID关联 (3)一个index中只能蕴含一个join字段,然而能够有多个关系 (4)同一个index中,一个父关系能够对应多个子关系,一个子关系只对应一个父关系 4、性能问题当然执行了join查问诚然性能会受到肯定水平的影响。对于带has\_child/has\_parent而言,其查问性能会随着指向惟一父文档的匹配子文档的数量减少而升高。本文开篇第一句摘自es官网形容,从ES官网的形容来看join关联查问对性能的损耗是比拟大的。 不过,在笔者应用的过程中,在5个分片的前提下,且父表十万量级,子表数据量在千万量级的状况下,关联查问的耗时还是在100ms内实现的,对于B端许多场景还是能够承受的。 若有相似场景,倡议咱们在应用前,依据分片的多少和预估将来数据量的大小提前做好性能测试,避免当前数量达到肯定水平时,性能有显著降落,那个时候再改存储计划得失相当。 二、Mapping1、举例说明这里以优惠券流动与优惠券明细为例,在一个优惠券流动中能够发放几千万的优惠券,所以券流动与券明细是一对多的关系。 券流动表字段 字段阐明activity\_id流动IDactivity\_name流动名称券明细表字段 字段阐明coupon\_id券IDcoupon\_amount券面额activity\_id外键-流动ID2、mapping释义join类型的字段次要用来在同一个索引中构建父子关联关系。通过relations定义一组父子关系,每个关系都蕴含一个父级关系名称和一个或多个子级关系名称activity\_coupon\_field是一个关联字段,外部定义了一组join关系,该字段为自命名 type指定关联关系是join,固定写法 relations定义父子关系,activity父类型名称,coupon子类型名称,名称均为自命名 { "mappings": { "properties": { "activity_coupon_field": { "type": "join", "relations": { "activity": "coupon" } }, "activity_id": { "type": "keyword" }, "activity_name": { "type": "keyword" }, "coupon_id": { "type": "long" }, "coupon_amount": { "type": "long" } } }}三、插入数据1、插入父文档在put父文档数据的时候,咱们通常依照某种规定指定文档ID,不便子文档数据变更时易于失去父文档ID。比方这里咱们用activity\_id的值:activity\_100来作为父id PUT /coupon/_doc/activity_100 { "activity_id": 100, "activity_name": "年货节5元促销优惠券", "activity_coupon_field": { "name": "activity" }}2、插入子文档上边曾经指定了父文档ID,而子表中曾经蕴含有activity\_id,所以很容易失去父文档ID ...

May 25, 2023 · 1 min · jiezi

关于数据库:从-Oracle-迁移到-TiDB-的方案设计与用户实践

作者 盛玉 , 中国人寿财险金融科技核心零碎运行部 王耀强 , PingCAP 资深解决方案架构师 导读以后,寰球数字化浪潮推动数字经济与实体经济交融,更多的企业意识到数据平台对业务增长和翻新的重要性。通过国产化迁徙和替换数据库,中国数据库市场蓬勃发展,为企业自主翻新奠定了根底。本文以中国人寿财险公司为例,详述其从 Oracle 到 TiDB 分布式数据库的四个阶段的迁徙,展现了金融行业对数据库的高要求和国产数据库的价值利用。 背景和前言以后,数字化浪潮席卷寰球,随着大数据、云计算、挪动互联网等数字技术的广泛应用,数字经济与实体经济深度交融的趋势越加显著。在数字化转型减速期,寰球企业与组织粗浅意识到数据平台是业务倒退的重要驱动力,如何无效利用数据,充沛开释数据价值,成为业务增长和翻新的要害根底。 近年来,科技翻新、科技自立自强已作为重要倒退策略,中国数据库市场正迎来倒退的黄金窗口期。在 IT 基础设施之中,数据库作为三大根底软件之一,承载了各类业务零碎的不同品种数据,如客户信息类、交易流水类、用户行为类等,通过对底层数据库的国产化替换和迁徙,为企业 IT 零碎的自主翻新奠定松软的根底。 业务零碎替换降级的倒退门路企业在不同期间、由不同业务部门主导来推动信息系统的建设,割裂的烟囱式架构使得零碎之间的数据无奈买通并利用。数字化转型和国产数据库的迁徙工作,并不是简略的对传统商业数据库产品(如 Oracle 等)替换,更是要站在企业倒退的策略高度,从新对业务、利用、技术架构等方面进行综合考量,满足企业可继续规模化倒退的需要。金融机构在国产数据库替换路线上,呈现出两类倒退门路: 1 对成熟商业数据库的平行替换金融机构有局部业务零碎因为开发工夫较早、相熟代码的人员较少、又特地依赖于成熟商业数据库的个性等起因,往往会优先选择不改或者少改利用、应用兼容商业数据库个性的国产数据库进行替换。尽管短期内可能实现疾速替换,但长期看这种计划使得技术债进一步沉积,用户对原有数据库的粘性没有缩小,业务开发人员的习惯并没有扭转,因而“平行替换”实用于绝对较传统的利用。 2 从集中式到分布式的架构跃迁分布式、云原生为代表的新技术的呈现,为数据库技术冲破实现弯道超车做好了实践铺垫。随同着数据应用场景的多元化,对于海量数据增长迅速、高并发读写、顶峰业务弹性需要大的业务零碎,集中式商业数据库曾经无奈撑持,从麻利开发迭代、技术自主掌控、业务连续性等角度进行评估,金融机构更偏向抉择国产分布式数据库实现架构的跃迁,这样能力在基础架构层面开拓自主翻新的路线。 从 Oracle 迁徙到 TiDB 实际金融行业对于数据库的要求极其严苛,“稳固、高可用、高并发、高扩大”是抉择适合国产数据库的多维度考量规范。TiDB 作为原生分布式数据库,已广泛应用金融、互联网、电信、能源等各行各业中的不同业务场景,在踊跃帮助企业稳步推动国产化相干工作,并总结了数据库国产化迁徙的实践经验。 为响应国家层面“放慢建设科技强国,实现高水平科技自立自强”的号召,中国人寿财险公司踊跃推动数字化转型,启动 IT 架构的整体规划工作,摸索业界先锋技术及进行分布式架构转型。在数据库的国产化迁徙过程中,依照先边缘再外围的策略稳步推动,目前已实现多个外围业务零碎从 Oracle 到 TiDB 的迁徙革新工作,同时也为后续多部署状态的架构打下了松软的根底。本文以中国人寿财险公司外围零碎的革新实际为底本,论述通过四个阶段的分步骤施行,实现从 Oralce 迁徙到 TiDB 分布式数据库。 中国人寿财险外围零碎分布式数据库革新历程 1 迁徙筹备阶段首先是对分布式数据库的选型,从数据库产品特点是否与业务场景匹配,满足业务平滑迁徙及继续倒退;是否齐全自主研发,保障产品的继续演进能力;是否有欠缺的生态建设,包含上下游工具、文档体系、培训体系;是否有宽泛的行业用户案例;是否反对云原生,满足将来的架构演进等角度进行综合评估后进行决策。 其次是迁徙革新布局,次要波及迁徙革新量分析、迁徙计划制订和回退计划制订几个方面。异构数据库之间的迁徙适配,通常波及利用零碎的革新。以保险为例,保险业务逻辑解决简单,各业务零碎之间的调用关系、实现整个交易的复杂度较高。中国人寿财险制订的策略是不再依赖关闭的商业数据库个性,而是由利用来主导业务流程实现,实现零碎散布式微服务架构的转型。利用革新剖析次要包含各零碎间调用模式、微服务的设计等。异构数据库的革新剖析,波及数据库对象革新(表构造、其余对象等)、SQL 语法革新、运维工具革新和流程变更等;通过提供的 O2T schema 比对工具,能够比对 schema 迁徙后,检测出是否有表、视图、或索引遗失的状况。 迁徙计划的制订须要联合零碎的存量数据及每日增量数据状况,制订切换前全量截面数据加截面后增量追数的迁徙形式,造成了迁徙手册及迁徙中应用的脚本工具,为后续我的项目的发展提供教训反对。借助 Kettle、SQLULDR2 与 Lightning、国产数据库同步工具、OGG 等多种模式,丰盛数据迁徙计划、实现差异化的需要,同时能够通过 o2t-sync-diff 工具比对 Oracle 和 TiDB 的快照数据正确性。 数据库是保险企业信息系统当中的要害基础设施,稳固运行是重中之重,因而也须要制订欠缺的回退计划。从 Oracle 到 TiDB 迁徙,能够应用 OGG 进行数据实时同步,反向同步通过 TiDB Drainer 工具把 Oracle 作为指标库,实现高效的反向回退。 ...

May 25, 2023 · 1 min · jiezi

关于数据库:一名开发者眼中的-TiDB-与-MySQL-的选择丨TiDB-Community

作者: 大数据模型 对制造业、银行业、通讯业理解多一点,关怀专一国产数据库技术布道以及数据资产建设的利用实际。 导读随着 MySQL 8.0 的公布和行将到来的 5.7 版本的进行反对,许多 MySQL 用户正面临降级和转型的抉择。本文为 TiDB 社区用户撰写,以一名开发者的视角,深入探讨和比拟了 TiDB 和 MySQL 的差别。心愿通过本文,能为读者在架构选型方面提供一些帮忙和领导 。 TiDB 在墨天轮国产数据库排行榜中长年位列前茅,社区活跃度高且人气旺盛。那么 TiDB 应用场景类似产品中,有哪些比拟优良呢?我认为其中一个是 MySQL——毕竟在中国,MySQL 早已深入人心,并且工程师们可能轻松地使用它。 TIDB 与 MySQL 的比照有些人间接将 TiDB 称为"大号的 MySQL",但理论状况并非如此。为了使工程师们可能像应用 MySQL 一样应用 TiDB,TiDB 在接口层进行了大量的改良。它在语法、表名、援用甚至元数据等方面尽量与 MySQL 保持一致,然而理论执行的每个语句背地都有不同的数据流程和服务流向。因而,只管在表面上它们类似,但其背地的数据处理和服务机制是不同的。 类型方面 ,MySQL 是纯正单机式数据库,TiDB 则是分布式数据库。TiDB 可能不便自在地减少节点来扩大存算能力,而 MySQL 则须要通过定向策略,如中间件路由或读写拆散等形式来减少节点以晋升性能,这使得 MySQL 的扩展性绝对受限且绝对僵化。 引擎方面 ,MySQL 领有多个引擎选项,如 MyISAM、InnoDB、Memory 等,并且能够通过插件反对更多的引擎,如 RocksDB 和 HandlerSocket 等。而 TiDB 尽管只有两个引擎选项,但却可能应答各种利用场景的需要。 架构方面 , MySQL 是偏严密耦合 ,分为接口层、服务层、存储层三个档次。接口层负责申请解决、受权认证和安全性,服务层负责查问解析、剖析、优化、缓存和零碎内置函数,存储层负责数据的存储和解决,所有这些组件都在一个服务过程中对立运行。 而 TiDB 采纳涣散耦合的架构,将数据库的要害组件进行形象,并依据其分布式个性划分为计算层、存储层和协调层。 ● TiDB 计算层相似 MySQL 的接口层,负责接管 SQL 申请,解决 SQL 相干的逻辑,并通过协调层找到存储层数据的地位。它与存储层进行交互以获取数据,并最终返回后果。 ...

May 25, 2023 · 8 min · jiezi

关于数据库:TDengine-成功晋级-Percona-Live-2023-银牌赞助商开发者驻足关注

带着翻新的数据技术走遍寰球这一次陶建辉带着 TDengine 飞到了丹佛...... 2023 年 5 月 22-24 日,一年一度的开源数据库畛域寰球最具影响力峰会 Percona Live 2023 在丹佛技术核心万豪酒店举办。Percona Live 是寰球继续举办最久的独立开源数据大会,这场为期三天的大会汇集了开源数据社群成员,内容聚焦数据库和数据管理,探讨寰球规模最大的数据库布局议题,蕴含云原生布局、性能改善以及理论案例分享,通过三天的实地操作练习、平行场次以及主题演讲,与会者能够理解到最新的数据库技术倒退、数据管理形式以及如何善用相干工具和技术。 作为企业开源数据软件和服务的领头羊,Percona 极具号召力,每一届的 Percona Live 大会都会吸引寰球数据库精英齐聚一堂,共话数据库畛域的现状与倒退。作为数据库开源技术的践行者和创新者,TDengine 也以“银牌赞助商”的身份参加了 Percona Live 2023,在会议现场,TDengine 创始人&外围研发陶建辉(Jeff)与参会者畅聊 TDengine 的泛滥开源翻新技术,让现场的开发者理解到了时序数据库(Time Series Database) TDengine 的技术劣势以及利用场景。 值得一提的是,在本次大会中,Jeff 还受邀进行了《What is the time series database and why do I need one?》的主题演讲,从时序数据的十大特点登程,他为现场开发者解读了传统的数据解决方案在应答海量时序数据处理上的缺点、时序数据库在物联网、车联网、工业互联网等时序场景下的具体利用与实际,以及时序数据库 TDengine 的翻新技术内核和开源倒退历程。 从 1.0 到 2.0 再到 3.0,TDengine 始终在大力发展技术创新,TDengine 3.0 更是成为了一款真正的云原生时序数据库,破解了困扰行业多年的“高基数”难题,流式计算和数据订阅性能也再上一层楼,打造出了极简的时序数据平台。自 2019 年开源至今,TDengine 在 GitHub 上曾经汇聚了 21.3k star,用户实例也超过了 256.6k,使用者遍布寰球。接下来,咱们的技术布道之旅还将持续在各个国家开展,TDengine 开源社区的影响力也将辐射到越来越宽泛的开发者群体中。

May 25, 2023 · 1 min · jiezi

关于数据库:数据库-Schema-变更工具进化史

数据库 Schema 迁徙可能是利用开发中危险最大的畛域 - 这个过程充斥了艰难水平、危险和苦楚,明天咱们来盘点一下最佳数据库 Schema 迁徙工具,从最根底的 CLI 到吸纳了绝对较新理念的 GitOps / Database-as-Code(数据库代码化)的工具,看看有什么工具能够缓解苦楚? 命令行客户端 CLI - mysql / psqlmysql 和 psql 是最间接的能够与 MySQL 和 PostgreSQL 交互的工具,你能够从命令行间接向 MySQL 或 PostgreSQL 服务器发送命令或查问。 尽管 CLI 界面简略,对于老手可能也不是很敌对,然而上回看到 Timescale 做的 State of PostgreSQL 2022 调研说 psql 是最风行的与 PostgreSQL 交互的工具,甚至超过了有 GUI 的工具 pgAdmin 和 DBeaver 。 图形用户界面(GUI)phpMyAdmin, pgAdminphpMyAdmin 和 pgAdmin 是十分老牌经典的 SQL 客户端。phpMyAdmin 现已倒退成治理 MySQL 和类 MySQL 数据库(比方 MariaDB)的最次要工具之一,pgAdmin 则是用于治理 PostgreSQL,当初曾经出到了 pgAdmin 4。相比 CLI 工具,phpMyAdmin 和 pgAdmin 提供了可视化的图形界面来运行 SQL 命令和执行 SQL 操作,十分易于应用。 ...

May 25, 2023 · 2 min · jiezi

关于数据库:首个机器学习实时特征平台测试基准论文被-VLDB-2023-录取

国内顶级数据库学术会议 VLDB 2023 将于 2023 年 8 月份在加拿大温哥华举办。近日,由清华大学、新加坡国立大学、以及 OpenMLDB 社区联结实现的科研成果 - 业界第一个谨严的机器学习实时特色平台测试基准,被大会录取并且受邀在现场报告。论文题目为:FEBench: A Benchmark for Real-Time Relational Data Feature Extraction VLDB(Very Large Data Base)是计算机领域最为重要和出名的学术会议之一,和 SIGMOD 并列为学术界两大影响力最大的数据库会议,专一于探讨和钻研大规模数据管理和解决。该会议会集了世界各地顶尖专家、学者和工程师,旨在分享最新的研究成果、翻新技术和最佳实际,以应答解决大规模数据所带来的挑战。VLDB 的成绩对于推动数据驱动决策、智能零碎的倒退和翻新利用具备重要意义,对计算机科学和古代社会具备深远影响。 在本次被 VLDB 所入取的工作中,三方联结团队提出了工业界和学术界的第一个面向机器学习实时特色平台的谨严的测试基准,并且进行了开源。明天,基于机器学习的实时决策曾经在金融、批发、互联网、媒体、能源、医疗等畛域被广泛应用。这一类利用个别会分为实时特色和机器学习模型两局部,其中实时特色往往也是性能和成果的瓶颈。然而业界目前还没有一个被广泛承受的针对实时特色平台的测试基准(相似利用于数据库畛域的 TPC-H, TPC-DS 等测试基准)。一个被谨严且被宽泛承受的测试基准对于推动软硬件产品迭代、产品技术升级均有重大意义。因而,联结团队的工作补救了这一空白,推出了业界首个谨严的机器学习实时特色平台测试基准。团队收集了超过 100 个实用于实时决策利用的数据集,通过聚类、定量分析等形式,最终抉择了 6 个代表性数据集以及相应的特色计算逻辑,形成了整个测试基准。团队进一步对于 Flink 和 OpenMLDB 这两款在工业界被广泛应用的实时特色平台进行了测试和比拟,分享了相干的发现和洞察。 该论文将会在往年 8 月举办的 VLDB 2023 正式公开,届时咱们也将同步发表深度解析文章,敬请关注。目前其第一版的测试基准曾经开源,详情拜访:https://github.com/decis-bench/febench 理解更多如果想进一步理解 OpenMLDB 或者参加社区技术交换,能够通过以下渠道取得相干信息和互动。 OpenMLDB 官网https://openmldb.ai/ OpenMLDB GitHub 主页https://github.com/4paradigm/OpenMLDB OpenMLDB 微信交换群

May 25, 2023 · 1 min · jiezi

关于数据库:百度云原生数据库GaiaDB的HTAP与多地多活技术实践

摘要:云原生数据库在应用存算拆散技术后,能够在齐全兼容MYSQL协定和语法的状况下,极大晋升单实例所能承载的数据规模与吞吐能力下限。但除了对客户端兼容外,对整个数据生态(地区容灾,数据分析,备份复原)的适配同样须要大量的设计优化工作。本次分享GaiaDB在跨地区/异构数据同步场景下,吞吐/实时性/一致性方面能力打造与实践经验。在2023云数据库技术沙龙 “MySQL x ClickHouse”  专场上,百度数据库资 深技术专家邱学达,为大家分享一下《百度云原生数据库GaiaDB的HTAP与多地多活技术实际》的一些技术内容。 邱学达,百度数据库资 深技术专家,次要负责分布式架构设计与数据库内核个性设计和开发。多年数据库与分布式存储开发教训,专一于分布式高可用+高牢靠架构设计与云原生化革新。在分布式性能优化、端到端可用性晋升方面具备丰盛教训 本文内容依据演讲录音以及PPT整顿而成。大家好,明天我想和大家分享的内容是百度云原生数据库GaiaDB在数据分析场景与多地多活方面的一些实践经验。 GaiaDB是百度智能云研发的一款云原生数据库,目前曾经在云上取得了宽泛的利用,承载了多个高吞吐/超大容量业务,特地是帮忙很多业务在0革新老本下,实现了服务多地区多活,在每个地区都能够实现靠近本地的低提早读取能力。在大数据量承载方面,多个线上百TB以上业务实践证明,GaiaDB在这种规模下仍然具备良好的吞吐与弹性能力。 上面我来介绍一下GaiaDB的整体架构。首先是接入层 ,接入层次要用来提供主动读写拆散/流量管制/SQL防火墙/鉴权与负载平衡等性能,业务无需保护简单的读写拆散/连接池逻辑,间接应用proxy即可享受丰盛的接入治理性能。对于有读写一致性要求的业务,还能够抉择应用主从一致性或全局强统一等多种一致性级别,解决传统架构写后读不可见导致的多种简单兼容问题。再往下是计算层,计算层仍然是多个计算节点相互负载平衡的架构。对于读场景曾经实现了无状态的横向与纵向弹性伸缩,能够实现秒级扩缩容,不便应答线上各种流动流量与突发尖峰。 对于写场景,默认仍提供基于纵向扩大的弹性伸缩能力,能够满足线上大部分业务的写吞吐需要。对于写能力的横向扩大,咱们也做了大量的技术储备,写的扩大能力次要取决于申请的抵触状况;在齐全无抵触的负载下,乐观事务能够提供近似线性的写扩大能力,然而大部分的交易类负载都是存在抵触的,在这种状况下乐观事务模型的应用体验就会变得不易承受;对于目前支流的乐观事务模型来讲,解决抵触次要应用锁机制实现,横向写扩大引入的跨节点锁协商会带来较高的事务提早与吞吐瓶颈,目前在工程上还是十分具备挑战性的。以后对于写的横向扩大咱们更多的是联合业务特点进行专属计划定制,实现业务上的整体最优解。 接下来是存储层的架构设计,对于分布式存储系统来讲,外围就是数据分区算法与数据引擎设计。数据分区算法的外围在于如何在尽量升高映射获取时延的同时,将内存耗费管制在可承受的范畴内,同时又尽量避免数据的大规模搬运。对于实时性要求越高的零碎,分区算法的设计应该层级越少、规定越简略,防止引入过多的切换耗费。而数据引擎的设计优化方向则集中在Base数据的读取优化以及增量数据(WAL)的可靠性/一致性保障上。 GaiaDB的存储引擎在设计上将Base数据与增量更新拆散到了两个子系统中,即存储子系统和日志子系统,防止了日志流与数据流的IO争抢导致各类性能问题,存储子系统能够向极 致读性能方向优化,将读IO优先级设为最高,写则能够应用异步落盘+内存动静回放技术升高对磁盘占用;日志子系统向极 致写性能方向优化,应用窗口技术+增量引擎,将写能力优化至极 致程度,读应用热数据缓存技术晋升性能。通过将读写数据流解耦别离优化,实现了资源的最大化利用。 在整体架构设计上,GaiaDB对于零碎数据一致性与可靠性方面做了重点增强。Mysql的主从切换始终是一个比较复杂的课题,在硬件掉电/网络不可达等场景下,保证数据的严格统一较为艰难。GaiaDB将原生数据牢靠能力(RPO=0)固化到零碎的根底设计之中,通过将一致性协定中的任期机制融入到整个数据链路中,新的写入任期开启后,任何过期写入都会被排除在数据流之外,确保即便产生了假死等状况,数据的完整性也齐全不会受到影响。 接下来想和大家分享一下 GaiaDB 在配合业务的剖析需要、让业务能够更高效晦涩实现数据分析的一些实践经验。很多业务在应用GaiaDB满足交易类和轻度剖析类需要的同时,还会应用Doris解决剖析型场景下的需要,Doris是由百度自研并捐献至Apache软件基金会的开源MPP数据库,在行业内取得了宽泛的利用,对于不同品种的数据分析读取需要,咱们积攒了一些老本与效率最优的解决方案,上面我来联合具体的案例进行剖析。 如图是一个典型的泛互联网产品架构:最前端是网络接入层,用于承接APP/Web发来的业务申请、聚合和散发不同子系统之间流量;前面有多个业务子系统,例如商品、订单、流动、推送等。这些用户业务零碎更关注的是数据的高并发+低提早拜访,对数据的一致性和事务隔离性也有较高的要求,同时因为线上流动或者节假日流量顶峰,对弹性和扩展性也有迫切需要,GaiaDB能够很好满足这类业务的需要。 与用户业务零碎应用同一份数据的部门往往还有另外两类,一类是后盾服务,也就是对内的客服零碎/经营保护零碎/供应链业务零碎等。这些零碎的特点是:因为只有公司内部人员应用,QPS和并发不高,但负载简单而且迭代要求高。比方经营部门常常须要进行新流动设计与配置,客服/MIS零碎则须要配合线上流动状况减少各种查问性能。因而,对于后盾类业务来讲,能用SQL和事务疾速实现简单牢靠的性能开发是刚性需要,所以SQL的功能丰富度与兼容性显得尤为重要,同时SQL的并行能力与计算下推对于这类场景的体验优化具备重要作用。 第二类则是业余的数据分析团队,数据分析团队往往承当了多维度、高复杂度的数据分析需要,所以通常应用业余的数据分析一揽子计划,这种场景下数据申请不会间接发往在线数据库,而是须要尽量实时的从在线库导入至剖析库,因而疾速、简略、牢靠的数据导入导出能力成为首要关注点。 所以针对异构剖析的需要,100%生态兼容的导入导出性能是首要+必备选项,特地是剖析型解决方案的数据同步组件都是通用而非业务自研组件,上云用云过程中批改这部分基础设施难度是十分高的。因而GaiaDB在这方面做了很多加强工作,比方基于日志流的高牢靠强统一能力原生实现了RPO=0级别的Binlog流反对能力,同时对于通用的DTS产品和社区导入导出工具,也是保障了齐全兼容和历史教训复用,不减少额定的学习老本。而对于轻度的离线剖析需要,这部分的特点是需要多变、对老本敏感、与线上服务有隔离诉求。 GaiaDB应用多入口技术支持业务在离线申请齐全隔离,对于离线类申请应用独自计算资源,不会对线上造成影响,同时充分利用存储层分布式MVCC能力,不减少额定的存储老本和数据一致性保护开销,随着离线负载的变动,对应计算资源还能够动静伸缩以进一步加强老本节俭能力。对于反对数据分区的业务来讲,GaiaDB同样兼容了该性能,数据分区能够无效升高资源争抢密度,晋升并行读取能力,对于并行剖析具备很好的提速作用。 还有一类对数据一致性要求更高的业务,如金融类产品,冀望拿到精 确到秒级的全局统一数据用于剖析,岂但从空间维度要求数据统一,从工夫维度上也冀望在剖析的过程中数据能够保障前后一致,这种场景下GaiaDB只读镜像库的能力就得以体现,在资源闲暇的低峰时段创立镜像库同时启动剖析工作,无效利用低峰时段闲暇算力。因为只读镜像无需解决写负载,所以写相干的日志子系统能够裁剪以节省成本,同时也解耦了对高性能介质的依赖。只须要计算节点+冷存储介质,联合查问并行化技术充分利用分布式IO吞吐能力,即可实现超低老本离线剖析解决方案。同时全量镜像也确保了数据严格统一,防止了增量同步可能导致的DDL解决、数据校验等简单问题,无效保障了数据的可用性与可靠性。 近几年随着业务精细化水平的晋升和基础设施规模故障危险的存在,越来越多的业务将多活能力纳入了架构设计思考的领域,业务既心愿能够取得高可用性,还想让老本管制在比拟低的水平,同时还不心愿由业务实现多份数据的同步与保护,这样就对数据库这类基础设施的多地多活能力提出了很高的要求,GaiaDB的高对称架构人造适宜多地多活形式部署,所有存储正本逻辑上齐全对称,每个正本都具备动静回放任意版本数据能力,这样就为数据就近拜访打下了松软的根底:业务申请能够主动路由到同机房计算节点,计算节点申请同机房存储正本即可读取实时数据,防止了主从架构正本导致的屡次跨机房拜访问题。同时全对称架构还能够防止故障场景下批量选主带来的服务中断与申请风暴问题,任意正本故障不会影响其余正本工作,可用性更高、提早更安稳。对于写链路则应用并行写入技术减速,最快的多数派返回即可实现写入胜利。综上,GaiaDB的同城多活架构在读写链路上都能够防止单个慢节点/机房导致的性能抖动问题,使整体性能损耗管制在很小的范畴内。 此外GaiaDB也反对跨地区热活实例组,将灾备能力晋升到了地区级,业务在地区间部署无需适配革新,即可实现就近读取低提早能力和写申请主动转发能力,无需保护简单读写入口,提供了与单地区实例统一的应用体验,帮忙大量业务实现了跨地区灾备能力。 以上就是我明天想和大家分享的内容,GaiaDB在架构设计上外围关注数据的高牢靠与高可用性,重点打造了数据的极 致牢靠保障能力、跨地区多活能力与灾备恢复能力,同时在应用体验上重视简略牢靠,实现了对生态和应用教训的齐全兼容,将用户上云门槛降至最低,让所有上云用云业务都能够享受到基础设施架构晋升带来的效力晋升,谢谢大家。本次大会围绕“技术进化,让数据更智能”为主题,汇聚字节跳动、阿里云、玖章算术、华为云、腾讯云、百度的6位数据库领域专家,深刻 MySQL x ClickHouse 的实践经验和技术趋势,联合企业级的实在场景落地案例,与宽广技术爱好者一起交换分享

May 25, 2023 · 1 min · jiezi

关于数据库:MySQL笔记六之SELECT数据查看之大于小于

本文首发于公众号:Hunter后端 原文链接:MySQL笔记六之SELECT数据查看之大于小于 SELECT 是查看数据的语法,将分为以下几个方面介绍。 SELECT 查看所有数据大于小于条件汇总默认不辨别大小写BETWEEN 的应用NULL 的过滤1、SELECT 查看所有数据如果是想查看 book 表所有行的所有字段的数据,咱们能够应用上面的语法: select * from book;SELECT 是查看插入数据的语句,* 示意所有字段,即查看所有字段的数据。 在上一篇笔记中咱们向 book 表中插入了数据,能够看到返回的数据。 对于下面这个操作有两点须要留神: 一个是返回条数的限度,在数据量小的状况下,能够不必限度条数,然而如果数据量大且不须要查看这么多数据,能够通过 limit 来限度返回调试,或者其余的条件限度来缩小数据量的返回 另一个是对于 * 这个符号,个别在晓得本人须要什么字段的状况下能够间接 SELECT 相应的字段 因为获取不相干的数据毕竟会有额定的工夫和内存的耗费用来返回数据,另一个起因是,通过指定字段咱们能够依照程序获取相应的字段数据 2、大于小于条件汇总咱们能够通过 WHERE 语句来进行条件过滤。 比方咱们须要 id 值大于 2 的数据,那么就能够应用 WHERE 来操作: SELECT book_name, author FROM book WHERE id > 2;能够看到,MySQL中的大于小于的过滤条件和其它语言的应用办法差不多,如下是对照表,摘自《MySQL必知必会》: 操作符阐明=等于!=不等于>大于>=大于等于<小于<=小于等于BETWEEN在指定的值之间(闭区间)<>不等于在以上表格中能够看到有一个值是 <> ,这个也是不等于的意思,和 != 是同样的用法,但个别举荐应用 !=。 3、默认不辨别大小写咱们能够往 book 表里插入一条数据: insert into book (book_name, author) values('HTML', 'HTML_author');接下来查问: select * from book where book_name = 'html';是能够查问到咱们插入的大写的数据的,所以这个查问默认是不辨别大小写的。 ...

May 24, 2023 · 1 min · jiezi

关于数据库:火山引擎-DataLeap-联合-DataFun-发布数据治理知识地图

更多技术交换、求职机会,欢送关注字节跳动数据平台微信公众号,回复【1】进入官网交换群近期,火山引擎 DataLeap 和技术社区 DataFun 联结公布《数据治理常识地图专业版 V1》(以下简称“地图”),地图将数据治理的畛域、流程、技术、工具等内容进行系统化整顿和分类,为从业者提供全面的学习和思路参考。 据介绍,《数据治理常识地图专业版 V1》包含引言、数据治理体系、治理流程落地、数据治理畛域、治理组织保障以及数据治理前沿六大部分,涵盖数据治理成果、场景利用、数据安全、数据指标、数据品质等从业者宽泛关注的话题。 火山引擎 DataLeap 产品专家作为参谋深刻参加《数据治理常识地图专业版 V1》的组织和编纂,其中数据治理体系局部,将字节跳动积淀的治理教训和方法论成绩全盘输入,冀望帮忙从业者和企业更好“用数”。关注“字节跳动数据平台”微信公众号支付高清版《数据治理常识地图专业版 V1》 数据治理也是火山引擎 DataLeap 外围能力之一。DataLeap 具备基线监控、数据品质、 SLA 治理等性能,为用户提供事先预警、事中解决、预先复盘及举荐优化的全生命周期的数据治理能力。在产品性能上,通过治理门户提供治理全景、工作台、布局、诊断、复盘等丰盛的产品能力,笼罩稳定性,数据品质、数据安全、老本优化、报警与起夜等一系列治理场景。 在前沿畛域,DataLeap 曾经将业界宽泛关注的 DataOps 引入产品流程中,曾经能为企业提供基于字节大数据研发流程积淀的 DataOps 麻利研发流程,具备海量工作秒级调度能力和开源计算引擎的拓展能力,实现数据全链路智慧运维。 在理念层面,火山引擎 DataLeap 翻新提出分布式数据治理理念,不仅使各个模块均可独立应用分布式治理模式,让数据治理对业务的冲击和影响最小化,还能够让业余的治理常识积淀下来,实现产品化协同,并联合智能化举荐性能,为企业晋升执行效率。 据理解,火山引擎 DataLeap 曾经利用于泛互联网、制作、新批发、汽车等畛域,帮忙客户进一步晋升数字化程度。 欢送关注“字节跳动数据平台微信公众号”,收费支付高清版《数据治理常识地图专业版 V1》。 点击跳转火山引擎DataLeap理解更多

May 24, 2023 · 1 min · jiezi

关于数据库:八款免费-开源的-SQL-客户端你值得拥有

拜访和批改数据库等操作尽管令人生畏,但却是必不可少的。过来,拜访数据库的惟一形式就是通过命令行,这样不仅不够直观,也容易出错,酿成小事。好在通过几十年倒退,曾经出了很多带有可视化界面 (GUI) 的数据库图形客户端工具可能帮忙简化「治理数据库」,他们中也不乏开源 & 收费的工具,明天看看有哪些可供选择。 SQL ChatSQL Chat 是 SQL 客户端中最年老的选手,把 SQL 客户端从传统的 GUI-based 带入了 CUI (Chat-based UI) 阶段:它背地接入了 ChatGPT 来帮你写 SQL。用户能够通过 sqlchat.ai 间接拜访,也能够通过 Docker 进行私有化部署,反对的数据库包含 MySQL,PostgreSQL 和 MSSQL。 不久前,SQL Chat 在 Product Hunt 上正式公布后,播种了大量关注,以至于公司的 OpenAI Quota 一度被薅秃。 DBeaverDBeaver 是一款老牌 SQL 客户端,除了根本的可视化和治理能力,它还有 SQL 编辑器,数据和模式迁徙能力,监控数据库连贯等等,反对的数据库(SQL 和 NoSQL)品种相当齐全。DBeaver 也曾经接上了 GPT-3,能够把自然语言转换成 SQL。 值得一提的是,DBeaver 不久前刚发表了 6M 美金的种子轮融资 (https://techcrunch.com/2023/04/11/dbeaver-takes-6m-seed-inves...),新闻稿提到 DBeaver 有超过 8M 用户,5000+ 付费用户,也是成立公司十年后的第一次融资。 Beekeeper StudioBeekeeper Studio 是款很摩登(颜值高)且轻量级的 SQL 客户端,反对 MySQL,Postgres,SQLite,SQL Server 等,可用于 Linux,Mac 和 Windows 平台。 ...

May 24, 2023 · 2 min · jiezi

关于数据库:CloudQuery-v200-发布-新增数据保护数据变更连接管理等功能

哈喽社区的小伙伴们,通过一个月的致力,CloudQuery 社区版公布了全新 v2.0.0 系列! 比照 v1.5.0,v2.0.0 在整体 UI 界面上就做了很大调整,性能排布咱们做了从新梳理,能够说,社区版 v2.0.0 率领 CloudQuery 进入了全新的产品阶段。上面,就来具体看一下吧! 从客户端首页就能够看出,与 v1.5.0 相比, 这次更新减少了很多新性能,对一些原先主打性能做了新调整,次要包含:数据保护,新增动静脱敏数据变更性能连贯治理性能受权治理性能角色治理批改明码数据保护,新增动静脱敏首先不得不提的是呼声很高的数据脱敏性能。自社区版问世以来,就一直有小伙伴提出脱敏需要。此次,v2.0 系列的第一个版本,咱们终于上线了动静脱敏性能。数据保护模块即动静脱敏,针对不同的资源设置脱敏规定。v2.0.0 反对间接对表中的某字段设置脱敏规定,脱敏算法包含范畴内随机、暗藏、随机浮动、截取、加密、替换。 数据变更性能v2.0.0 新增了数据变更性能,发现大量谬误数据时能够发动数据勘误申请。数据勘误反对 SQL 和上传附件两种形式,用户能够对勘误 SQL 进行 SQL 查看。数据勘误模式可能保证数据变更的安全性和准确性,所有变更操作均须要通过工单和SQL审核的流程,防止了数据的误操作。 连贯治理性能连贯治理是指通过 CloudQuery 对数据库服务器进行连贯配置,配置好连贯信息后即可方便快捷地连贯到数据库服务器,实现对数据库的操作和治理。v2.0.0 反对用户创立或移除数据库连贯,并纳管 PDB 级 Schema,监控和治理连贯的应用。 受权治理性能v 2.0.0 的受权治理模块可对有启用资源的连贯进行受权操作,包含新增权限、查看关联用户、查看权限的订正历史等。 角色治理v2.0.0 的角色治理定义了两层角色,即 CloudQuery 零碎角色、数据库治理角色,零碎角色负责管制用户与零碎菜单的关系,数据库治理角色则管制用户与业务之间的关系。零碎角色用于调配 CQ 零碎菜单权限,包含系统管理员、DBA角色、高级用户、普通用户、审计员;数据库治理角色用于调配连贯治理内页面性能权限,分超级管理员、管理员和普通用户。 批改明码还记得上一期 FAQ 中大家提出的管理员批改明码的问题吗?此次 v 2.0.0 上线了明码批改性能,大家可在个人信息页面批改原始明码。 从社区版 v1.5更新到 v2.0.0 咱们也筹备了具体的操作手册和更新教程,点击文末浏览原文获取!另外,配合此次版本更新,咱们将在社区外部推出一场版本介绍的互动直播,直播将在本周四早晨七点开始,欢送大家提前预约腾讯会议和视频号,增加小助手发送问题,参加互动! BinTools图尔兹,将在05月25日 19:00 直播预约CloudQuery v2.0.0 发版直播视频号快返回 CQ 官网下载安装 CloudQuery v2.0.0 ,体验下面提到的新性能吧~应用中有任何问题或意见都能够分割官网小助手,咱们期待收到您的反馈! ...

May 24, 2023 · 1 min · jiezi

关于数据库:MySQL笔记五之insert插入数据

本文首发于公众号:Hunter后端 原文链接:MySQL笔记五之insert插入数据 上一节介绍了表及字段的信息,这一篇介绍如何插入数据到 MySQL 表 向表中插入数据有两种形式,一种是指定字段,一种是不指定字段。 不指定字段的话,每条数据的个数必须满足表的所有字段,而指定字段则不须要,因为能够有一些字段是有默认值的,不指定值零碎会为该字段填上默认值,比方后面设置的 default 0。 咱们接下来用到的测试的表咱们设为 book,在 db_test 这个DATABASE 下,以下是该表的创立语句: CREATE TABLE book( id int not null AUTO_INCREMENT PRIMARY KEY, book_name varchar(45), author varchar(20))指定字段插入数据不指定字段插入数据1、指定字段插入数据以 book 表为例指定字段插入数据: insert into book (id, book_name, author) values(1, 'mysql', 'mysql_author');自增id 在创立表的时候,为 id 字段设置了自增属性,所以,插入数据的时候能够不必为其指定值: insert into book (book_name, author) values('mysql', 'mysql_author');插入多条数据 如果是想一次性插入多条数据,能够如下操作: insert into book (book_name, author) values('mysql', 'mysql_author'), ('python', 'python_author');间接将插入的多条数据用逗号分隔开 不齐全插入数据 对于一些字段,比方有自增属性的 id 字段,或者设置了 default 属性的字段,以及没有设置不容许为 null 的字段,如果插入数据的时候不指定该字段的值,那么会为其设置 null insert into book (book_name) values('mysql');而后咱们再去查看这张表的数据,能够看到没有被指定值的字段值为 null ...

May 23, 2023 · 1 min · jiezi

关于数据库:MySQL55主从同步配置

前言:本文章是在同处局域网内的两台windows电脑,且MySQL是5.5以上版本下进行的一主多从同步配置,并且应用的是集成环境工具PHPStudy为例。最初就是ThinkPHP5的分布式的连贯,读写拆散配置,当前会用代码简略测试读写拆散的成果。  数据库局部:一. 主库(master)设置。办法/步骤1:phpstudy至多开启MySQL服务,并找到配置文件mysql.ini并进入。 办法/步骤2:进入mysql-ini文件找到“[mysqld]”节点,增加以下配置,实现后重启服务。 server-id=1log-bin=mysql-binbinlog-do-db=repair_computerbinlog-do-db=jindebinlog-do-db=testbinlog-ignore-db=weiqing 办法/步骤3:验证配置是否胜利,能够应用navicat for mysql工具新建查问或者间接应用命令。 (1). 查看server-id,命令“ SHOW VARIABLES LIKE 'server_id'; ” (2). 查看主库的状态( 须要同步的数据库及不必同步的数库 下图中 file 和position 在从库配置中会用到 (每次批改主服my.ini 文件 file和position 参数都会变 )  办法/步骤4:查看主库电脑的局域网IP地址并且也增加一个给从库连贯的用户账号并调配权限(本地是测试的能够间接将root账户主机凋谢) 办法/步骤5:到这里主库master的配置就没有了。  二. 从库(slave)设置。办法/步骤1:开启MySQL服务并找到mysql.ini文件的[mysqld]节点下,增加以下配置 server-id=2log-bin=mysql-binslave-net-timeout=60replicate-do-db=repair_computerreplicate-do-db=jindereplicate-do-db=testreplicate-ignore-db=weiqing 办法/步骤2:重启服务,而后将主库的几个须要同步的数据导入到从库(表名需统一).  办法/步骤3:关上mysql命令面板,输出以下命令。(1).  stop slave;    进行从库(2). change master to master_host=’2192.168.1.112’, master_user=’repl’, master_password=’repl’, master_log_file=’mysql-bin.000003’, master_log_pos=1937;对于File 和 Position('mysql-bin.000003' 1937) 是主库配置中的第3步失去的 主库中输出命令 show master status,后面几个就是主库的IP地址和用户账号密码了。(3). start slave;    开启从库 办法/步骤4:检测主从是否买通,输出命令“ show slave status \G; ”,查看“ Slave_IO_Running ”和“ Slave_SQL_Running ”是否都为yes。 办法/步骤5:能够去主库的同步的表中轻易增加数据,而后再查看从表是否同步即可 TP5局部:主库(master)IP:192.168.1.112从库(slave) IP: 192.168.1.1021. 找到ThinkPHP5的databases.php文件,deploy设置为1(分布式),具体能够参考TP5的在线文档。  读写拆散只需将rw_separate设置为true,并且后面的IP地址默认是主库。测试读操作是否会落到从表只需将从表的某个数据进行批改而后在代码中应用查问。 

May 23, 2023 · 1 min · jiezi

关于数据库:MySQL表分区配置指南

在一些零碎中有时某张表会呈现百万或者千万的数据量,只管其中应用了索引,查问速度也不肯定会很快。这时候可能就须要通过分库,分表,分区来解决这些性能瓶颈。 一. 抉择适合的解决办法1. 分库分表。分库分表从名字上就明确是须要创立额定的新数据库或新表,能够建在其余的机器上也能够是和以后数据库同一台机器。在优化查问上可能须要买新机器或者要批改逻辑代码了。比方一张user表,当数据超过10W,就能够创立新的user表,假如是user2。通过接管的UID,和分组10W(假设),取模就是对应的user表名的索引数字。 2. 分区。分区这里是指表分区,mysql数据库管理系统提供的表性能,分区后逻辑上是同一张表,物理上数据存储是离开的。是否优化查问还取决于在查问中是否应用到了分区字段,这个就和索引的应用有点相似,然而益处就是这个不像分库分表,能够简直不批改业务逻辑代码就能够晋升速度。上面再总结一下mysql数据保留格局和innodb,myisam。 2.1. innodb存储引擎。innodb,反对事务处理,外来键,在查问方面要慢于myisam。对并发敌对,反对行锁和表锁,行锁的造成要看查问条件。有共享空间结构和独立空间结构,保留的格局有frm和ibddata1(共享构造),ibd(独立构造)。 2.1.1.共享空间结构。       共享构造为innodb默认的构造,除了frm保留innodb表构造外,整个数据库所有表的索引和数据源都保留在ibdata中。能够通过在mysql-ini中增加 innodb_file_per_table=1设置为独立空间结构。 2.1.2.独立空间结构。     独立空间结构就是每个对应的表保留对应的数据源和索引在一个后缀为ibd的文件中,表构造同样也保留在frm中。 2.2. myisam存储引擎myisam是mysql默认存储引擎,不反对事务,然而会对I/O进行平均分配,相较于innodb查问速度要快,对并发不敌对,反对表锁。格局frm同样也是表构造,myd为表的数据源,myi表的索引贮存(所以一张表的索引不是越多越好,因为在增加和批改数据时也须要对索引库进行批改和增加)  二. 表分区的几种分区类型。1. RANGE分区:基于属于一个给定间断区间的列值,把多行调配给分区。 2. LIST分区:相似于按RANGE分区,区别在于LIST分区是基于列值匹配一个离散值汇合中的某个值来进行抉择。 3. HASH分区:基于用户定义的表达式的返回值来进行抉择的分区,该表达式应用将要插入到表中的这些行的列值进行计算。这个函数能够蕴含MySQL 中无效的、产生非负整数值的任何表达式。 4. KEY分区:相似于按HASH分区,区别在于KEY分区只反对计算一列或多列,且MySQL服务器提供其本身的哈希函数。必须有一列或多列蕴含整数值。具体介绍能够搜寻以下"mysql表分区的分区类型"。  三. 表分区的创立。par格局为保留的是分区的规定,ibd就是别离为每一块分区后的数据源,以下为innodb分区,myisam的是有多个myd文件同时也存在par。 1. 新建表时增加分区。 比方以下创立一张employees 的表,并创立了list类型的4个分区,以store_id 字段为分区字段。 CREATE TABLE employees ( id INT NOT NULL, fname VARCHAR(30), lname VARCHAR(30), hired DATE NOT NULL DEFAULT '1970-01-01', separated DATE NOT NULL DEFAULT '9999-12-31', job_code INT, store_id INT)PARTITION BY LIST(store_id) PARTITION pNorth VALUES IN (3,5,6,9,17), PARTITION pEast VALUES IN (1,2,10,11,19,20), PARTITION pWest VALUES IN (4,12,13,14,18), PARTITION pCentral VALUES IN (7,8,15,16)); 2. 存在的表增加分区将原来的数据以以后的分区规定对原来数据进行规整,以下是对ztest表增加range类型的3个分区,以id字段为分区字段。 ...

May 23, 2023 · 1 min · jiezi

关于数据库:线下|0527|StarRocks-Friends-杭州站

StarRocks & Friends 是由 StarRocks 社区发动的城市线下 meetup,旨在联结社区与行业的专家小伙伴们分享基于 StarRocks 的最佳实际、大数据分析的前沿技术和 StarRocks 生态交融等热门话题。不远千里奔赴,只为与你相聚。这个夏天,让咱们以技术会友,一起体验社区的魅力!杭州的敌人们你们好,我是你们的老朋友@StarRocks 小助手。自从一年多前咱们相约西子湖畔的约定被从天而降的疫情给打乱了之后,咱们终于等来了机会兑现承诺了!这次,咱们将携手滴滴出行、吉利汽车、聚水潭、贝联珠贯等好搭档们一起摸索交换 StarRocks 的最佳实际和大数据畛域最前沿的技术,共享贵重的教训!具体的流动细节与流动报名请见下方海报! 立刻报名加入,与 StarRocks 的专家敌人们一起摸索 StarRocks 的魅力! 期待与你相见!(报名通过后将收到短信告诉,入场签到时须出示短信作为入场凭证) 流动地点: 向上空间咖啡馆( 浙江省杭州市余杭区文一西路1218号16-3) 交通形式: 创景路 地铁站-地铁19号线 716米创景路 地铁站-地铁5号线 728米良睦路 地铁站-地铁5号线 827米 开源之父理查德·斯托曼(Richard Stallman)曾说过:"分享常识是友情中最根本的行为,因为这是一种你能够无需失去本人的货色而给予别人的形式。"所以,让咱们一起交个敌人吧! 马上填写问卷提交你的分享议题,如果你的议题通过了,咱们还将提供你相干的交通和食宿补贴。扫描下方二维码,提交议题,敌人们,让咱们下个月上海站见! https://tl-tx.dustess.com/SRPPYwF6HY

May 23, 2023 · 1 min · jiezi

关于数据库:OceanBase-41解读我们支持MySQL-80哪些新增功能特性

本文次要介绍 OceanBase 在 4.1 版本公布之际,对 MySQL 8.0 新增性能个性的反对状况。文章作者刘彬,OceanBase高级技术专家。曾参加 OceanBase RS、存储模块研发,目前是 SQL 执行组负责人。 MySQL 在业内是最受欢迎的关系数据库之一,不少用户将 MySQL 作为刚开始应用数据库的首选。 OceanBase 的一大重要个性即是与 MySQL 齐全兼容,用户无需批改代码即可实现数据库的降级迁徙,也大幅升高了开发者的学习老本。 作为齐全自主研发的数据库,OceanBase 从 1.0 版本开始便在 MySQL 兼容能力研发上投入了大量工作,并实现了 SQL 语法、数据类型、零碎函数等全面的 MySQL 兼容能力。 随着 MySQL 的倒退和用户应用需要的变动,OceanBase 的 MySQL 兼容版本也从 5.6 倒退到 5.7 再到 8.0。始终为用户带来简略敌对的开发体验。只管目前 5.7 版本仍然是许多 MySQL 用户业务的主力版本,但随着官网对 5.7 版本的反对终止(MySQL 5.7 将于 2023 年 10 月完结官网反对,from: https://www.oracle.com/us/support/library/lifetime-support-te...),也将会有更多 MySQL 用户将业务更换至 MySQL 8.0。 OceanBase 4.1 对 MySQL 的兼容策略是齐全兼容 5.7,同时反对 8.0 性能。相较于 MySQL 5.7,8.0 版本在性能、安全性、可用性等方面都有显著晋升,同时也新增了许多性能个性。 在笔者看来,MySQL 8.0 最重要的新增性能个性有如下几项,本文也将介绍 OceanBase 在 4.1 版本公布之际对这部分性能的反对状况: ...

May 23, 2023 · 4 min · jiezi

关于数据库:大数据如何助力营销5活动复盘

在市场竞争日益强烈的明天,营销流动曾经成为吸引用户、晋升品牌影响力、减少销售转化的重要伎俩。然而,一场营销流动在举办后,往往难以评估流动的成果,而大数据技术将从方方面面、迷信无效地复盘流动,并为下一次举办活动提供教训。 那么,如何利用大数据技术进行营销流动的复盘呢?这里咱们能够参考以下几个步骤: 1.回顾指标。在流动复盘之前,先要明确流动指标是什么,以及该如何掂量指标的实现状况。如果指标是减少用户注册量、进步用户留存率、晋升用户购买志愿等,那么就须要设定相应的注册率、留存率、转化率指标,并且设定正当的期望值或者基准值。 2.评估后果。在营销流动完结后,咱们须要收集剖析相干数据,比照理论后果和预期指标的差别,找出流动的劣势和有余。能够看看哪些渠道或者平台带来了更多的流量和转化,哪些流动内容或者模式更受用户欢送,哪些环节或者因素影响了用户的体验和满意度。 3.剖析起因。在评估后果的根底上,深刻探索导致后果差别的根本原因,从主观和主观两方面进行剖析。能够剖析市场环境、竞争对手、用户需要等客观因素对流动的影响,也能够剖析咱们本身在流动策动、执行、优化等方面的有余和失误。 4.总结经验。在剖析起因的根底上,总结本次流动的经验教训,并提出改良措施和倡议。总结出哪些流动策略或者办法是无效的,哪些是有效或者有待改良的,以及下一次流动应该如何调整和优化。 通过以上四个步骤,咱们就能够利用大数据技术进行营销流动的复盘,并为下一次流动提供有价值的参考和领导。 当然,这只是一个简略的示例,具体的复盘过程还须要依据不同的行业、业务、指标和数据进行灵便调整和利用。但无论如何,大数据技术都是咱们进行营销流动复盘的弱小工具。 接下来,让咱们看看一个具体的行业案例,来感受一下大数据技术在营销流动复盘中施展的作用。 餐饮行业:公众点评 餐饮行业是一个与消费者密切相关的行业,在挪动互联网时代,“酒香不怕巷子深”的景象曾经成为过来,消费者的消费行为曾经悄悄发生变化,越来越多的餐饮企业开始利用本地生存生产平台等渠道进行全方位整合营销,从而获取更多价值。 而作为中国当先的本地生存信息及交易平台之一,公众点评网就是一个典型的利用大数据技术进行营销流动复盘并提供优化倡议的案例。 公众点评网于 2003 年 4 月成立于上海。公众点评不仅为用户提供商户信息、生产点评及生产优惠等信息服务,同时亦提供团购、餐厅预订、外卖及电子会员卡等交易服务。公众点评联合挪动大数据,通过主打的“点评”性能理解用户需要,定制特色推送服务。它每年都会举办“美食节”、“美食极限周”等各种主题性强、笼罩宽泛、持续时间长、参与度高的营销流动。这些流动不仅可能吸引消费者参加并减少平台流量和支出,同时也可能收集海量的用户数据,并通过大数据分析技术进行深度开掘和利用。 例如,在 2021 年 9 月份举办的“美食极限周”中 ,公众点评网通过对用户行为数据(如搜寻、浏览、打分、点评、购买等)进行剖析,并联合商户信息(如地位、类型、价格等),实现了以下几个方面: 精准举荐:依据用户爱好和历史行为,在首页展现最适宜用户口味和估算的美食商户,并提供优惠券或折扣信息。 智能排序:依据用户地位和工夫,在搜寻后果中依照间隔、人气、评分等综合因素对商户进行排序,并实时更新。 动静调整:依据用户反馈和市场变动,在流动期间对商户优惠力度和数量进行调整,并及时告诉用户。 成果评估:依据用户参与度和转化率,在流动完结后对各个商户和渠道进行成果评估,并给出优化倡议。 通过这样一系列的大数据技术利用,公众点评网不仅可能进步用户满意度和忠诚度,同时也可能帮忙商户晋升品牌知名度和销售额。据统计 ,2021 年“美食极限周”期间: 公众点评网平台日均流量达到 1.5 亿次; 参加商户超过 10 万家; 用户生产金额超过 10 亿元; 用户均匀节俭金额达到 30%; 用户均匀点评数增长 50%; 用户均匀打分增长 0.5 分。

May 23, 2023 · 1 min · jiezi

关于数据库:AIGC-及衍生工具的收费模式

OpenAI 有一系列模型,各自具备不同能力和定价。比方 GPT-4 是一个大型的多模态模型(当初承受文本输出并收回文本输入,未来会有图像输出),GPT-3.5 模型能够了解并生成自然语言或代码,DALL-E 能够依据自然语言的形容发明出真切的图像和艺术。 模型的价格则是依照 token 来计算的,token 和字符的对应关系差不多是 100 tokens ~= 75 个英文词语 / 100 个中文字,下图比照了同样一段话须要的 token,中文差不多是英文须要的三倍。 比方 GPT-3.5 模型系列中最具备老本效益的是 gpt-3.5-turbo,当初的价格是 $0.002 / 1K tokens,还是很划算的。 定价模式个别分两大类: 终身制:属于一次性买断,不限量订阅制:有月付/年付,会有 limit,超过了可能会限量、限速(大多数软件会抉择应用这个模式)基于 OpenAI API 的工具1. SQL ChatSQL Chat 是收费的,不过因为公司的 OpenAI API 天天被薅完,要应用 SQL Chat 的同学请在 Setting 里填上本人的 OpenAI API key。 置信 CEO 每天收到这个邮件的情绪也是相当的简单 。 万众期待的付费版很快就会推出,敬请刮目相待❤️ 2. ChatPDF能够上传你的 PDF 文件,并且问 ChatPDF 机器人对于你的 PDF 的问题。它能够收费应用(不过有限度),然而注册登录了能力保留聊天记录, $5 的月费能够解锁更多容量。 3. SiteGPTSiteGPT 能够依据你网站的内容来训练人工智能聊天机器人,答复网站访问者的问题。 ...

May 23, 2023 · 1 min · jiezi

关于数据库:如何使用-Bytebase-快速实现-SQL-自动化

本文作者乔克,原文链接。 数据库在每个企业都占据的十分重要的地位,它存储着一个公司的命根子。对于数据库的治理也十分的复杂多变,很多公司都有业余的DBA团队在治理。 然而,不管有无DBA,对数据库的操作都不会变少,而且都面临着雷同的问题: 不是在提数就是在修数的路上不是在审核SQL就是在审核SQL的路上不是在找历史记录就是在找历史记录的路上不是在备份就是在备份的路上还有十分多相似的工作,这就让DBA的工作变得枯燥乏味。 我不是DBA,仅仅是一个懂一点 SELECT * 的运维工程师,心愿能有一个工具可能帮忙开发、DBA甚至运维升高数据库的操作门槛,心愿它具备: 流程审批性能主动纠错能力主动备份能力主动公布能力历史操作记录一键回滚能力版本记录能力领有这些能力,能够让日常的操作变的简略,高效。数据库管理者也有工夫去做更有意义的事件。 在过程的过程中,应用过不同的数据库管理工具,比方 Yearning、SQLE,它们实质上只是一个数据库治理平台,能够记录日常的操作记录,也能实现流程审批等能力。然而它们仍旧是一个一个的孤岛,无奈间接买通开发、DBA 之间的部门墙。 那有什么工具能够比它们更好? 也是偶尔的机会,发现 Bytebase 这个我的项目,它的有点在于能够买通 Gitlab -> 数据库,这样开发能够在 Gitlab 中治理 SQL 语句,其余的主动交给 Bytebase 去实现。 什么是BytebaseBytebase团队把它定位成面向开发者牢靠的数据库CICD,它不仅仅是数据库管理工具,更是连贯开发和DBA的桥梁。 它到底具备什么样的能力呢? SQL审核SQL纠错SQL编辑器GitOps备份复原多租户治理装置部署说一千,道一万,不如手中过一遍。 这里,我抉择在Kubernetes中部署。 Step 1-首先,部署PG数据库apiVersion: v1kind: PersistentVolumeClaimmetadata: name: postgres-pv-claim labels: app: postgresspec: storageClassName: longhorn accessModes: - ReadWriteOnce resources: requests: storage: 20Gi---apiVersion: apps/v1kind: Deploymentmetadata: name: postgres labels: app: postgresspec: selector: matchLabels: app: postgres replicas: 1 strategy: rollingUpdate: maxSurge: 25% maxUnavailable: 25% type: RollingUpdate template: metadata: labels: app: postgres spec: containers: - name: postgres image: postgres:15.2 imagePullPolicy: IfNotPresent resources: requests: cpu: 100m memory: 100Mi limits: cpu: 4 memory: 8000Mi env: - name: POSTGRES_PASSWORD value: '123456' - name: POSTGRES_USER value: 'bytebase' - name: POSTGRES_DB value: 'postgres' - name: PGDATA value: /var/lib/postgresql/data/pgdata ports: - containerPort: 5432 name: postgresport volumeMounts: - name: localtime mountPath: /etc/localtime - name: data-disk mountPath: /var/lib/postgresql/data volumes: - name: localtime hostPath: path: /usr/share/zoneinfo/Asia/Shanghai - name: data-disk persistentVolumeClaim: claimName: postgres-pv-claim---apiVersion: v1kind: Servicemetadata: name: postgresspec: selector: app: postgres type: NodePort ports: - name: postgres port: 5432 targetPort: protocol: TCP须要给PG的数据做长久化,不然数据失落就白忙活一场。 ...

May 22, 2023 · 2 min · jiezi

关于数据库:加速信创生态建设-焱融科技与优炫软件完成兼容性互认证

近日,北京焱融科技有限公司(简称“焱融科技”)自主研发的焱融分布式文件存储产品 YRCloudFile 与北京优炫软件股份有限公司(简称“优炫软件”)的优炫数据库管理系统 V2.1,经单方协同测试,已实现兼容性认证,单方产品齐全兼容,运行稳固,安全可靠,可为各类信息化利用提供保障。此次焱融科技与优炫软件的生态联结,一方面为企业提供平安、稳固、牢靠的数据管理解决方案,助力企业实现数据对立治理,独特满足企业对数据管理的各种需要;另一方面,焱融科技拥抱国产化大浪潮,踊跃牵手根底软件国产代替,进一步欠缺信创产业链生态,减速数据基础设施国产化过程。 优炫软件作为一家业余从事数据库、数据安全产品及服务的提供商,保持要害核心技术自主翻新,建设了以数据库技术为外围的多个系列产品,造成了生态产品集群,以解决各行业数据利用及平安需要。优炫数据库管理系统 V2.1 是企业级数据库,产品合乎 SQL 国际标准与国家、行业多类数据库规范,能提供齐备的数据存储和数据管理等性能,实现单机、分布式存储、大规模并行处理、实时利用集群与云端多种模式部署模式,满足事务型与剖析型业务场景。优炫软件以“让中国人用上本人的数据库”为己任,为更多用户提供优质牢靠,业余平安的产品、解决方案及服务,已胜利服务政府、金融、军工、能源、医疗、教育等多个畛域的企业用户,助力全行业数字化转型降级。 焱融科技作为一家软件定义存储产品和解决方案的国家高新技术企业,实现中关村高新、“专精特新”等企业认证。在分布式存储等关键技术上领有自主知识产权,致力于打造面向云 +AI 时代的数据存储基石。YRCloudFile 软件是焱融科技自主翻新研发的一款高性能分布式文件存储产品,基于灵便的 SDS 架构,既具备传统并行存储的高性能,又满足企业要害业务和新兴业务需要的存储系统。作为企业级存储,提供 DataLoad、冷热数据分层、大数据反对等数据全生命周期治理性能和计划;反对 200Gb/400Gb Infiniband 网络及 NVIDIA GPUDirect,产品性能达到行业当先。不仅可宽泛用于企业级的文件共享,大容量数据存储、大数据反对等通用场景,还能更成熟地利用于智能汽车、多模态 AI、HPC 高性能计算、生物信息、GIS 等高性能计算利用场景。焱融科技全面适配国产化及周边生态,实现与多家信创平台 X86、海光、鲲鹏、统信等芯片及操作系统的兼容性互认证,推动信创产业倒退及数据安全可控。 数据是数字化实现的新引擎,数据库是所有应用软件运行的根底。此次,焱融科技与优炫科技的产品兼容性认证顺利完成,依靠焱融科技在分布式文件存储畛域的深耕厚植,以及优炫软件在国产数据库研发方面的技术积淀,不仅为后续单方的单干打下了松软的根底,还为放慢我国软件产业外围技术创新,促成我国全面自主把握产品核心技术,解决数据库“卡脖子”之忧,打造高性能高可用高牢靠的国产数据库发明了良好的开始,助力全行业数字化转型降级,减速传统产业向数字化、智能化的转型步调,推动数字经济慢步倒退。

May 22, 2023 · 1 min · jiezi

关于数据库:PostgresML|几乎蹭上了所有热点向量数据库-AI-Serverless-Postgres

前几天看到一条新闻,PostgresML 融了 4.7M 美元种子轮。这是凑上了能够蹭的简直所有热点:Postgres,向量,数据库,Serverless,AI。 PostgresML – PostgreSQL 扩大PostgresML 是一个开源的 PostgreSQL 扩大,你能把机器学习(ML)模型无缝集成到你的 PostgreSQL 数据库,应用 SQL 查问对文本和表格数据进行训练和推理,这也大大降低了利用开发的复杂性。 在人工智能暴发的时代,PostgresML 简化了对于基础设施要求,开发者们又可能集中精力回到打造应用程序了。 比方你要开发一个由最近大火的 Auto-GPT(训练 ChatGPT 变成自主人工智能的我的项目)驱动的应用程序,就能够应用 PostgresML 作为它的一个内存后端。当然,你也能够间接用向量数据库,不过你须要调用 OpenAI 的 API 和一个数据库来存储和业务逻辑相干的数据,PostgresML 原生将向量嵌入等人工智能工作间接带到了数据库中,实践上来说用一个货色应该是比用两个更不便的。 PostgresML 应用了 pgvector 扩大提供的向量数据类型来存储和索引嵌入,所以如果你正在应用 pgvector 的话,能够思考快进到 PostgresML(当初还能够收费试用),看看它到底好不好用。 PostgresML: 公司除了 PostgresML 扩大),PostgresML 公司还有一个产品:PgCat,在 2022 年 2 月被开源,PgCat 是个 PostgreSQL 连接池 / 代理(PG 连接池这块利用最广的解决方案是 PgBouncer),反对分片、负载平衡、故障转移等等。看工夫应该是先有了 PgCat 而后有了 PostgresML。 小做了一些 stalking️,PostgresML 的 CEO Montana Low 之前就在 PgCat 的一个用户 Instacart 下班,而后 22 年 4 月创建了 PostgresML。 ...

May 22, 2023 · 1 min · jiezi

关于数据库:线上问题处理案例出乎意料的数据库连接池-京东云技术团队

导读本文是线上问题解决案例系列之一,旨在通过实在案例向读者介绍发现问题、定位问题、解决问题的办法。本文讲述了从垃圾回收耗时过长的表象,逐渐定位到数据库连接池保活问题的全过程,并对其中用到的一些知识点进行了总结。 一、问题形容大促期间,某接口超时次数增多,经排查间接起因是GC耗时过长,查看监控FullGC达500ms以上,接口超时工夫与FullGC产生工夫吻合。 图1 FullGC耗时监控 二、利用根本状况容器:8C12G;JVM配置:-XX:+UseConcMarkSweepGC -Xms6144m -Xmx6144m -Xmn2048m -XX:ParallelGCThreads=8 -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70 -XX:+ParallelRefProcEnabled;数据库类型:MySQL;数据库连接池:DBCP;三、排查过程1、 GC耗时过长,阐明内存中垃圾对象很多。 2、 首先狐疑是否有内存透露,察看FullGC后堆内存回收状况,尚属失常,临时排除内存透露起因。 图2 产生FullGC后堆内存回收监控 3、 推断FullGC耗时过长是否因为老年代有大量死亡对象,遂导出FullGC前后堆内存dump,通过比对“保留大小”,发现FullGC后大量数据库相干对象被回收。 图3 堆内存对象剖析 4、 数据库连贯失常应该不会频繁创立和断开,进入老年代后,失常不应该被回收,通过堆dump内容OQL剖析每个数据库连贯数量,发现很多库连接数都大于“maxActive”数量,能够必定有很多生效连贯。 5、 初步判断间接起因是很多生效数据库连贯进入老年代,导致FullGC耗时过长。 6、 狐疑连接池验证周期过长,导致数据库因闲暇过长敞开连贯,将连接池参数“ timeBetweenEvictionRunsMillis”由1分钟调整到10秒,问题仍旧。 7、 浏览DBCP源码,发现是通过 org.apache.commons.pool.impl.GenericObjectPool.Evictor定时工作,依照timeBetweenEvictionRunsMillis配置的周期定时驱赶生效连贯,驱赶条件:若连贯闲暇工夫大于“minEvictableIdleTimeMillis”,则会驱赶连贯,期待垃圾回收。若开启“testWhileIdle”则会执行“validationQuery”。进一步浏览代码,发现执行“validationQuery”后,连贯闲暇工夫并不会从新计算,导致连贯在业务低谷时很容易被淘汰,而数据库连贯会关联大量对象,创立、回收老本低廉,并且影响GC。 8、 反向思考,为何只有在大促期间才产生问题? 图4 平时和大促时回收频率比照 能够看到平时因为业务量小,GC不频繁,过期连贯没有达到进入老年代阈值,在年老代被回收。而大促时业务量大,GC频繁,连贯在进入老年代当前才过期,导致老年代FullGC工夫过长。 9、 至此,根本能够必定问题起因是数据库连接池不具备“保活”能力,导致连接不断淘汰和新建,在业务顶峰时段,连贯进入老年代而后生效,造成FullGC耗时过长,最终导致接口超时次数增多。 四、解决方案计划1:改为G1回收器,对老年代回收是分块进行,能够避免长时间进展。另外默认MaxTenuringThreshold值是15,能够避免生效连贯过早进入老年代; 计划2: minEvictableIdleTimeMillis设置为0,使数据库连贯不会主动生效,进入老年代当前始终存活,防止在老年代生效回收; 五、问题总结数据库连接池并不具备通常了解的“保活”能力,数据库连贯在业务不沉闷的利用中,会一直淘汰和重连,而连贯会通过虚援用形式( com.mysql.jdbc.NonRegisteringDriver$ConnectionPhantomReference)携带大量对象,如果连贯存活工夫内YGC次数达到寿命阈值,则会进入老年代,老年代是应用“标记-革除”算法,回收老本更高,进而造成FullGC耗时过长。 六、拓展知识点1、 Druid连接池同样存在不能“保活”问题,较新版本提供“KeepAlive”选项(未验证); 2、 Druid连接池配置的“validationQuery”语句通常并不会被执行,MySqlValidConnectionChecker在查看连贯有效性时,会判断驱动是否实现pingInternal办法,如果实现则会通过此办法验证有效性。MySQL的JDBC驱动实现了该办法,因而“validationQuery”配置的语句通常不会执行; 图5 连贯有效性校验代码 3、 DBCP和Druid连接池默认都是FILO,如果业务不忙碌,会导致只有最前边的连贯被应用-偿还-应用,后边连贯根本都在无谓的驱赶、重建连贯; 4、 虚援用对GC的影响:这些援用只有通过两次GC能力被回收掉,如果进入老年代,则必须通过两次FullGC能力开释内存。本例中因为一直有新的虚援用对象在老年代生效,导致FullGC后,内存水位依然偏高,会加剧GC压力。新版本JVM已对此做了优化,一次GC能够回收掉; 5、 相似的影响还有finalize办法; 6、 CMS回收器默认MaxTenuringThreshold为6,而ParallelGC和G1均默认15; 结语本文对数据库连贯生效引起的GC问题进行了详细分析,心愿读者通过本文对数据库连贯“保活”机制、GC问题根本分析方法有所收益,后续该系列文章会持续推出其余案例分享。 作者:京东批发 王利辉 内容起源:京东云开发者社区

May 22, 2023 · 1 min · jiezi

关于数据库:MySQL笔记四之表的创建及字段介绍

本文首发于公众号:Hunter后端 原文链接:MySQL笔记四之表的创立及字段介绍 库的下一级单位是表,表再往下是字段,所以这一篇笔记咱们先介绍一下表字段,而后再介绍如何创立表的操作 表字段介绍创立表查看表信息1、表字段介绍这里介绍几种罕用的字段类型: varchar 可变长字符,这个可变针对的是 MySQL 底层对该字段存储的长度是可变的 比方咱们给某字段定义 varchar(100),当咱们插入数据,给该字段传入 10个字符,或者100个字符都是能够的,MySQL 会依据给定字符串来存储长度 与之对应的是 char 这是定长字符,当咱们定义 char(100),咱们能够存储 10个字符,也能够存储100 个字符,但不论咱们存多少, MySQL 在底层对这个字段都会给出 100 个字符长度存储 varchar 字节可存储范畴为 0-65535,但实际上并不能真的存储这么长的字节数 如果字节长度不超过 255,则须要一个字节来存储长度, 如果长度超过255则额定须要两个字节来存储长度 还有一些其余的起因,导致 varchar 的最大存储长度是会小于 65535 的 int 整型,用于贮存证书,四个字节,一个字节八位,所以存储的范畴 -2 ^ (48 - 1) ~ 2 ^ (48 - 1) - 1,也就是 -2^31 ~ 2^31 - 1 datetime 日期工夫,包含年月日时分秒的数据 text 文本字段,能够存储 65535 个字节到 64kb 的数据,记住一点,text 字段是个筐,啥都往里装。 2、创立表以下是创立一张表的根本语法: create table if not exists table_name( id int not null auto_increment primary key, name varchar(100) not null, num int default 0);在咱们进入 MySQL 之后,use 一个 DATABASE 就能够运行下面的创立表的命令。 ...

May 21, 2023 · 1 min · jiezi

关于数据库:MySQL笔记三之远程连接MySQL服务

本文首发于公众号:Hunter后端 原文链接:MySQL笔记三之近程连贯MySQL服务 咱们前两篇笔记对于 MySQL 命令的操作都是基于在服务器上,如果咱们想用在其余机器上近程连贯这个这个 MySQL,用 Navicat 或者 workbench 来操作,如果不对 MySQL 服务器做一些设置,就会呈现回绝登录的提醒。 workbench 是 MySQL 官网举荐的一个工具,在之后的笔记里,咱们的操作都是在 workbench 里实现。 咱们一共须要对 MySQL 进行两处操作: 更新表的操作配置文件的批改1、更新表的操作咱们应用 root 用户进入 MySQL 服务: mysql -u root -p而后执行以下命令: use mysql; # 进入mysql这个 DATABASEshow tables; # 查看都有哪些表select host, user from user; # 查看一下用户以及相干用户容许登录的 host#而后抉择你的要近程登录的用户,比方我间接应用的是 hunter 用户,update user set host = '%' where user = 'hunter' ;执行完这一步之后,如果近程登录还是失败,而后尝试批改一下配置文件 2、配置文件的批改去 /etc/mysql 的文件夹下找一个名为 my.cnf 的文件,或者这个文件里没有,就到这个文件夹下的 conf.d 文件夹或者 mysql.conf.d 文件夹下找相似的配置文件,比方 mysqld.cnf 应用 vim 编辑该文件,可能须要 sudo 权限 ...

May 20, 2023 · 1 min · jiezi

关于数据库:MySQL笔记二之DATABASE操作与编码

本文首发于公众号:Hunter后端 原文链接:MySQL笔记二之DATABASE操作与编码 这一篇笔记介绍 DATABASE 相干操作 DATABASE 相干操作DATABASE 编码1、DATABASE 相干操作首先通过 root 账号,或者后面咱们创立的 hunter 账号进入 MySQL 服务 这两者对于咱们,接下来的操作影响都不大,因为咱们只是须要对数据库的数据进行操作。 MySQL 的构造应该都理解,库->表->字段,大略是这三级。 其中,DATABASE 就是咱们的库。 查看 DATABASE 通过上面的命令查看以后用户的数据库: SHOW DATABASES;这个命令输出后,就会列出以后用户能够应用的所有的数据库 如果是想依据关键词来搜寻,加上 like 操作: show databases like '%db%';留神:数据库命令对于大小写是不敏感的,比方下面的命令,小写写成 show databases 也是能够的 创立 DATABASE 如果咱们想创立一个名为 db_test 的数据库,命令如下: create database db_test;而后执行 show database 能够看到刚刚创立的 DATABASE 应用 DATABASE 在上一步列出数据库后,如果要应用某个数据库,应用 use 命令,假如数据库为 db_test: use db_test;而后就会进入到这个数据库,就能够查看这个数据的相干信息,比方查看所有表,查看某张表数据等操作 如果是想切换到另一个数据库,比方,切换到 db_test_2,间接反复下面的命令,替换 DATABASE 的名称即可: use db_test_2;这样就切换到了 db_test_2 数据库 留神: 在每一次进入 MySQL 之后,如果要操作表,都须要应用这条命令才能够操作表数据 删除 DATABASE ...

May 19, 2023 · 1 min · jiezi

关于数据库:国产BI与国外BI谁更适合中国企业以tableau和瓴羊Quick-BI为例

这些年,国内企业引入BI工具晋升企业数字化治理能力的越来越多,市面上的BI工具也开始目不暇接起来,这给许多企业在进行BI工具选型的时候带来了“幸福的懊恼”——BI工具,到底应该选哪家,是选国外的,还是国产的?哪一种更适宜咱们中国企业?明天,就用国外和国产BI工具中的两个代表:tableau和瓴羊Quick BI作为例子,和大家认真聊一聊两者的区别。 先说tableau。tableau成立于2003年,在20年不到的工夫里就曾经成为了寰球BI行业的巨头。在世界权威钻研机构Gartner公布的《寰球商业智能和剖析平台魔力象限评估报告》中,tableau长年处于领导位置,市场占有率、技术能力、价格与服务等方面表现出色,与微软的powerbi并驾齐驱,是海内市场中应用最宽泛的BI工具之一。 tableau反对大多数常见的数据源,反对多源关联,能够较疾速地在企业外部落地利用,开掘企业数据价值。Tableau在数据分析与数据可视化方面性能比拟丰盛,但报表性能偏弱,解决“中国式报表”能力有余,业务较简单时须要依附第三方数据处理工具或者数据仓库。此外,tableau和其余国外BI工具一样在本土化方面体现欠佳,存在售后服务响应不够及时,要求用户具备肯定的IT根底、应用门槛偏高,生成后果不能和钉钉等国内软件互通等问题。因而,tableau在国内一些外资企业、跨国公司中利用更多。瓴羊Quick BI等国产BI工具最大的劣势就是能够依照国人的应用需要、应用场景设计产品,本土化做得更好。比方在面对简单的“中国式报表”时,瓴羊Quick BI能向企业客户提供多种报表工具和数据统计性能,例如多级表头、表头合并,区块着色、行列主动扩大等,轻松搞定简单难弄的“中国式报表”。在可用性方面,国产BI工具都很器重应用门槛的升高,个别都向低代码甚至是零代码方面倒退,比方瓴羊Quick BI的即席剖析工具,就能让使用者通过简略的拖拽生成个性化的图表和数据分析后果。操作简略,不懂编程也能疾速上手。此外,瓴羊Quick BI等国产BI还能与钉钉、微信、飞书等泛滥国内外平台进行绑定,从而第一工夫将数据分析后果通过这些工具分享给相干领导、共事,大大晋升企业的运行效率,缩小沟通老本。所以,在抉择BI工具时,品牌并非是必须的,瓴羊Quick BI等国产BI在很多方面不输甚至胜过进口BI。  

May 19, 2023 · 1 min · jiezi

关于数据库:瓴羊Quick-BI帆软finebi等助力中国企业加速BI国产化替代进程

这些年,中美贸易摩擦一直,中兴、华为等企业都曾受到来自东方国家的“特殊照顾”。一系列“卡脖子”事件的产生敲响了互联网产业平安的警钟,也让瓴羊Quick BI、帆软finebi等国产BI工具代替外国BI工具的步调进一步放慢。 通过长时间的技术积攒和国内企业的不断创新,在互联网行业的多个细分畛域,咱们曾经实现了国产软件对国外软件的逐渐代替,这其中就包含了商业智能与数据分析畛域。 在过来,以tableau和微软Power BI为代表的国外BI工具在中国市场占据主导地位。因为技术上的先发劣势,这些国外BI工具在性能丰富性、数据可视化方面体现较为杰出,尽管存在着本地化利用有余、售后服务响应慢等问题,仍旧是国内企业们的首选。 而在这几年,随着瓴羊Quick BI、帆软finebi等国产BI的崛起,中国企业在降级数字化时有了新的抉择。比方间断四次入选Gartner魔力象限ABI报告的瓴羊Quick BI,在数据可视化等能力方面的体现曾经不输国外BI产品。瓴羊Quick BI不仅向客户提供了数十种可视化图表工具,如比拟类图表、热力地图等,更通过自在画布、信息图组件、动态效果等能力将数据可视化和场景叙事技术有机联合,实现了对企业数据的深层开掘及全面剖析,无效洞察数据之下的商业逻辑,为企业管理者的精准决策提供更多帮忙。 而做数据报表起家的帆软,其推出的finebi工具最突出的亮点便是弱小的数据分析能力。帆软finebi不仅可能与各类常见数据平台、关系型数据库疾速对接,更可能帮忙企业中的技术人员、数据分析师等高效解决简单的中国式报表,全面晋升企业的运行效率。 此外,在本地化与服务撑持方面,瓴羊Quick BI、帆软finebi等国产BI相比于国外产品都要好太多。比方瓴羊Quick BI能与钉钉、微信等国内办公社交软件绑定,从而将数据分析后果、数据监控预警等信息通过这些软件进行分享,晋升企业外部沟通效率。而帆软finebi依据大量中国企业的实际案例和国人的治理逻辑,提供了多种高效“中国式报表”解决工具,使其在国内市场取得了宽泛的好评。 所以,对于将来想要落地BI工具的企业来说,思考到国产化的大趋势,间接抉择瓴羊Quick BI、帆软finebi等国产品牌,能够少走很多弯路。

May 19, 2023 · 1 min · jiezi

关于数据库:Windows下Hive环境搭建教程

前言:Hive是一个基于Hadoop的数据仓库工具,以一品种SQL的HQL语句操作Hadoop数据仓库(HDFS等)。所以本地windows装置前须要先搭建Hadoop。后面文章曾经大略介绍了环境搭建和踩坑汇总,所以这里也仍旧只是介绍根底的装置办法。因为对于Hive的装置,网上其实有很多文章,这里更多的是小北在装置过程中的遇到的各种坑的汇总以及解决办法。  环境:windows10hadoop2.7.73. mysql-connector-java-5.1.7-bin.jar4. hive2.1.1繁难装置:Hadoop本地搭建,略过。Hive下载安装,环境变量配置,略过。3. Hive config配置。(1). 找到hive的conf下的以下四个文件再按上面形式批改。创立目录。(1). 先将mysql-connector-java-5.1.7-bin.jar文件挪动到hive的lib中,如下。 (2). 当初hive根目录下创立一个my_hive再创立以下四个目录。 批改hive-env.sh(1). 找到hive的conf下的hive-env.sh并增加以下几个配置。 批改hive-site.xml(1). 找到hive的conf下的hive-site.xml。(2). 批改以下几个选项。<property> <name>hive.exec.local.scratchdir</name> <value>${java.io.tmpdir}/${user.name}</value> <description>Local scratch space for Hive jobs</description></property><property> <name>hive.downloaded.resources.dir</name> <value>E:/2setsoft/1dev/apache-hive-2.1.1/my_hive/resources_dir/${hive.session.id}_resources</value> <description>Temporary local directory for added resources in the remote file system.</description> </property><property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://localhost:3306/hive?characterEncoding=UTF-8&amp;createDatabaseIfNotExist=true</value> <description> JDBC connect string for a JDBC metastore. To use SSL to encrypt/authenticate the connection, provide database-specific SSL flag in the connection URL. For example, jdbc:postgresql://myhost/db?ssl=true for postgres database. </description> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> <description>Driver class name for a JDBC metastore</description> </property> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>root</value> <description>Username to use against metastore database</description> </property><property> <name>javax.jdo.option.ConnectionPassword</name> <value>root</value> <description>password to use against metastore database</description> </property>在Hadopp上创立HDFS目录(1). 创立以下目录并授予777权限。 ...

May 19, 2023 · 1 min · jiezi

关于数据库:学术加油站|基于LSMtree存储系统的内存管理最大限度降低IO成本

本文系北京理工大学科研助理牛颂登所著,本篇也是 OceanBase 学术系列稿件第 10 篇。欢送拜访 OceanBase 官网获取更多信息:https://www.oceanbase.com/ 「牛颂登:北京理工大学科研助理,硕士期间在电子科技大学网络空间平安研究院从事聚类和强化学习相干算法钻研,在利用聚类钻研个性化在线学习和强化学习的处分函数设计方向获得了肯定成绩,目前钻研方向为机器学习和数据库相结合的畛域。」 明天分享的论文是"Breaking Down Memory Walls in LSM-based Storage Systems. PVLDB, 14(3): 241-254, 2020. doi: 10.5555/3430915.3442425 " 心愿浏览完本文,你能够对基于 LSM-tree 存储系统的内存治理有新的播种,当然也能够有不同认识,欢送在底部留言探讨。 明天为大家带来的这篇论文是加州大学的陈罗博士 2020 年发表于 PVLDB 的一篇论文:次要内容是其提出了一种动静的基于 LSM-tree 的存储系统的内存治理构造,以及依据工作负载动静调节写内存和缓冲区缓存内存调配的调优器,并在 AsterixDB 上别离以不同工作负载模式对单 LSM-tree 和多 LSM-tree 下的内存治理和内存调优器进行了性能测试。 自适应的内存治理构造LSM-tree 被广泛应用于古代 NoSQL 零碎中,如 LevelDB、RocksDB、Cassandra、HBase、X-Engine、AsterixDB 等。与传统的就地更新构造不同,LSM-tree 采纳了非就地更新设计:首先在内存中缓冲所有写入,它们随后被刷新到磁盘,以造成不可变的磁盘组件;磁盘组件被定期合并,以进步查问性能和回收废除记录所占用的空间。与所有的页面都在共享缓冲池中治理的就地更新零碎相比,LSM-tree 引入了额定的内存墙,这些内存墙是指各个内存区域之间妨碍无效内存共享的阻碍。 图1 基于 LSM-tree 的存储引擎构造 以图 1 为例,总内存被划分为存储内存组件的写内存和存储不可变页面的磁盘缓冲区缓存。在这样的一个构造中存在三道内存墙,首先是为内存组件被调配固定的大小,例如 RocksDB 为每个内存组件设置了大小为 64MB 的限度,而 AsterixDB 规定最大可写的数据集个数为 N 个(N 默认是 8),也就是说每个沉闷的数据集只能失去 1/N 的总的写内存。这样做的益处是比拟不便,而且肯定水平上能保障鲁棒性[1],但因为固定或者平均分配不是最优的调配办法,因而可能对系统的性能有负面的影响。 图2 论文提出的自适应的内存治理构造 ...

May 19, 2023 · 2 min · jiezi

关于数据库:豆浆油条肉夹馍西安银行的挑战开始了

本文讲述了西安银行数据库降级的故事。欢送拜访 OceanBase 官网获取更多信息:https://www.oceanbase.com/ 西安银行(600928. SH)是一家以国外大型银行、国内央企、中央国企、民营企业为次要策略投资者的区域性股份制商业银行。自1997年成立以来,历经财务重组、引进战投、企业更名、跨区域经营、综合化倒退、数字化转型等策略步骤,成为东南首家A股上市银行。 截至2022年12月31日,公司员工3273人,下设总行营业部、9家省内分行、10家区域支行和12家直属支行等在内的共177家营业网点,控股2家村镇银行,参股1家汽车金融公司。线下网点笼罩区域,线上业务辐射全国。近些年来,西安银行业务提速,业绩增长飞快,间断两年入选了“寰球银行品牌价值500强”。 豆浆、油条、胡辣汤,油茶、面皮、肉夹馍……西安人喜爱用一顿丰硕的早餐开启美妙的一天,但对于西安银行科技部的工作人员来说,这却是一天新挑战的开始:几十万单并发领取需要会朝着西安银行的零碎汹涌而来。 “大家早上都要赶时间,如果领取速度慢或者常常报错,会十分影响客户的应用体验和满意度。”西安银行 OceanBase 系统升级项目经理朱攀通知咱们。这其实只是西安银行所面临挑战的一个缩影,而西安银行的解题思路也很“间接”:那就是用更先进的技术去撑持业务的倒退和翻新。 数字化策略后行,OceanBase上场随着数字化转型的推动,西安银行线上渠道服务增长迅速。在其刚上线的第一年,资管平台账户就轻松冲破了百万,业务量根本每年都有一倍增长,“咱们会预判传统技术架构是否在将来两三年持续撑持这么高增长的用户申请量,另一方面,产品开发迭代速度在传统 IT 体系架构下是否可能赶得上业务倒退的需要也是亟需思考的问题。”西安银行科技部工作人员回顾。 基于以上两点思考,2017年底,西安银行提出 “将互联网开放平台在将来两到三年内实现分布式革新,要逐渐将银行信息系统由传统集中式架构转向多节点运行、数据分布存储、动静负载平衡的分布式架构”, 以更好地适应互联网时代业务高弹性、高并发、高交融的个性。 西安银行认为一个真正意义上采纳散布式微服务化的零碎,肯定是从利用设计、技术框架、数据库设计等方面全面采纳分布式技术。只有进行了全面革新的零碎能力充沛享受微服务分布式框架所带来的技术红利。 2017 年,西安银行开始启动互联网金融开放平台分布式架构的降级。其中,数据库分布式革新是难度最大、最重要的一环。2019 年 5 月 11 日,西安银行胜利实现了互联网金融业务平台的 MySQL 数据库以及互联网交易资金存管平台的 Oracle 数据库向 OceanBase 分布式数据库的平滑迁徙,成为国内首家实现将要害业务零碎的 Oracle 数据库在线平滑迁徙至 OceanBase 分布式数据库的银行。2020 年,西安银行又陆续实现了其余业务零碎的降级。第一个“吃螃蟹”的银行彼时, OceanBase 2.1 版本在 Oracle 兼容性的反对上才刚刚起步。所以,对于 Oracle 兼容性的开发过程能够说是与西安银行共建的过程。 ▋ 兼容性开发共建“尽管过后 OceanBase 本人也有对于 Oracle 兼容的开发排期,但如果有来自内部的客户需要,咱们会将客户的需要放在第一优先级,尽量做到让客户利用不做批改,就像应用 Oracle 一样应用 OceanBase。”OceanBase 交付与服务部服务管理部总监王春辉介绍。 据西安银行团队回顾:数据库迁徙我的项目的第一个阶段(2018 年 11 月开始),OceanBase 团队就基于西安银行的业务零碎在不断丰富 Oracle 兼容性的相干性能,比方银行金融利用会广泛应用 Oracle 序列来生成流水号,但 OceanBase 原生兼容的 MySQL 并没有序列的概念——如若不反对序列则须要对整个利用零碎进行较大的革新,老本微小。就在这时,OceanBase 疾速响应,在第一工夫将兼容 Oracle 序列的 OceanBase 输入给了西安银行。 ...

May 19, 2023 · 1 min · jiezi

关于数据库:常见的数据库-schema-变更错误

rake db:migrate -- 这是任何 Ruby 开发者都晓得的一个命令。然而咱们在同一个 rake(耙)上踩了多少次? 在文章鲜为人知的 PostgreSQL 个性中,@be_haki 形容了 18 个许多人不晓得的 Postgres 个性。我很喜爱这篇文章,它启发我写了「反性能」-- 在可能是利用开发中危险最大的畛域工作时,每个人都应该防止的事件 -- 所谓的「schema 迁徙」。 这是我在关系型数据库畛域中最喜爱的话题之一。咱们都记得 MongoDB 是如何带着两个明确的信息进入舞台的: 「网络规模」(让咱们领有开箱即用的分片)和 「无 schema」(让咱们防止设计 schema,容许充沛的灵活性)。在我看来,这两个流行语都是过于简单化了,然而如果你有审查和部署关系型数据库的 schema 变更的教训,你可能会了解扩大 schema 变更过程中的艰难水平、危险和苦楚。我的集体问题是:在我本人公司应用 Postgres 的 17 年多工夫里,以及在为 GitLab、Chewy、Miro 等其余公司提供征询时,设计/审查/部署了 1000 多个迁徙我的项目。在这里,我将分享我所学到的货色,形容我所犯的或察看到的一些谬误 -- 这样下次你可能就会防止这些谬误。 此外,帮忙人们防止此类谬误的强烈欲望促使我创造了数据库实验室引擎 -- 一种用于薄型克隆数据库的技术,对于开发和测试来说是必不可少的。有了它,你能够在 10 秒内克隆一个 10 TiB 的数据库,测试 schema 变更,并在部署前理解危险。本文探讨的大多数状况都能够通过这样的测试轻松检测进去,而且能够在 CI/CD 流水线中主动实现。 像平常一样,我将专一于 OLTP 用例(挪动和网络应用),对于这些用例,超过 1 秒的查问执行通常被认为是太慢了。这里探讨的一些案例在流动少的小型数据库中很难留神到。但我很有信念,当你的数据库规模增长到 ~10 TiB,其负载达到 ~105-106 个事务/秒时,你会遇到其中的大部分状况(当然,有些状况会在更早的时候呈现 -- 除非刻意阻止)。 我倡议你浏览 GitLab 的优良文档 -- 他们的迁徙格调指南充斥了智慧,是由那些有教训的人写的,他们以齐全自动化的形式向大量的实例(包含 GitLab.com 自身)部署了许多 Postgres schema 变更。 ...

May 19, 2023 · 5 min · jiezi

关于数据库:MySQL笔记一之安装与用户创建

本文首发于公众号:Hunter后端 原文链接:MySQL笔记一之装置与用户创立 从这一篇笔记开始记录 MySQL 的相干笔记。 以下是本篇笔记的目录: MySQL 的装置获取零碎初始化用户明码MySQL登录批改root用户明码创立新用户MySQL服务启动与敞开1、MySQL 的装置如果是装置 MySQL,这里举荐装置在 Linux 零碎。 为什么呢,因为 Windows 上装置比起 Linux 上来说着实过于简单。 如果没有 Linux 环境,这里举荐几种可能的路径。 找一台本人淘汰掉的电脑,独自给其装一个 ubuntu 零碎Windows 10 应该是自带 ubuntu 子系统的应用 VMware 虚拟机装置一个 ubuntu 子系统应用 Docker 起一个 MySQL 的容器以上这几种形式都是我之前的实际中实现胜利过的形式,能够抉择一种。 当初咱们默认曾经在一个没有装置 MySQL 的 Linux 零碎里。 咱们应用上面的命令来装置: sudo apt-get install mysql-serversudo apt-get install mysql-client在执行下面两条命令的时候,有时候会弹出两次对话框,须要你输出 root 用户明码,一次输出,二次确认,如果遇上这种状况,间接确认输出想要设置的 root 明码即可。 或者有时候零碎间接给咱们装置完了,没有提醒咱们输出 root 明码,那咱们就不晓得怎么登录 MySQL,这时候能够看下一步操作。 2、获取零碎初始化用户明码有时候在 Linux 上装置完 MySQL,没有要咱们输出明码,这时候咱们就须要去零碎里找它的初始密码,而后批改。 首先确保咱们的 MySQL 服务是运行中的,通过上面的命令: sudo service mysql restart而后去 /etc/mysql 目录下,能够看到一个名为 debian.cnf 的文件,内容大抵如下: ...

May 18, 2023 · 1 min · jiezi

关于数据库:GaussDBfor-MySQL-云原生数据库技术演进和挑战

摘要:GaussDB(for MySQL)是华为自研云原生数据库,具备高性能,高扩大,高牢靠的特点,齐全兼容MySQL协定,自研架构和敌对的生态兼容性,能够同时满足数据库管理员、利用开发者、CTO的运维、应用和业务倒退需要,本次次要介绍GaussDB(for MySQL)在云原生技术方向上遇到的挑战和将来的倒退演进门路。 在2023云数据库技术沙龙 “MySQL x ClickHouse”  专场上,华为云数据库高级产品经理周家恩,为大家分享一下《GaussDB(for MySQL)云原生数据库技术演进和挑战》的一些技术内容。 周家恩,华为云数据库高级产品经理,10年以上数据库技术运维,产品治理教训,先后在多家TOP云厂商任职产品经理,相熟MySQL,SQL Server等多款数据库治理,保护以及商业经营工作,现任华为云数据库高级产品经理,负责原生数据库GaussDB(for MySQL)产品治理和设计,经营工作。   本文内容依据演讲录音以及PPT整顿而成。 大家好,先让我自我介绍一下。目前我在华云数据库团队负责数据库产品经理,次要负责MySQL畛域的产品布局。明天我带来的主题是《GaussDB(for MySQL)云原生技术的演进和挑战》。 让咱们先来看一下华为数据库的倒退历程。可能在许多人的眼中,华为是以硬件起家的公司。但实际上,华为数据库的倒退曾经开始了十几年,起步十分早。在云这块的话有几个阶段,咱们次要分成两条线:开源和云原生数据库。 开源方面,咱们波及到的是RDS和MySQL。而对于云托管,咱们早在2014年15年左右就开始了外部业务的应用。此外,咱们还推出了云原生数据库,其中包含云原生MySQL。亚马逊在2014年推出后,很多云厂商都一直地在借鉴和学习。在2018年和2019年,咱们公布了第一个商用版本。 在咱们看来,云原生数据库与存储的可用性、可靠性和性能密切相关。华为的企业级存储在中国市场领有十分不错的市场占有率,因而咱们将云原生数据库与华为的企业级存储严密交融。随着架构和技术的一直演进,咱们在2019年推出的商用版本,这就是咱们华为数据库倒退的历程。 让咱们来理解一下GaussDB(for MySQL)的零碎架构。GaussDB(for MySQL)是一款基于存算拆散架构的云原生数据库,齐全兼容MySQL协定,并由华为自主研发的分布式存储系统作为底层撑持。它采纳active架构,相比传统开源架构,不须要备库进行数据同步,从而节俭了用户的老本。最要害的一点是,GaussDB(for MySQL)采纳日志即数据架构,这一架构最早由亚马逊的Aurora推出。该架构的劣势在于优化了MySQL事务提交门路,从而显著晋升了整个事务提交的性能。 让咱们先来理解一下咱们在性能方面做了哪些工作。通常来说,云原生数据库在性能方面当先于传统架构。咱们通过实测发现,在写入性能方面,咱们的性能是开源架构的七倍。这次要归功于咱们的架构设计。 咱们采纳了存算拆散架构,不同厂商的设计会有所不同,但咱们的设计与亚马逊的Aurora比拟类似,能够说华为的架构与亚马逊最靠近。咱们采纳了日志即数据架构,即在整个事务写入时,咱们会间接进行REDO落盘即事务提交,不须要再从计算节点刷脏页到磁盘,从而大幅缩小了整个事务提交的网络负载和开销。因而,咱们的写入性能比开源架构和没有采纳这种架构的厂商都要高。 本次流动中咱们次要探讨MySQL x ClickHouse,在TPCH畛域,咱们也做了很多优化工作,并开发了并行查问技术,从而在性能方面获得了很大的晋升。 上面看一下咱们在性能这块做了一些优化。 就并行查问而言,目前咱们在TPCH的22个SQL中的整体性能晋升能够达到26倍。华为在并行查问方面所做的一些工作与其余厂商也稍有不同。 就目前在云原生数据库畛域比拟大的几家友商来说,例如Aurora,在并行查问这个方面,它是通过将算子下推到存储引擎上来实现的。而亚马逊并不是在SQL引擎这一层面进行并行操作,它次要是充分利用了其分布式存储来晋升性能。而像国内其余友商,则次要是在SQL引擎层面进行并行操作。 其实咱们做了两个方面的工作。一方面,在SQL引擎层面,咱们实现了并行操作,就像上一页所讲的那样。另一方面,咱们还实现了NDP算子下推,充分利用了分布式存储的性能,将底层存储资源充分利用起来。咱们对简单的算子、Filter、Projection、谓词包含比拟运算等进行了下推优化,同时也对疾速列和虚构列进行了下推。因而,在简单查问方面,咱们称之为“双轮驱动”,这也是咱们与其余厂商不同的中央。接下来,看下理论的性能体现。 这个就是开启NDP在TPCH场景下的一个性能体现。开启当前,最高场景是能够就是计算到网络之间的开销。开源的MySQL在进行大的简单查问时,咱们须要将数据从磁盘传输到计算层进行计算,会有大量网络开销,而通过算子下推技术,TPCH解决多个SQL时,咱们看到网络开销的最高节俭率超过90倍。在性能方面,咱们测试了NDP+PQ场景,该技术品牌被称为NDPQ。性能体现最高晋升高达30倍以上。 在可用性方面,咱们的DFV反对跨AZ能力。目前,华为云国内的主力region包含上海、北京、广州、贵阳、乌兰察布等都反对3AZ部署。将来,3AZ部署也将成为华为云GaussDB(for MySQL)的默认架构。往年咱们正在开明的节点中,包含香港、曼谷以及拉美、中东等地区。在欧洲,咱们与德国电信和法国电信单干,推动GaussDB(for MySQL)全球化过程。咱们的跨AZ能力能够实现RPO=0,保证数据的高可靠性。 对于扩展性,咱们晓得在云上应用MySQL数据库,它更适宜互联网业务,尤其是互联网、游戏和电商等用户。当然,当初政企客户也越来越多地上云,咱们也为此做了节点的主动扩大,以满足更多不同类型客户的需要。目前,我集体感觉当初云有一个十分重要的的趋势倒退,其中一个要害的趋势是HTAP。另外,Serverless也是一个重要的趋势。咱们能够看到,像亚马逊去年的invent大会上最外围的公布之一,就是所有数据库开始向是Serverless化发展。 在云上除非技术实力特地强之外,用户最关注的问题就是老本。因而,咱们提供了一种相似于Serverless的服务,反对按需主动弹性扩大。这是咱们晚期推出的一个雏形,其中包含主动弹性扩大周期和按需模式。因为采纳了存算拆散架构,加节点的弹性过程十分疾速,个别只须要五到十分钟即可实现。因而,它的速度比传统的MySQL快得多。传统的MySQL在数据量一直减少时,进行规格变更和加节点所需的工夫十分长。 在备份方面,咱们的存储采纳基于AppendOnly模式的DFV存储。咱们实现了秒级快照,这是咱们本人开发的快照零碎。咱们进行了测算,发现大概1TB的数据备份复原只须要三四十分钟即可实现。 咱们还将在今年年底推出backtrack性能,该性能基于存储的多版本个性,用户能够在抉择的工夫点范畴内进行回溯操作,往前或往后。咱们能够将1TB数据这个级别的回溯工夫管制在五分钟以内。 再看数据库代理服务,咱们目前反对用户按需购买服务。默认状况下,咱们不提供代理服务。如果用户有需要,能够按需购买读写拆散服务,无需对其业务进行任何改变即可主动实现读写拆散。 咱们往年对读写拆散进行了大量的优化,其中包含基于负载平衡模式的反对,咱们还依据业务特色,反对用户抉择最终一致性、会话一致性和全局一致性三种一致性级别。 咱们的代理服务反对只读模式和读写模式。如果用户须要在剖析型业务和交易型业务之间进行物理隔离,能够抉择只读模式。在只读模式下,代理服务会为用户创立不同的只读节点,从而实现对剖析业务和交易业务的物理隔离。 接下来介绍咱们的HTAP只读剖析节点。这是咱们在HTAP畛域中一直推动的一步。正如我之前所述,咱们在简单查问方面采纳了并行查问和算子下推等技术。然而这些还不足以满足所有用户的需要,因为这2个技术实质上仍在同一份数据上进行操作,也就是说还是在整个一套零碎外面。 因为大家都晓得,在做TPCH这样的场景时,对整个资源的耗费是不可控的。一个剖析业务可能会影响到交易型业务。为了解决这个问题,咱们开发了只读剖析节点,它基于ClickHouse实现。通过CDC模式,咱们能够将用户交易数据从GaussDB(for MySQL)同步到ClickHouse。正如之前的嘉宾所介绍的,咱们也是采纳了基于binlog的计划。 咱们目前还处于公测阶段,次要服务于华为外部的终端消费者,例如华为手机、手环和静止衰弱等业务。这些业务的一部分剖析业务曾经迁徙至咱们的只读剖析节点上。 对于并行创立索引,咱们都晓得社区版的MySQL在创立索引时是单线程操作,无奈实现多线程。因而,如果要创立一个较大的索引,耗时会十分高。为了解决这个问题,咱们开发了多线程的索引创立性能,多线程被设计用于从存储读取数据、排序以及创立索引等操作。通过测试,该性能相比于开源版本的MySQL,能够晋升性能六到七倍。 在咱们后续产品的演进中,Serverless将是一个十分要害的方向。咱们打算在往年上半年(五六月份)进行Serverless的公测,下半年则会正式商用。在Serverless畛域,咱们曾经做了很多摸索。目前业内最为杰出的Serverless产品是亚马逊的Serverless V2。尽管亚马逊在最后推出的Serverless V1曾经引起了不少关注,但它仍存在某些局限性,例如扩缩的粒度和速度可能不够现实。然而随着Serverless V2的推出,它的扩缩粒度能够达到0.5 ACU,而且端到端的感知速度只需十秒钟。因而,过后的亚马逊Serverless V2能够说是引领了整个云原生数据库Serverless的发展趋势。 咱们还在技术方面进行了很多翻新。其中,咱们实现了疾速弹性的缓冲池(buffer pool),并在内核层面对其进行了减速。通过这一技术,咱们能够实现毫秒级的扩大,从而在端到端的运行过程中,通过外部环境测试后,可在大概十秒钟内(甚至可能更快,大概八秒左右)实现。 咱们还摸索了一些技术,例如ALT利用通明迁徙。在Serverless畛域,跨机操作是一个关键点。在单机内,咱们能够绝对简略地实现弹性伸缩,然而在云上,咱们须要思考如何跨多台物理机经营,如何扩充资源池规模。这带来的问题是资源池水位可能会比拟高,在扩大过程中可能会呈现资源有余的状况,这时咱们须要跨机操作,因而保障迁徙的平稳性和不中断就显得尤为重要。咱们实现了ALT利用通明迁徙技术,通过事务状态放弃等形式,实现了安稳迁徙。 在Serverless畛域,咱们曾经实现了按需付费的存储,计算层打算在往年五六月份推出,而Serverless代理层预计会在今年年底推出。 最初再看一下咱们的几个案例,其中第一个种子用户是国内比拟大的保险公司。他之前应用的是Oracle,但因为国产化的需要和去O的需要,他们抉择了咱们的服务。因为咱们的服务能够部署在私有云上,咱们通过一些专家服务和相干工具对该公司业务进行评估,并将其迁徙到GaussDB(for MySQL)。迁徙实现后,该公司的TCO升高了50%。 咱们的另一个案例是华为终端。整个业务规模十分大,涵盖了华为整个手机业务、汽车业务以及利用商店等实例,实例数量能够达到十分大的规模。以前,因为线下的自建数据库存在许多痛点,他们有一个宏大的DBA团队来保护。常常面临可用性和运维相干的问题,以及如果产生切换,可能会面临数据失落的状况。 迁徙到GaussDB(for MySQL)后,他们面临的问题像数据失落就曾经不存在了。此外,咱们一直演进,扩大了主动弹性伸缩等个性。让用户的老本升高了40%左右。同时,他们以前应用了商业的剖析型数据库软件,也开始逐渐应用咱们的HTAP剖析只读节点,这进一步升高了整体的老本。 好,那我明天分享就到这里,谢谢大家。 本次大会围绕“技术进化,让数据更智能”为主题,汇聚字节跳动、阿里云、玖章算术、华为云、腾讯云、百度的6位数据库领域专家,深刻 MySQL x ClickHouse 的实践经验和技术趋势,联合企业级的实在场景落地案例,与宽广技术爱好者一起交换分享。

May 18, 2023 · 1 min · jiezi

关于数据库:图数据库-NebulaGraph-的内存管理实践之-Memory-Tracker

数据库的内存治理是数据库内核设计中的重要模块,内存的可度量、可管控是数据库稳定性的重要保障。同样的,内存治理对图数据库 NebulaGraph 也至关重要。 图数据库的多度关联查问个性,往往使图数据库执行层对内存的需求量微小。本文次要介绍 NebulaGraph v3.4 版本中引入的新个性 Memory Tracker,心愿通过 Memory Tracker 模块的引入,实现细粒度的内存使用量管控,升高 graphd 和 storaged 产生被零碎 OOM kill 的危险,晋升 NebulaGraph 图数据库的内核稳定性。 注:为了同代码放弃对应,本文局部用词间接应用了英文,e.g. reserve 内存 quota。 可用内存在进行 Memory Tracker 的介绍之前,这里先介绍下相干的背景常识:可用内存。 过程可用内存在这里,咱们简略介绍下各个模式下,零碎是如何判断可用内存的。 物理机模式 数据库内核会读取系统目录 /proc/meminfo,来确定以后环境的理论内存和残余内存,Memory Tracker 将“理论物理内存”作为“过程能够应用的最大内存”; 容器/cgroup 模式 在 nebula-graphd.conf 文件中有一个配置项 FLAG_containerized 用来判断是否数据库跑在容器上。将 FLAG_containerized(默认为 false)设置为 true 之后,内核会读取相干 cgroup path 下的文件,确定以后过程能够应用多少内存;cgroup 有 v1、v2 两个版本,这里以 v2 为例; FLAG默认值解释FLAG_cgroup_v2_memory_max_path/sys/fs/cgroup/memory.max通过读取门路确定最大内存使用量FLAG_cgroup_v2_memory_current_path/sys/fs/cgroup/memory.current通过读取门路确定以后内存使用量举个例子,在单台机器上别离管制 graphd 和 storaged 的内存额度。你能够通过以下步骤: step1:设置 FLAG_containerized=true; step2:创立 /sys/fs/cgroup/graphd/,/sys/fs/cgroup/storaged/,并配置各自目录下的 memory.max; step3:在 etc/nebula-graphd.conf,etc/nebula-storaged.conf 增加相干配置 --containerized=true--cgroup_v2_controllers=/sys/fs/cgroup/graphd/cgroup.controllers--cgroup_v2_memory_stat_path=/sys/fs/cgroup/graphd/memory.stat--cgroup_v2_memory_max_path=/sys/fs/cgroup/graphd/memory.max--cgroup_v2_memory_current_path=/sys/fs/cgroup/graphd/memory.currentMemory Tracker 可用内存在获取“过程可用内存”当前,零碎须要将其换算成 Memory Tracker 可 track 的内存,“过程可用内存”与“Memory Tracker 可用内存”有一个换算公式; ...

May 17, 2023 · 2 min · jiezi