定义现代化实时数据仓库,SelectDB 全新产品形态全面发布
导读:9 月 25 日,2023 飞轮科技产品发布会在线上正式召开,本次产品发布会以 “新内核、新图景” 为主题,飞轮科技 CEO 马如悦全面解析了现代化数据仓库的演进趋势,宣布立足于多云之上的 SelectDB Cloud 云服务全面开放,增加了全新的私有仓库(BYOC)产品模式,同时发布了更加自主可控的 SelectDB Enterprise 企业版。飞轮科技联合创始人兼 COO 连林江介绍了基于 SelectDB 的多个场景解决方案以及生态合作模式,来自同盾科技、趣丸科技以及观测云的多位客户代表为大家分享了基于 SelectDB 的架构升级在真实业务场景中带来的收益,未来飞轮科技将坚持以“客户价值”为出发点引领技术革新、以“开放共赢”为核心理念携手更多合作伙伴,为行业注入新的活力。以下内容根据飞轮科技 CEO 马如悦演讲内容整理:
免费试用 SelectDB Cloud:https://cn.selectdb.cloud/
距离上一次产品发布会已经有近一年的时间,在这一年的时间里,我们对于技术趋势、对于客户服务、对于市场需求都有了更加深度的思考,因而我们的核心产品 SelectDB 也有了更加长足的进步,因此很高兴可以给大家分享这一年我们所取得的成果——这就是我们今天发布会的主题 “新内核、新图景” ,新内核指的是 SelectDB 产品内核将全面采用最新发布的 Apache Doris 2.0 版本,新图景指的是新的产品定位与产品形态,接下来将为大家一一阐述。
数据仓库的现代化趋势
纵观数据仓库的发展历程,数据仓库的演进经历了三个阶段,第一阶段即在 2010 年之前,以 Teradata、Greenplum、IBM Netezza 为代表的传统数据仓库占据主流。 2010 年前后,随着谷歌三驾马车的问世,基于 Hadoop 的大数据平台成为大数据分析的基座,成为第二阶段的事实标准。如今已经进入第三阶段,现代化的数据仓库产品开始涌现,这些产品兼顾了传统数据仓库的可靠性和性能优势,以及对大数据的高效处理和实时分析能力。
总体而言,数据仓库的三大现代化趋势为实时分析、湖仓融合以及云原生化。
实时分析:大规模实时数据上的极速查询
随着时间的推移,数据的利用价值逐步下降
过去,大多数企业使用的传统数据仓库/大数据平台主要是对历史数据进行批量分析,如果能对数据进行实时分析并将分析结果实时运用到业务之中,毫无疑问将会进一步利用好数据的实时价值并驱动业务进步。因此到如今时代,数据分析逐渐从原来的批量处理演变到现在的实时处理。
以业务分析需求的变化为例,越来越多的企业开始采用实时报表和实时仪表盘展示数据,取代了传统跑批任务生成的报表。而从批量生成的静态报表到交互式分析也是另一个典型趋势,过去我们只需要跑一份静态报表,而现如今现在很多公司内部都有大量的数据分析师,需要与系统进行快速互动实时产出分析结果。此外,数据结果不再仅限于人使用,逐渐转向为机器和算法使用的实时决策系统。这些变化清晰地展现了一个新的趋势:数据从批量处理逐渐转向实时分析已成为必然。
与此同时,过去数据分析系统主要是给内部的运营决策或数据统计来使用,而随着业务的发展、数字化转型的深化,越来越多的数据分析开始面向业务的外部客户,主要场景包括广告营销报表、物流实时看板、保险客户分析和交易明细查询等。这些都是数据分析需求由内到外的转换,这种转变也要求我们的分析系统能够适应更多样化的业务场景。
在应对大规模数据的实时分析时,核心挑战来自两个方面:
- 随着数据实时写入数据库,我们面临的挑战之一是如何以更低的延迟提供数据。我们需要降低数据传输和处理的延迟,以提高数据的新鲜度,并及时处理最新数据的变化。
- 对于上层数据应用而言,如何提供更快的查询、降低查询耗时。我们需要持续优化查询性能,提高查询的快速响应度,以满足上层数据应用的性能需求。
SelectDB 实现了大规模实时数据的极速查询
那么 SelectDB 是如何解决实时分析的难点呢?一方面是 SelectDB 实现了 大规模数据的实时导入与实时存储:
- 秒级的数据实时更新(主键表)与追加:SelectDB 实现了实时数据的秒级可见,在主键表和非主键表上实现了高效的实时更新和追加,相比之下,许多传统数据仓库甚至包括现在广泛使用的 Snowflake 和 Redshift 往往只能支持批量更新、甚至没有主键表的支持,很难实现高频率的实时更新。
- 数据库 CDC / Kafka 流式数据同步:实时数据仓库的上游数据源往往来自 TP 数据库或 Kafka 消息队列 ,为此 SelectDB 内置了数据库的CDC(变更数据捕获)功能以及 Kafka 的流式数据同步功能,能够实现秒级的数据同步。
- 毫秒级轻量化表模式修改:不止数据可以实时写入和更新,对于表的模式(Schema)也需要进行快速变更,以适应当今快速变化的业务环境。而 SelectDB 能够毫秒级提供 Schema 修改的功能,同时 Schema 修改期间完全不影响在线业务的运行
- 丰富的半结构化数据类型支持:随着不同类型的数据不断增加,半结构化数据类型也日益常见。SelectDB 通过引入 Array、Map、JSON 等数据结构,能够高效支持半结构化数据类型的存储和处理需求。
在查询方面,SelectDB 实现了多种查询负载上的极速分析性能 :
- 高并发点查询:SelectDB 实现了单节点 30000 QPS 的超高并发, 真正具备了在一套架构下同时满足高吞吐的 OLAP 分析和高并发的 Data Serving 在线服务的能力,大大简化了混合工作负载下的技术架构,为用户提供了多场景下的统一分析体验。
- 大宽表查询 :众所周知,ClickHouse 在处理大宽表查询方面表现出色,而在 ClickHouse 所发起的数据库性能排行榜 Clickbench 中,2022 年 10 月 SelectDB 首登榜单即斩获榜单第一名的成绩,这进一步证明了 SelectDB 在处理大宽表查询方面具备出色的性能。
- 多表 Join 查询:多表 Join 是 Apache Doris 一以贯之的优势,同样也是 SelectDB 的核心优势。在 SSB 和 TPC-H 等多表 Join 的测试中,SelectDB 性能最多可以达到 ClickHouse 的 100 倍、Greenplum 的 5-10 倍;
- 增量库内 ELT :过去 Spark 被广泛用于批处理的 ETL,而 Flink 则专注于实时 ETL。SelectDB 提供了内置的增量 ETL 功能,相对于 Spark 具备更高的实时性,并且更易于使用。
湖仓融合:开放性和高性能可以兼得
在大数据领域,存在众多的系统和组件,它们往往在架构中扮演着不同的角色。而随着时代的进步,架构“减负”已成为企业发展的重要目标。数据仓库在性能方面表现出色,而数据湖则以其开放性和能够存储各种数据的优势而受到青睐。然而无论湖或仓在场景上都具备一定的局限性,因此如今我们正处于数据湖和数据仓库融合的阶段,要想充分利用数据仓库的高性能和数据湖的开放性,整合这两者变得至关重要。
对于现代化的数据仓库,湖仓统一融合的最重要特性有两个方面:
- Federated Query Engine: 作为一个联邦查询引擎,数据仓库可以访问各种数据湖上的表格式,包括存储在 HDFS、S3 上的 CSV、Parquet、JSON 等文件,以及查询 Iceberg、Hudi、Delta Lake 等数据湖中的数据。
- Open Data Lake: 数据仓库还可以作为一个开放的数据湖,供 Spark、Flink、Trino 等查询引擎进行查询。这种能力在数据湖与数据仓库融合的背景下,成为数据仓库需要展现的一个重要特点。
在当前的数据湖与数据仓库的融合趋势中,大多数通常只关注了前一方面,而数据仓库的格式开放性很少被提及。在当今这个数据类型多样且数据负载庞大的时代,数据仓库可能也将面临数据科学或其他形式的大规模分布式计算,如果不开放数据格式,那么 Spark、Python 之类的工具将无法使用。
而以上两方面 SelectDB 都进行了大量的技术创新,以实现更加彻底的湖仓融合能力。
作为一个高效的联邦查询引擎,SelectDB 可以通过创建数据目录的方式与外部数据源进行映射,例如可以将 Hive、Elasticsearch、Iceberg 等数据源映射为外部表,SelectDB 将自动更新源数据,并自动进行外部数据的高速缓存。
以 Hive Catalog 为例,在创建 Catalog 完成后将自动进行数据映射,一旦完成即可轻松地切换 Catalog 并直接进行数据查询。同时数据目录的更新操作是按需的,可以指定要查询的库和表进行更新,也可以利用插入语句(INSERT INTO)将查询结果插入到内部表中,这些操作仅需一条命令即可完成,具有更高的易用性。在性能方面,我们也将 SelectDB 与 Presto/Trino 进行了对比,在相同集群配置下查询 Hive 上的 ORC 文件,SelectDB 相较 Presto/Trino 具有约 3-5 倍的性能优势。
如何让 SelectDB 作为开放的数据湖格式并被其他计算引擎访问?这是湖仓融合开放性的重要呈现。
在此 SelectDB 提供了基于 Arrow Flight 的 HTTP Data API 高吞吐数据读写接口。众所周知,SelectDB 内核 Apache Doris 是兼容 MySQL 协议的,这意味着可以通过 JDBC 进行快速访问。但 MySQL 协议最初是面向报表场景设计的,返回结果数据量一般较少、不擅长处理大规模的数据读写操作。
而如果希望将 SelectDB 作为开放的数据湖格式,因此必须具备高度可拓展的读取接口。为此,我们采用了 HTTP Data API,可以使客户端以并发方式与多个 BE 进行读取,并提供更高的数据读取能力。无论是使用 Flink Connector、Spark Connector,还是通过 Python SDK( 数据科学、机器学习 )都可以快速访问。因此,基于 SelectDB 可以与整个 AI 和数据科学生态进行良好的整合,这也是未来的重要发展方向。
云原生化:存算分离架构下的弹性计算
云原生的核心价值
让我们来谈谈第三个趋势,云原生。
当谈到云原生时,很多人认为概念比较宽泛。总体而言,云原生能带来的核心价值如上有四个方面,首先是存算分离。在云上提供了高质量、低成本的对象存储系统以及 HDFS 等共享存储系统,将大量的历史数据或冷数据迁移到低成本的存储介质会为企业带来巨大的成本节约。其次,存算分离的特性使得计算变得更加弹性,在业务波峰波谷效应明显的场景中,也可以通过计算资源的弹性调度更好地应对变化。同时,由于进行了存算分离,计算可以实现更好的负载隔离,完全可以根据业务需求进行隔离或者进行读写分离。另外,由于可以共享同一份存储,数据共享变得更加简单。这意味着数据不再需要繁重的迁移工作,同一份数据可以被多个计算业务共享使用。
让我们来看看 SelectDB 如何提供云原生能力,简而言之,就是如何更好地基于云做好存算分离架构下的弹性计算。
共享存储与本地缓存
在过去的几年里,有关存算分离和存算一体的争论一直存在。存算一体简单且性能高,因为数据完全在本地进行读取。计算和存储的解耦尽管带来了弹性,但可能会导致性能下降,其核心原因在于,在数据库的查询过程中,谓词需要被下推到存储系统上执行、以过滤掉大量不必要的数据并减少传输到计算引擎的数据。一旦存储和计算分离,对象存储系统本身没有计算逻辑,谓词无法下推到存储层面,因此计算节点将面对大量的数据传输,网络传输成本成为新的瓶颈。
因此即使 MapReduce 和 Spark 之类的批处理系统都会通过数据近地化调度,尽量将计算推到存储所在的节点上,以减少数据的传输代价并提高性能,更何况对于查询性能高度敏感的实时分析系统。那么,存算分离架构下存储系统无法进行谓词下推该如何解决呢?
为了解决以上问题,SelectDB 引入了本地高速缓存(即本地 SSD)用于缓存经常被使用的热数据。当然这里还涉及到许多设计细节,包括如何进行缓存、哪些数据应该被缓存、哪些数据可以自动或手动进行干预,以及在节点伸缩时如何进行缓存的预热和平衡迁移等。
多计算集群
在存算分离架构下,SelectDB 提供了多计算集群的能力。多计算集群可以共享一份元数据和数据并且保持强一致性,因此可以保证多个计算集群之间的负载隔离。这一能力适用于多个应用场景,例如一个集群群用于数据导入、一个集群用于在线查询、一个集群用于离线处理,不同业务部门可以使用不同的计算机群。通过这一能力,计算负载之间可以实现完全隔离。
计算节点弹性扩缩容
云原生架构强调弹性,能够根据负载需求快速地进行扩容或缩容。SelectDB 可以支持手动扩缩容,也可以根据特定时间进行自动扩缩容。此外,它还支持集群的自动启停,当没有负载时会自动停止,有查询负载时会自动启动,这些都会带来了弹性计算的能力,可以节省计算成本。
总结完以上趋势,我们也看到 SelectDB 已经具备了现代化数据仓库的三大能力,因此我们也将 SelectDB 定义为“面向实时分析的现代化数据仓库”。
SelectDB Cloud 全面开放使用,基于 Apache Doris 2.0 版本打造全新内核
在过去的一年里,我们邀请了大量客户参与内部测试与共建,长时间的精心打磨也使得我们的产品具备了更高的成熟度和稳定性。
今天很高兴地宣传,云原生实时数据仓库服务 SelectDB Cloud 正式 GA(General Availability),全面开放使用! SelectDB Cloud 的全新内核基于 Apache Doris 2.0 版本打造,在实时数据更新、盲测查询性能与自适应能力以及半结构化数据分析场景上都得到了全面的革新。后续任何客户不再需要申请白名单进行测试,您可以自行注册账户并使用我们的免费试用套餐,来体验我们的云服务。
在中国市场,我们已经上线了阿里云、华为云和腾讯云,并计划在今年四季度上线亚马逊云科技。而在国际市场,我们已经上线了 AWS 并计划在今年四季度上线谷歌云(GCP)。因此,您完全可以根据您的业务需求选择登陆我们的国际站点或者中国站点,无论哪个站点都可以使用我们的免费套餐,尝试我们最新的功能。
存算分离架构,带来极致性价比
刚才我们介绍了 SelectDB 在存算分离方面的能力,包括共享存储、本地高速缓存、多计算集群以及计算节点的弹性扩缩容等,大家也可以通过以上图来了解 SelectDB Cloud 的整体架构:对于企业而言,可以建立多个仓库、每个仓库可以有多个计算集群,这些集群之间共享对象存储,每个集群由多个计算节点组成,计算节点还可以实现弹性扩缩容。这样的架构也为企业带来了极致性价比:
- 存储冷热分离:对于面向海量数据分析的 AP 系统而言,不可避免会持续积累历史数据,而这些历史数据会占据大量存储成本。相对于价格高昂的云盘,对象存储的价格低廉且可靠性高,将冷数据卸载至对象存储可以将存储成本降低至原来的五分之一。
- 弹性计算:我们注意到许多客户计算集群的真实利用率(CPU 利用率)大约只有 20%,这是因为需要满足每天的峰值负载,而大多数时间内 CPU 利用率相对较低。通过弹性扩缩容功能,可以根据负载的需求不断地扩展或缩减节点,使 CPU 利用率保持在 70%-80% 甚至更高,计算效率得到极大幅度提升、计算成本仅需之前的 25%。
降低运维复杂度,提升开发效率
除了在降低资源消耗方面进行了大量的设计,SelectDB Cloud 在降低运维复杂度和提升人员开发效率方面,也提供可视化管理控制台和可视化开发 WebUI 两大工具。
在 SelectDB Cloud 管理控制台,我们提供了灵活丰富的配置能力:
- 多云统一管理:在国际站和中国站我们提供了七朵云,在可视化控制台上可以进行多云的统一管理;
- 云市场打通:与多家云厂商的云市场无缝打通,包括阿里云云市场、华为云云商店、AWS Marketplace 等,可以复用云账号资金、利用云市场扣费渠道进行付费;
- 集群管理:Serverless 化配置,无需配置节点套餐与数量,只需配置所需的 CPU 核数并进行简单配置,即可创建一个集群,最大化减少节点套餐和集群规模的配置成本;
- 安全连接:无需过分担心安全性问题,因为 SelectDB Cloud 提供了多种安全性选项,既支持在公网上添加 IP 白名单,也支持私网连接,最大化保障您的数据安全性。
- 监控与报警:无需额外配置监控和报警系统,如果已有监控和报警系统也可以与 SelectDB Cloud 对接。既方便了运维管理人员,同时也为数据库开发人员和业务开发人员提供了便利,更加轻松地创建数据库、查看库表以及管理数据库的权限。
同时我们还提供了面向开发人员的可视化 Web UI ,内置了包括数据查询、数据集成、数据管理和权限管理等在内的多项功能,无需额外安装 Navicat 等工具。
更高的数据安全性,更便捷的云上服务体验
在过去的一年中,我们发现有很多客户对数据安全和合规性有更高的要求。SaaS 形态下用户只负责数据仓库的使用,数据存储、运维监控、告警处置以及底层资源伸缩等完全由云厂商负责,对数据合规有高度要求的客户而言存在一定阻力。为了更好地满足这部分客户的需求,我们研发了全新 SelectDB Cloud 私有仓库(BYOC,Bring Your Own Cloud)部署形态。
如上图所示,SelectDB Cloud 最初设计时是作为纯 SaaS 的产品形态,这意味着所有的管理控制和数据存储都在 SelectDB Cloud 网络中,我们为每个客户划分了一个专有的隔离区域,因此也称其为专有仓库,客户端可以通过公网或私有网络的私有链接来连接到 SelectDB Cloud。
而私有仓库 BYOC 这一解决方案我们仍将控制面放在 SelectDB Cloud 中,可以享受全托管的服务模式、无需自行维护,并且集群将构建在客户的 VPC 中,这样可以保证数据完全存放在客户自有环境中,完全满足安全合规的要求。与此同时,可以充分利用客户在云服务商的账户折扣,成本上更加可控,此外还可以便捷地与客户 VPC 中的上下游系统进行打通。
当前 BYOC 还处于预览阶段,正式版将于今年 10 月正式发布,后续进展欢迎大家随时关注。
SelectDB Enterprise 企业版,更加自主可控的私有部署模式
除了构建于多云之上的 SelectDB Cloud 云服务以外,今天我们发布的另一产品为 SelectDB Enterprise 企业版。
与 Apache Doris 100% 兼容的企业版内核
作为一款私有部署和自管理的系统软件,SelectDB Enterprise 内核基于 Apache Doris 构建,并且与 Apache Doris 100% 兼容。
基于开源软件进行商业化的企业级产品与开源版本有不同的目标,开源的优势在于通过开放协作和快速迭代来促进技术创新,任何个体或企业都可以为其贡献新功能和特性。而企业版产品更多追求的是稳定性,出现问题只需要修复 Bug 即可,而不需要通过频繁升级引入新功能。
因此 SelectDB Enterprise 企业版内核更加注重稳定性,只有在社区功能达到稳定状态后才会将其合入企业版内核,同时引入了严格的质量测试,保证更高的稳定性和更快的漏洞修复速度,并且我们为每个版本提供长达 1-3 年的长周期支持。
SelectDB Enterprise 企业版内核还内置了可视化开发 WebUI,用以提升数据开发人员的效率。
可视化集群管控工具 SelectDB Enterprise Manager
此外,针对 SelectDB 企业版我们还提供了可视化集群管控工具。该管控工具不仅可以管理开源的 Apache Doris 内核,还可以管理 SelectDB Enterprise 企业版内核,支持创建、配置、变更、升级、扩缩容等功能,并且可以同时管理多个集群,此外还提供监控、报警、巡检和审计等功能。
目前,SelectDB Enterprise Manager 当前已支持在物理机和虚拟机环境的部署,Kubernetes 和公有云的部署支持正在开发中。换而言之,客户可以使用可视化集群管控工具在任何地方部署 SelectDB Enterprise。如果客户有私有云环境,我们可以协助支持与私有云环境对接。
专家级技术支持服务
除了企业版的内核和管控工具,我们还提供专家技术服务,旨在消除用户在生产环境中使用 Apache Doris 的后顾之忧。作为基于 Apache Doris 的商业化公司,飞轮科技聚集了大量的社区贡献者、Committer 以及 PMC 成员,提供了更加专业的技术支持服务:
- 消除风险:提供例行巡检,及时消除系统可能的隐患;
- 解决问题:严格的服务 SLA,确保 7*24 小时专属支持,对紧急 Bug 提供天级别的专属修复版本更新;
- 优化系统:通过对产品培训、业内最佳实践分享,与客户一起优化系统性能和成本。
自主可控、安全可靠
SelectDB Enterpris 是一个自主可控、安全可靠的解决方案,目前已经通过了多项安全性认证,包括等保三级以及 6 项 ISO 安全管理体系认证。
同时 SelectDB Enterprise 企业版与众多国产系统生态进行了兼容,获得了十多项系统兼容认证,包括 飞腾、华为鲲鹏、海光等芯片以及欧拉、麒麟、统信等国产操作系统。对于对自主可控、安全可靠性有要求的企业,可以放心地使用 SelectDB Enterprise 企业版。
灵活的产品使用和部署形态,飞轮科技期待携手更多客户
感谢您聆听到现在,让我们一同对今天飞轮科技所发布的多种产品形态进行总结,便于您更清晰地根据需求选择您适合的产品。
如果您希望将运维管理工作完全交给系统完成,那推荐选择全托管的 SelectDB Cloud SaaS 模式,控制面和数据面都在 SelectDB 账户中,便于您最大程度节省数据仓库的管理工作量。在 SelectDB Cloud 中我们将呈现更彻底地 Serverless 化,无需关注机器配置,实现了更高的弹性和灵活性。
如果您希望将集群管理工作交给系统自动完成、对数据合规性要求更高、并且拥有自己的云资源账号,推荐使用 SelectDB Cloud BYOC 模式。在这种形态下,控制面仍然位于 SelectDB 账户、而数据面则位于您自己的 VPC 中。您只需要进行授权,我们就可以利用您的账号在 VPC 下进行计算和资源的管控,兼顾安全合规性和云上服务体验。
如果您希望在物理机、虚拟机、Kubernates 容器平台以及私有云、公有云等任意环境部署集群,或者对安全合规性有着更高要求,可以选择 SelectDB Enterprise 企业版解决方案。
无论是哪一种方案,期待 SelectDB 都可以为您提供更高效率、更低成本且更省心的选择。
点击此处即可申请试用 SelectDB,体验其卓越的性能和灵活的应用场景。我们将为你提供大规模数据极速分析、湖仓融合、云原生化的使用体验,并将有专业的技术团队与您联系,为您提供详细的试用指南和支持。
相关文章:
定义现代化实时数据仓库,SelectDB 全新产品形态全面发布
导读:9 月 25 日,2023 飞轮科技产品发布会在线上正式召开,本次产品发布会以 “新内核、新图景” 为主题,飞轮科技 CEO 马如悦全面解析了现代化数据仓库的演进趋势,宣布立足于多云之上的 SelectDB Cloud 云服务全面开放…...
Linux系统编程(七):线程同步
参考引用 UNIX 环境高级编程 (第3版)黑马程序员-Linux 系统编程 1. 同步概念 所谓同步,即同时起步、协调一致。不同的对象,对 “同步” 的理解方式略有不同 设备同步,是指在两个设备之间规定一个共同的时间参考数据库同步,是指让…...
Arcgis克里金插值报错:ERROR 999999: 执行函数时出错。 表名无效。 空间参考不存在。 ERROR 010429: GRID IO 中存在错误
ERROR 999999: 执行函数时出错。 问题描述 表名无效。 空间参考不存在。 ERROR 010429: GRID IO 中存在错误: WindowSetLyr: Window cell size does not match layer cell size. name: c:\users\lenovo\appdata\local\temp\arc2f89\t_t164, adepth: 32, type: 1, iomode: 6, …...
【网络协议】ARP协议
为什么网络需要同时借助MAC地址这种物理地址和IP地址这种逻辑地址进行通信? 尽管目前MAC地址可以通过逻辑的方式进行修改,但它最初是被设计为不可人为更改的硬件地址。虽然MAC地址也可以满足唯一性的要求,但由于它不可由管理员根据需求通过逻…...
安防视频/集中云存储平台EasyCVR(V3.3)部分通道显示离线该如何解决?
安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安…...
软件测试经典面试题:如何进行支付功能的测试?
非现金支付时代,非现金支付已经成为了生活不可或缺的一部分,我们只需要一台手机便可走遍全国各地(前提是支付宝,微信有钱<00>),那么作为测试人员,支付测试也是非常重要的一环,那么下面我就…...
SolidWorks 入门笔记03:生成工程图和一键标注
默认情况下,SOLIDWORKS系统在工程图和零件或装配体三维模型之间提供全相关的功能,全相关意味着无论什么时候修改零件或装配体的三维模型,所有相关的工程视图将自动更新,以反映零件或装配体的形状和尺寸变化;反之&#…...
【Java】对象内存图多个对象同一内存地址
目录 学生类 单个对象内存图 多个对象指向同一个内存地址 学生类 Student.java如下: package com.面向对象;public class Student {String name;int age;public void work() {System.out.println("开始敲代码...");} }StudentDemo.java如下ÿ…...
Python 笔记05(装饰器的使用)
一 装饰器的使用 (property) property 是 Python 中用于创建属性的装饰器。它的作用是将一个类方法转换为类属性,从而可以像 访问属性一样访问该方法,而不需要使用函数调用的语法。使用 property 主要有以下好处: 封装性和隐藏实现细节&…...
记忆化搜索,901. 滑雪
901. 滑雪 - AcWing题库 给定一个 R 行 C 列的矩阵,表示一个矩形网格滑雪场。 矩阵中第 i行第 j 列的点表示滑雪场的第 i 行第 j列区域的高度。 一个人从滑雪场中的某个区域内出发,每次可以向上下左右任意一个方向滑动一个单位距离。 当然࿰…...
计算机网络:连接世界的纽带
计算机网络的基础概念 计算机网络是一组相互连接的计算机,它们通过通信链路和协议进行数据交换和资源共享。以下是一些关键概念: 1. 节点和主机 网络中的计算机设备称为节点,通常是主机或服务器。主机是普通用户或终端设备,而服…...
SpringMVC 学习(三)注解开发
4. 注解开发 4.1 环境搭建 (1) 新建 maven 模块 springmvc-03-annotation (2) 确认依赖 确认方法同 3(2),手动导入发布依赖见3(11) <!--资源过滤--> <build><resources><resource><directory>src/main/java</directory>&…...
0x84加密数据传输服务
为了在安全模式下实现一些诊断服务,在服务端和客户端应用程序之间添加了Security sub-layer。在客户端与服务端之间进行诊断服务数据传输有两种方法: 1、非安全模式下数据传输 应用程序使用诊断服务(diagnostic Services)和应用层服务原语(Applicati…...
Vue.js快速入门:构建现代Web应用
Vue Vue.js是一款流行的JavaScript框架,用于构建现代的、交互式的Web应用程序。它具有简单易学的特点,同时也非常强大,能够帮助开发者构建高效、可维护的前端应用。本篇博客将带你快速入门Vue.js,并演示如何构建一个简单的Vue应用…...
Scala第五章节
Scala第五章节 scala总目录 章节目标 掌握方法的格式和用法掌握函数的格式和用法掌握九九乘法表案例 1. 方法 1.1 概述 实际开发中, 我们需要编写大量的逻辑代码, 这就势必会涉及到重复的需求. 例如: 求10和20的最大值, 求11和22的最大值, 像这样的需求, 用来进行比较的逻…...
erlang练习题(三)
题目一 查询列表A是否为列表B的前缀 解答 isPrefix([], List2) -> io:format("A is prefix of B ~n");isPrefix([H1 | ListA], [H2 | ListB]) ->case H1 H2 oftrue -> isPrefix(ListA, ListB);false -> io:format("A is not prefix of B ~n&quo…...
What Is A DNS Amplification DDoS Attack?
什么是 DNS 放大攻击? 域名系统 (DNS) 是用于在网站的机器可读地址(例如 191.168.0.1:80)和人类可读名称(例如 radware.com)之间进行解析的目录在 DNS 放大攻击中,攻击者…...
jvm笔记
好处: 跨平台 内存管理机制,垃圾回收功能 数组下标越界检查 多态 名词解释: jvm java虚拟机,是java程序的运行环境 jre jvm基础类库 jdk jre编译工具 javase jdkide工具 javaee javase应用服务器 jvm的内存结构: 程序…...
WPF中的控件
内容控件:label、border Window控件 Label控件 Border控件 内容控件 Button控件 点击取消按钮关闭程序;点击登录按钮打开BorderWindow窗口。 TextBox控件 PasswordBox控件 TextBlock控件 加载窗口时显示TextBlock中的内容 RadioButton控件 CheckBox控件…...
Java下对象的序列化和反序列化(写出和读入)
代码如下: public class MyWork {public static void main(String[] args) throws IOException, ClassNotFoundException {//序列化File f new File("testFile/testObject.txt");ObjectOutputStream oos new ObjectOutputStream(new FileOutputStream(…...
基于springboot的洗衣店订单管理系统
目录 前言 一、技术栈 二、系统功能介绍 顾客信息管理 店家信息管理 店铺信息管理 洗衣信息管理 预约功能 洗衣信息 交流区 三、核心代码 1、登录模块 2、文件上传模块 3、代码封装 前言 随着信息互联网信息的飞速发展,无纸化作业变成了一种趋势&#x…...
Llama2部署踩坑
1、权重是.bin,但是报错找不到.safetensors 明明权重文件是.bin,但是却提示我缺少.safetensors。最后发现好像是 llama2-7b这个模型文件不行,必须要llama2-7b-chat这个模型才能读取的通,具体原因还暂不明确。...
Adams齿轮副
1.运动副 添加旋转副的时候,必须先物体后公共part(即此处的ground),最后再选择质心点 2.啮合点 啮合点marker的z轴必须是齿轮分度圆的切线方向 3.啮合点 两齿轮的旋转副,和啮合点,即cv marker ,必须属…...
Elasticsearch keyword 中的 ignore_above配置项
1. ignore_above 关于es mapping的keyword ignore_above配置项的解释如下: Do not index any string longer than this value. Defaults to 2147483647 so that all values would be accepted. 不会索引大于ignore_above配置值的数据,默认值2147483647字…...
RabbitMQ原理(一):基础知识
文章目录 1.初识MQ1.1.同步调用1.2.异步调用1.3.技术选型2.RabbitMQ2.1.安装2.2.收发消息2.2.1.交换机2.2.2.队列2.2.3.绑定关系2.2.4.发送消息2.3.数据隔离2.3.1.用户管理2.3.2.virtual host微服务一旦拆分,必然涉及到服务之间的相互调用,目前我们服务之间调用采用的都是基于…...
[Linux]Git
文章摘于GitHub博主geeeeeeeeek 文章目录 1.1 Git 简易指南创建新仓库工作流添加与提交推送改动 1.2 创建代码仓库git init用法讨论裸仓库 例子 git clone用法讨论仓库间协作 例子用法讨论栗子 1.3 保存你的更改git add用法讨论缓存区 栗子 git commit用法讨论记录快照…...
ChatGPT终于可以进行网络搜索 内容不再限于2021年9月前
微软和谷歌已经让旗下聊天机器人进行网上搜索,并提供原始材料的链接,以提高信息共享的可信度和范围。但是,ChatGPT迄今为止只接受了有时间限制的训练数据,这些数据仅限于从互联网上收集的2021年9月之前的信息。在周三的一系列推文…...
uni-app:实现页面效果1
效果 代码 <template><view><view class"add"><image :src"add_icon" mode""></image></view><view class"container_position"><view class"container_info"><view c…...
归一化和标准化的联系与区别及建议
归一化和标准化是数据预处理中常用的两种方法。它们都是为了调整数据的尺度,使得数据更符合我们的分析需求。虽然二者的目的相同但是具体实现方式和适用场景却有所不同。下面,我们来详细介绍-下它们的联系和区别。 一、联系 归一化和标准化都能够使得数据的尽度缩放到不同的…...
数据结构--栈的实现
数据结构–栈的实现 1.栈的概念和结构: 栈的概念:栈是一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端 称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Las…...
网站客服怎么做的/今日世界杯比分预测最新
前言 很多次小伙伴问到学习方法,我也很想写这样的一篇文章来跟大家讨论下关于学习方法这件事情。 其实学习方法这个事情,我没啥发言权,因为我自己本身都是没啥方法可言的,就瞎折腾那种,但是大家想看这样的一篇文章&a…...
公共资源交易网站建设方案/种子资源
PS:用代码画点这样写是为了跟后面的用鼠标画点线面区分出来画点drawPointGraphic: function () {//点有多种样式:一般的点,显示文字,显示图片//一般的点let wkt "POINT(113.566806 22.22445)";//样式//PS:其…...
做微信的网站/网站seo方案案例
本文转自:http://www.cnblogs.com/yaob/archive/2011/05/20/2051642.html 听说 AES 加密是非常安全的, 256 位的甚至是美国神马安全局的加密标准.本着收藏不为人知的邪恶资料, 在网上找了一下怎么用 C# 去实现这个加密和解密. 很可惜的是, 网上的代码, 要么出错, 要…...
网站建设税费/sem推广代运营
索引类型 phoenix的索引大致分为两类global index和local index,好像和星环有点类似,其实这是hbase二级索引解决方案里面广为人知的两种方案,侧重点不同,使用场景也不一样。 global index,global是默认的索引格式。官…...
网站短信通知/如何推广
Windows下搭建React Native Android开发环境 下面用到的一些安装包请连接下面的百度云盘,如果失去链接留言我会发给你。 http://pan.baidu.com/s/1pLjABvt 如果你已经有的环境可以略过。 1.安装JDK Java官网上下载安装即可。 java配环境变量。 注意&#x…...
信丰网站制作/网站统计工具有哪些
AQTime和MemProof都是AutomatedQA旗下的产品,AQTime比MemProof提供了更丰富强大的功能。该产品含有完整的性能和调试工具集,能够收集程序运行时关键的性能信息和内存/资源分配信息,并提交概要报告和详细报告,还提供所有的程序优化…...