snowflake

巨杉数据库完成数亿元D轮融资,引领金融级分布式数据库发展

ぃ、小莉子 提交于 2020-10-14 10:54:41
金融级分布式数据库领导者巨杉数据库,于近期完成数亿元人民币D轮融资,本轮融资由中金资本领投,元禾重元与越秀产业基金跟投。 巨杉数据库是国内最早布局分布式数据库产品的公司,自2011年成立起,9年来一直坚持以原生分布式数据库作为核心产品,聚焦于金融业。2017年,巨杉数据库成为首批入选Gartner数据库榜单的国产分布式数据库。 目前,巨杉数据库已被大规模应用于超百家金融企业,特别是银行的核心系统,累计为数百个应用提供高并发零宕机在线数据服务。 对此,本轮领投方,中金资本董事总经理王雷表示:“分布式数据库是数据时代新兴企业IT架构的核心基础软件,是数据库发展的大趋势。如今,企业级服务能力已经成为资本市场最为关注的核心价值。分布式数据库公司Snowflake刚刚以超过700亿市值,成为美股最大的软件IPO案例,其背后的价值体现绝不仅仅来自于云原生技术。Snowflake的创始团队来自于IBM、Oracle等传统数据库的创始团队,天生具备企业级软件基因。同时,其营收大量来自于包括全球500强在内的大型企业,并呈现平稳的、持续的增长,契合企业级服务能力的商业价值。从技术上看,Snowflake通过跨云的分布式能力,协助客户摆脱单一云平台的锁定。 总体来看,Snowflake与巨杉数据库的团队背景、商业模式及产品方向都非常相似,特别是巨杉数据库超过80%的营收来自头部的金融行业客户

bi商业智能软件排名

拥有回忆 提交于 2020-10-08 00:57:41
工欲善其事,必先利其器,大数据时代对于企业数据分析和可视化工作来说,好的BI工具能够让企业数据团队如虎添翼,事半功倍。以下,小麦汇总了9款业内比较常用的商业智能BI工具,以供大家参考选择。 一、Tableau: 自助式BI典型的代表,目前在国内有许多代理商,Tableau算是众多国外BI产品中,目前在国内还比较有竞争力的国外BI厂商吧。Tableau是桌面系统中最简单的商业智能工具软件,用户只需要简单配置,拖拖拽拽,就可以做出数据分析。Tableau的理念是,界面上的数据越容易操作,公司对自己在所在业务领域里的所作所为到底是正确还是错误,就能了解的越透彻。 二、Qlikview: Qlikviw曾是连续七年全球增产速度最快的BI产品,Gartner曾把它列在Leaders象限和Tableau并列为Magic Product。和Tableau的重点倾向不同,Qlikview是一个完整的商业智能软件,可以让IT人员和业务人员构建和部署强大的数据分析应用。Qlikview通过AQL架构提供灵活、强大的分析能力时,AQL架构改变了需要OLAP立方体的需求。总的来说,它可以让自助数据分析和所有信息都有一个灵活的直观的展现。 三、Microsoft Power BI 借助适用于Windows的Power BI Desktop应用程序,用户可以分析和可视化来自本地或云源的数据

php生成唯一订单号

孤人 提交于 2020-10-03 13:18:01
使用 https://github.com/godruoyi/php-snowflake 来生成 <?php declare(strict_types=1); use think\facade\Cache; use think\facade\Config; use Godruoyi\Snowflake\Snowflake; use Godruoyi\Snowflake\RedisSequenceResolver; /** * 获取redis实例 * * @return \Redis */ function get_redis(): \Redis { return Cache::store()->handler(); } /** * 生成唯一订单号 * * @param string $prefix 订单号前缀 * @return string */ function build_order_no(string $prefix = ''): string { $options = Config::get('cache.stores.redis'); $redis = get_redis(); $snowflake = new Snowflake(); $sequence = new RedisSequenceResolver($redis); $sequence-

Spring Data R2DBC响应式操作MySQL

こ雲淡風輕ζ 提交于 2020-10-03 00:25:26
1. 前言 在 使用R2DBC操作MySQL数据库 一文中初步介绍了 r2dbc-mysql 的使用。由于借助 DatabaseClient 操作 MySQL ,过于初级和底层,不利于开发。今天就利用 Spring Data R2DBC 来演示 Spring 数据存储抽象(Spring Data Repository) 风格的 R2DBC 数据库操作。 请注意 :目前 Spring Data R2DBC 虽然已经迭代了多个正式版,但是仍然处于初级阶段,还不足以运用到生产中。不过未来可期,值得研究学习。 2. Spring Data R2DBC Spring Data R2DBC 提供了基于 R2DBC 反应式关系数据库驱动程序的流行的 Repository 抽象。但是这并不是一个ORM框架,你可以把它看做一个数据库访问的抽象层或者 R2DBC 的客户端程序。它不提供 ORM 框架具有的缓存、懒加载等诸多特性,但它抽象了数据库和对象的抽象映射关系,具有轻量级、易用性的特点。 2.1 版本对应关系 胖哥总结了截至目前 Spring Data R2DBC 和 Spring Framework 的版本对应关系: Spring Data R2DBC Spring Framework 1.0.0.RELEASE 5.2.2.RELEASE 1.1.0.RELEASE 5.2.6.RELEASE

