腾讯云数据库在助力金融核心系统分布式替换上,已经辐射到了东南亚市场。
东南亚最大的银行之一印尼BNC银行(Bank Neo Commerce)已正式完成新核心分布式迁移,使用腾讯云数据库TDSQL后,系统运行平稳顺畅。这标志着腾讯云数据库在经过国内多家大型核心系统的落地实践后,开始走向海外,“技术出海”助力金融普惠。

新系统上线后,印尼BNC银行超2000万用户交易都跑了新核心系统上,BNC现在每天可以处理200万笔交易和15万笔贷款的发放。
印尼是东盟人口最多的国家,人口超过2.75亿。该国正在经历一场数字变革,移动电话互联网用户普及率在2020年达到67%,预计到2025年将增加多20%。用户未经历成熟的互联网阶段直接进入移动互联网时代。印尼金融科技市场具有广大的发展空间。印尼BNC银行亟需要弹性、可扩容、高性价比的金融基础设施,满足其突飞猛进的用户需求。
为更好适应印尼市场挑战,成立于1989年的印尼BNC银行于2020年开始转型数字银行,开启了数字零售业务。2021年3月,Neo+数字银行App上线。转型后的印尼BNC银行取得了巨大的成功:
仅2021年全年,BNC一年内就新增了2000万用户和3500万账户,业务呈现井喷趋势。截至2022年3月,BNC的企业账号数也超过了1.4万,月交易额超过9亿美元。到2023年,BCN要为超5000万印尼居民提供金融服务。
转型后的BNC业务涵盖金融和非金融业务两大类,服务包含支付、借贷、资产管理、生活服务等,每月保持月活用户50%以上的增长。然而,海量数据、高频交易、数据架构欠缺为BNC全新数字银行项目带来了巨大挑战。
为了应对这项挑战,BNC在新核心系统中采用了腾讯云分布式数据库TDSQL,解决了金融服务业数字化转型带来的难题。这款数据库也是BNC数字服务和产品的重要基础,消除了昂贵的传统商业数据库带来的烦恼。
2021年7月和2022年1月,BNC银行进行了两次扩容升级,把分布式数据库架构拆开部署,达到缓解集群负载的目的。同时,TDSQL与长亮科技的数字银行产品iCore无缝集成,确保项目按时推进。
TDSQL帮助BNC在专业、可靠、安全和体验方面实现了极大提升。实际上,腾讯云数据库TDSQL作不仅具有强一致高可用、全球部署架构、企业级安全等特性,还提供智能 DBA、自动化运营、监控告警等配套设施,能够为金融机构提供完整的分布式数据库解决方案。
印尼BNC银行CEO Tjandra Gunawan表示:“我们采用了腾讯云分布式数据库TDSQL,应用到新核心系统中。它帮助解决了我行在数字化转型中遇到的问题,比如选取合适的技术架构、高频交易和数据安全问题,TDSQL也成为了我们数字服务中的基础底座。”
截至目前,在国内市场,腾讯云数据库TDSQL已经被3000多家来自金融、公共服务和电信等垂直行业客户采用,服务超过20家金融机构完成核心系统替换,中国十大银行中的七家都应用了TDSQL。
目前,腾讯云在印尼已经有两个可用区,助力东南亚客户更好更快完成数字化转型。截至目前,腾讯云已经在印尼市场服务了包括金融服务、电子商务、娱乐、游戏和教育等行业在内的众多客户。
印尼BNC的实践经验表明,印度尼西亚金融服务业正在进一步摒弃传统集中式数据库架构,转而使用可扩展的分布式架构。随着全球金融业务不断发展,印尼BNC银行将在东南亚市场产生示范效应。
我正在尝试解析一个CSV文件并使用SQL命令自动为其创建一个表。CSV中的第一行给出了列标题。但我需要推断每个列的类型。Ruby中是否有任何函数可以找到每个字段中内容的类型。例如,CSV行:"12012","Test","1233.22","12:21:22","10/10/2009"应该产生像这样的类型['integer','string','float','time','date']谢谢! 最佳答案 require'time'defto_something(str)if(num=Integer(str)rescueFloat(s
目录一.加解密算法数字签名对称加密DES(DataEncryptionStandard)3DES(TripleDES)AES(AdvancedEncryptionStandard)RSA加密法DSA(DigitalSignatureAlgorithm)ECC(EllipticCurvesCryptography)非对称加密签名与加密过程非对称加密的应用对称加密与非对称加密的结合二.数字证书图解一.加解密算法加密简单而言就是通过一种算法将明文信息转换成密文信息,信息的的接收方能够通过密钥对密文信息进行解密获得明文信息的过程。根据加解密的密钥是否相同,算法可以分为对称加密、非对称加密、对称加密和非
在Ruby中,是否有一种简单的方法可以将n维数组中的每个元素乘以一个数字?这样:[1,2,3,4,5].multiplied_by2==[2,4,6,8,10]和[[1,2,3],[1,2,3]].multiplied_by2==[[2,4,6],[2,4,6]]?(很明显,我编写了multiplied_by函数以区别于*,它似乎连接了数组的多个副本,不幸的是这不是我需要的)。谢谢! 最佳答案 它的长格式等价物是:[1,2,3,4,5].collect{|n|n*2}其实并没有那么复杂。你总是可以使你的multiply_by方法:c
我正在使用Ruby解决一些ProjectEuler问题,特别是这里我要讨论的问题25(Fibonacci数列中包含1000位数字的第一项的索引是多少?)。起初,我使用的是Ruby2.2.3,我将问题编码为:number=3a=1b=2whileb.to_s.length但后来我发现2.4.2版本有一个名为digits的方法,这正是我需要的。我转换为代码:whileb.digits.length当我比较这两种方法时,digits慢得多。时间./025/problem025.rb0.13s用户0.02s系统80%cpu0.190总计./025/problem025.rb2.19s用户0.0
我正在构建一个小部件来显示奥运会的奖牌数。我有一个“国家”对象的集合,其中每个对象都有一个“名称”属性,以及奖牌计数的“金”、“银”、“铜”。列表应该排序:1.首先是奖牌总数2.如果奖牌相同,按类型分割(金>银>铜,即2金>1金+1银)3.如果奖牌和类型相同,则按字母顺序子排序我正在用ruby做这件事,但我想语言并不重要。我确实找到了一个解决方案,但如果感觉必须有更优雅的方法来实现它。这是我做的:使用加权奖牌总数创建一个虚拟属性。因此,如果他们有2个金牌和1个银牌,加权总数将为“3.020100”。1金1银1铜为“3.010101”由于我们希望将奖牌数排序为最高的,因此列表按降序排
我想为名字验证编写一个正则表达式。正则表达式应包括所有字母(拉丁/法语/德语字符等)。但是我想从中排除数字并允许-。所以基本上它是\w(减)数(加)-。请帮忙。 最佳答案 ^[\p{L}-]+$\p{L}匹配anykindofletterfromanylanguage. 关于ruby-on-rails-rails中的正则表达式匹配[\w]和"-"但不匹配数字,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.c
在我的应用程序中,我有一个文本字段,用户可以在其中输入类似这样的内容"1,2,3,4"存储到数据库中。现在,当我想使用内部数字时,我有两个选择:"1,2,3,4".split(',')或string.scan(/\d+/)do|x|a两种方式我都得到一个像这样的数组["1","2","3","4"]然后我可以通过在每个数字上调用to_i来使用这些数字。有没有更好的方法可以转换"1,2,3"to[1,2,3]andnot["1","2","3"] 最佳答案 str.split(",").map{|i|i.to_i}但是这个想法对你来说
我有一个随机大小的散列,它可能有类似"100"的值,我想将其转换为整数。我知道我可以使用value.to_iifvalue.to_i.to_s==value来做到这一点,但我不确定我将如何在我的散列中递归地做到这一点,考虑到一个值可以是一个字符串,或一个数组(哈希或字符串),或另一个哈希。 最佳答案 这是一个非常简单的递归实现(尽管必须同时处理数组和散列会增加一些技巧)。deffixnumifyobjifobj.respond_to?:to_i#IfwecancastittoaFixnum,doit.obj.to_ielsifobj
什么是测试格式验证的最佳方法让我们说一个用户名,使用字母数字的正则表达式,但不是纯数字?我一直在我的模型中使用以下验证validates:username,:format=>{:with=>/^[a-z0-9]+[-a-z0-9]*[a-z0-9]+$/i}数字用户名(例如“342”)通过了验证,这是我不想要的。 最佳答案 您想“向前看”一封信:/\A(?=.*[a-z])[a-z\d]+\Z/i 关于ruby-on-rails-Rails格式验证——字母数字,但不是纯数字,我们在Sta
如果至少有两个相邻的数字相同,格式为,我需要打包.这是我的输入:[2,2,2,3,4,3,3,2,4,4,5]以及预期的输出:"2:3,3,4,3:2,2,4:2,5"到目前为止我试过:a=[1,1,1,2,2,3,2,3,4,4,5]a.each_cons(2).any?do|s,t|ifs==t如果相等,也许可以尝试计数器,但那是行不通的。 最佳答案 您可以使用Enumerable#chunk_while(如果你使用的是Ruby>=2.3):a.chunk_while{|a,b|a==b}.flat_map{|chunk|chu