创造历史!《全球云100强》,5家RPA企业入选

不羁岁月 提交于 2020-10-01 05:03:01
http://www.swwyxy.com/ 9月16日,全球著名商业杂志福布斯发布了2020年《全球云100强排行榜》。其中有5家RPA企业入选了该榜单并且全部进入前50名,这也是自福布斯发布该榜单以来,入选RPA企业最多、排名最好的一次。 http://www.swwyxy.com/jdxc/dbwh/165.html 排名第一的是数据库领导者Snowflake,2019年在该榜单排名第二;连续3年位居榜首的在线支付公司Stripe,今年跌至第二名;RPA行业领导者UiPath,已连续两年稳居探花位置。 http://www.swwyxy.com/jdxc/dbwh/156.html 其他几家RPA企业排名分别为:Automation Anywhere第20名,2019年排名第29位;Zapier第24名;Celonis第39名;AvidX change第42名。 福布斯表示,Covid-19(新冠病毒)并没有对该榜单企业的增长造成任何影响,反倒是对一些特定领域的企业起到了推波助澜的作用,例如,RPA、AI、IOT和Big Data等。 http://www.swwyxy.com/jdxc/yldb/152.html 本次入选该榜单的100家企业总价值达到了2700亿美元;其中有87家为行业独角兽,估值皆超过了10亿美元以上,这一数据高于2019年的65家。

分布式事务解决方案常见误区与实用建议

ぐ巨炮叔叔 提交于 2020-09-30 06:41:34
前言 ​ 最近,工作中要为现在的老系统做拆分和升级,刚好遇到了分布式事务、幂等控制、异步消息乱序和补偿方案等问题,刚好基于实践结合个人的看法记录一下一些方案和思路。 分布式事务 首先,做系统拆分的时候几乎都会遇到分布式事务的问题,一个仿真的案例如下: 项目初期,由于用户体量不大,订单模块和钱包模块共库共应用(大war包时代),模块调用可以简化为本地事务操作,这样做只要不是程序本身的BUG,基本可以避免数据不一致。 后面因为用户体量越发增大,基于容错、性能、功能共享等考虑,把原来的应用拆分为订单微服务和钱包微服务,两个服务之间通过非本地事务操(这里可以是HTTP或者消息队列等)作进行数据同步,这个时候就很有可能由于异常场景出现数据不一致的情况。 事务中直接RPC调用达到强一致性 以上面的订单微服务请求钱包微服务进行扣款并更新订单状态为扣款这个调用过程为例,假设采用HTTP同步调用,项目如果由经验不足的开发者开发这个逻辑,可能会出现下面的伪代码: [订单微服务请求钱包微服务进行扣款并更新订单状态] 处理订单微服务请求钱包微服务进行扣款并更新订单状态方法(){ [开启事务] 1、查询订单 2、HTTP调用钱包微服务扣款 3、更新订单状态为扣款成功 [提交事务] } 这是一个从肉眼上看起来没有什么问题的解决方法,HTTP调用直接嵌入到事务代码块内部,猜想最初开发者的想法是

java分布式下mysql常见的主键唯一ID汇总

天涯浪子 提交于 2020-08-19 05:40:55
随着用户需求的提升和架构的复杂,我们所需要的项目也是越来越复杂。考虑到项目的性能,架构的合理性,数据主键生成也慢慢显得尤为重要起来。 今天我就介绍几种常用的主键生成方案: 一、主键自增 这是数据自带的一种特性,只需在建表语句中主键后添加 AUTO_INCREMENT ,就会在主键中按照顺序自动成主键id。 优点: 1.自增的id天然排序,对于分页查询和需要排序的查询非常友好 2.自增id的性能相对还可以 缺点: 1.在单个数据库或读写分离或一主多从的情况下,只有一个主库可以生成。有单点故障的风险。 2.在性能达不到要求的情况下,比较难于扩展。 3.如果遇见多个系统需要合并或者涉及到数据迁移会相当痛苦。 4.分表分库的时候会有麻烦。 二、UUID 这是java1.5推出的,号称是全球唯一的标识。可以这样生成: UUID uuid = UUID . randomUUID ( ) ; 优点: 1.生成代码简单,ID全球唯一 2.数据库迁移不需要担心 缺点: 1.无法排序 2.查询效率慢 redis集群生成id redis由于是单线程,可以生成全局唯一id。且基于内存操作,在数据性能不够时可使用。可以用Redis的原子操作 INCR和INCRBY来实现。 比如:我们的redis集群有3台redis那么我们可以这么做: A: 1,2,3 第一次生成 B:4,5,6 第二次生成 C:7,8,9

PHP 内核:foreach 是如何工作的(二)

徘徊边缘 提交于 2020-08-18 06:34:31
PHP 内核:foreach 是如何工作的(一) PHP 5 内部数组指针和散列指针 PHP 5 中的数组有一个专用的 “内部数组指针”(IAP),它适当地支持修改:每当删除一个元素时,都会检查 IAP 是否指向该元素。 如果是,则转发到下一个元素。 虽然 foreach 确实使用了 IAP,但还有一个复杂因素:只有一个 IAP,但是一个数组可以是多个 foreach 循环的一部分: // 在这里使用by-ref迭代来确保它真的 // 两个循环中的相同数组而不是副本 foreach ($arr as &$v1) { foreach ($arr as &$v) { // ... } } 为了支持只有一个内部数组指针的两个同时循环,foreach 执行以下 shenanigans:在执行循环体之前,foreach 将备份指向当前元素及其散列的指针到每个 foreachHashPointer。循环体运行后,如果 IAP 仍然存在,IAP 将被设置回该元素。 但是,如果元素已被删除,我们将只在 IAP 当前所在的位置使用。这个计划基本上是可行的,但是你可以从中获得很多奇怪的情况,其中一些我将在下面演示。 数组复制 IAP 是数组的一个可见特性 (通过 current 系列函数公开),因此 IAP 计数的更改是在写时复制语义下的修改。不幸的是,这意味着 foreach

snowflake时间回退问题思考

我是研究僧i 提交于 2020-08-17 18:04:49
算法比较简单,每个id-generator负责生成的ID由3部分组成,41位时间戳可以表示到毫秒,10bit worker-id内部可自行划分,比如3位表示IDC,7位表示机器。最后12位是在一毫秒的递增id,也就是每毫秒算法可以产生2^12 = 4096个id,QPS 400多万; snowflake保证1)产生的id分布式系统内全局唯一,2)id趋势递增;不是严格递增,因为集群的机器时间不同步问题 该算法存在一个最严重的问题,是时间回退。比如一台机器A,在t产生一个id,但时钟被调回了t-15,则再次生成的id存在重复的可能。 思考了一个解决这个问题的方法, 在单一id-generator服务上,每ms生成id时,检测current_ms,或<= last_ms则等待last_ms-current_ms后,再开始正常服务。这样若id-generator重启后依然有问题,因为没有地方记录last_ms。并且因为400w的高qps,也无法将其持久化。 我们引入一个第3方,如zookeeper或redis,id-generator服务启动时atomic increase一个key,并将结果用作worker-id。。。 oops!貌似不行,只支持重启1024次 来源: oschina 链接: https://my.oschina.net/u/4367530/blog/4280303

如何设计一款“高可用高性能”的发号器?

空扰寡人 提交于 2020-08-16 06:49:55
云栖号资讯:【 点击查看更多行业资讯 】 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! ​ 背景 在分布式场景中,很多地方需要生成全局唯一的id,如数据库分库分表后需要用唯一id代替单机版本的自增id。发号器的基本要求是 全局唯一,无论如何都不能重复 某些场景下还要求单调递增,如排序需求等。 网上有很多介绍发号器的文章,比如美团的《Leaf——美团点评分布式ID生成系统》,有赞的《如何做一个靠谱的发号器》等。本文聚焦高可用,高性能 高可用:不会因为系统故障导致服务不可用或发号重复 高性能:发号器通常是一个非常高并发的系统,性能足够的同时也可以水平扩容 在基本的要求下,常见的解决方案有哪些?他们是否是高可用,高性能的呢? snowflake方案 snowflake 采用41位时间戳加10位机器id加12位序列号的方式生成,序列号在单一进程内可使用AtomicLong来生成,10位机器号可支持1024台机器 该算法优点是: 算法简单,易于实现,不依赖任何第三方系统,性能非常高; 集群无状态,可随意扩缩容,可认为是高可用系统。 缺点是: 高10位的时间戳和低位自增序列号可保证单调增,但机器号无法保证,如机器号为2在某一时刻先生成id,机器号为1在同一时刻后生成id,则不能保证单调性; 依赖时间戳,如果时钟回拨,可能会生成重复的id。综合来看