TDSQL 安装部署(多图预警)
tyb编辑 2022-05-16 10:18 26

墨墨导读:分布式数据库(Tencent Distributed SQL,TDSQL)是腾讯打造的一款分布式数据库产品,具备强一致高可用、全球部署架构、分布式水平扩展、高性能、企业级安全等特性,同时提供智能DBA、自动化运营、监控告警等配套设施,为客户提供完整的分布式数据库解决方案

大会以“自研·智能·新基建——云和数据促创新 生态融合新十年” 为主题,相邀数据英雄,总结过往十年历程与成绩,展望未来十年趋势与目标!

TDSQL按照官方要求配置相对较高,现通过4台虚拟机演示TDSQL的全套部署。如有不对的地方请指证 wx:moonstar00

机器数量规划:

tdsql 规划机器如下:4台(CPU:2core/MEM:8G/HDD:50G) ,内存至少5G以上 ,CPU 至少2C以上, 否则检查通不过

TDSQL安装部署

1.设主机名
hostnamectl set-hostname huyidb01
hostnamectl set-hostname huyidb02
hostnamectl set-hostname huyidb03
hostnamectl set-hostname huyidb04

2.配置主机名
vim /etc/hosts
10.85.10.51 huyidb01
10.85.10.52 huyidb02
10.85.10.53 huyidb03
10.85.10.54 huyidb04

3.设置时间同步
以huyidb01为主时钟
mount /dev/cdrom /mnt
yum -y install ntp*
 
[root@huyidb01 ~]# vim /etc/ntp.conf
#同步地址
server 127.127.1.0 iburst
systemctl restart ntpd.service
[root@huyidb02 ~]# vim /etc/ntp.conf
server 10.85.10.51
restrict 10.85.10.51 mask 255.255.240.0 nomodify notrap
systemctl restart ntpd.service
ntpdate -u 10.85.10.51
[root@huyidb03 ~]# vim /etc/ntp.conf
server 10.85.10.51
restrict 10.85.10.51 mask 255.255.240.0 nomodify notrap
systemctl restart ntpd.service
ntpdate -u 10.85.10.51
[root@huyidb04 ~]# vim /etc/ntp.conf
server 10.85.10.51
restrict 10.85.10.51 mask 255.255.240.0 nomodify notrap
systemctl restart ntpd.service
ntpdate -u 10.85.10.51
 
4.配置免密登录(管理机 110.85.10.54 上操作)
ssh-keygen -t rsa                --这里不用输入密码,免密码登录
ssh-copy-id 10.85.10.51          --下面要输入远程主机的密码
ssh-copy-id 10.85.10.52
ssh-copy-id 10.85.10.53
ssh-copy-id 10.85.10.54
#这里是通过IP copy的 ,测试的时候也只要用IP  例:ssh 10.85.10.51

5.准备数据目录路径(所有机器)
mkdir -p  /mysql/data
mkdir -p  /mysql/log

安装ANSIBLE

unzip tdsql_full_install_ansible.zip
cd tdsql_full_install_ansible
python settings/install_ansible.py

配置tdsql_hosts

vi  /soft/tdsql_full_install_ansible/tdsql_hosts
[envcheck]
tdsql_huyidb01 ansible_ssh_host=10.85.10.51
tdsql_huyidb02 ansible_ssh_host=10.85.10.52
tdsql_huyidb03 ansible_ssh_host=10.85.10.53
tdsql_huyidb04 ansible_ssh_host=10.85.10.54
[zk]
tdsql_zk1 ansible_ssh_host=10.85.10.51
tdsql_zk2 ansible_ssh_host=10.85.10.52
tdsql_zk3 ansible_ssh_host=10.85.10.53
[scheduler]
tdsql_scheduler1 ansible_ssh_host=10.85.10.52
tdsql_scheduler2 ansible_ssh_host=10.85.10.53
[oss]
tdsql_oss1 ansible_ssh_host=10.85.10.52
tdsql_oss2 ansible_ssh_host=10.85.10.53
[chitu]
tdsql_chitu1 ansible_ssh_host=10.85.10.52
tdsql_chitu2 ansible_ssh_host=10.85.10.53
[monitor]
tdsql_monitor1 ansible_ssh_host=10.85.10.52
tdsql_monitor1 ansible_ssh_host=10.85.10.53
[db]
tdsql_db1 ansible_ssh_host=10.85.10.51
tdsql_db2 ansible_ssh_host=10.85.10.52
tdsql_db3 ansible_ssh_host=10.85.10.53
[proxy]
tdsql_proxy1 ansible_ssh_host=10.85.10.51
tdsql_proxy2 ansible_ssh_host=10.85.10.52
tdsql_proxy3 ansible_ssh_host=10.85.10.53
[hdfs]
tdsql_hdfs1 ansible_ssh_host=10.85.10.54
[lvs]
tdsql_lvs1 ansible_ssh_host=10.85.10.52
tdsql_lvs2 ansible_ssh_host=10.85.10.53
[kafka]
tdsql_kafka1 ansible_ssh_host=10.85.10.51
tdsql_kafka2 ansible_ssh_host=10.85.10.52
tdsql_kafka3 ansible_ssh_host=10.85.10.53
[consumer]
tdsql_consumer1 ansible_ssh_host=10.85.10.54
[es]
tdsql_es1 ansible_ssh_host=10.85.10.54
[newdb]
tdsql_newdb1 ansible_ssh_host=1.1.1.1
tdsql_newdb2 ansible_ssh_host=2.2.2.2
tdsql_newdb3 ansible_ssh_host=3.3.3.3

修改 ansible 变量

vi   /soft/tdsql_full_install_ansible/group_vars/all
zk_num: 3
netif_name: ens38                            #<---填入 scheduler(ifconfig 看到的)网卡的名称
tdsql_pass: a+complex+password
zk_rootdir: /tdsqlzk

下面参数后面安装相关模块时在调整

metadb_ip: 10.120.109.204
metadb_port: 15001
metadb_ip_bak: 10.120.109.205
metadb_port_bak: 15001
metadb_user: hanlon
metadb_password: hanlon
ssh_port: 36000
hdfs_datadir: /data2/hdfs,/data3/hdfs,/data4/hdfs
kafka_logdir: /data2/kafka,/data3/kafka,/data4/kafka
es_mem: 8
es_log_days: 7
es_base_path: /data/application/es-install/es
tdsql_secret_pass: K2JatUv5llBbMrske/k2YbqC
oc_secret_pass: LGhVs0v5nVxcOLQie/k9bb2I
clouddba_metadb_pass: h5Wyg2Xy

执行安装 part1_site.yml

sh encrypt.sh                                      <---------必须执行,更新密文密码
ansible-playbook -i tdsql_hosts part1_site.yml
# 执行了近20多分钟 ,执行完成要无failed=0
PLAY RECAP ********************************************************************************************************************************************************
chitu1                     : ok=20   changed=19   unreachable=0    failed=0
chitu2                     : ok=20   changed=19   unreachable=0    failed=0
db1                        : ok=13   changed=12   unreachable=0    failed=0
db2                        : ok=13   changed=12   unreachable=0    failed=0
db3                        : ok=13   changed=12   unreachable=0    failed=0
huyidb01                   : ok=30   changed=19   unreachable=0    failed=0
huyidb02                   : ok=27   changed=16   unreachable=0    failed=0
huyidb03                   : ok=27   changed=16   unreachable=0    failed=0
huyidb04                   : ok=27   changed=17   unreachable=0    failed=0
oss1                       : ok=14   changed=11   unreachable=0    failed=0
oss2                       : ok=14   changed=11   unreachable=0    failed=0
proxy1                     : ok=13   changed=10   unreachable=0    failed=0
proxy2                     : ok=13   changed=10   unreachable=0    failed=0
proxy3                     : ok=13   changed=10   unreachable=0    failed=0
scheduler1                 : ok=25   changed=23   unreachable=0    failed=0
scheduler2                 : ok=22   changed=20   unreachable=0    failed=0
zk1                        : ok=19   changed=17   unreachable=0    failed=0
zk2                        : ok=19   changed=17   unreachable=0    failed=0
zk3                        : ok=19   changed=17   unreachable=0    failed=0

错误:

TASK [zk_cluster : upload the template file zk_configure.py to the dst host] ************************************************************************************************************************************************************
fatal: [tdsql_zk1]: FAILED! => {"changed": false, "msg": "AnsibleUndefinedVariable: \"hostvars['zk1']\" is undefined"}
fatal: [tdsql_zk2]: FAILED! => {"changed": false, "msg": "AnsibleUndefinedVariable: \"hostvars['zk1']\" is undefined"}
fatal: [tdsql_zk3]: FAILED! => {"changed": false, "msg": "AnsibleUndefinedVariable: \"hostvars['zk1']\" is undefined"}
        to retry, use: --limit @/soft/tdsql_full_install_ansible/part1_site.retry

原因:tdsql_hosts 配置标签不规范 , 版本不同,标签有所不同. 具体的参考模板,只改IP) 解决办法: tdsql_zk1 改为 zk1

初始化chitu

http://10.85.10.52/tdsqlpcloud

注意这里的OSS IP ,可能不是实际IP

可以查看cat /data/application/OSS/conf/scheduler.xml 或 netstat 查看

[root@huyidb02 ~]# netstat -an | grep 8080
tcp        0      0 192.168.58.131:8080     0.0.0.0:*               LISTEN

注意:这里的OSS IP ,可能不是实际IP
可以查看cat /data/application/OSS/conf/scheduler.xml
     或  netstat 查看
    [root@huyidb02 ~]# netstat -an | grep 8080
tcp        0      0 192.168.58.131:8080     0.0.0.0:*               LISTEN

机型查看:

[root@huyidb02 data]# dmidecode | grep “Product Name”
Product Name: VMware Virtual Platform
Product Name: 440BX Desktop Reference Platform

DB机型 这里填 440BX

注意: 不同DB 要在不同的IDC 同一个网关组的要在同一个IDC中

登录运营管理平台: 帐号密码 admin/123456

[root@huyidb02 data]# mysql -utdsqlpcloud  -h10.85.10.52 -P15001 -p'tdsqlpcloud'
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MySQL connection id is 3171
Server version: 5.7.17-11-V2.0R540D002-20191226-1152-log Source distribution
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MySQL [(none)]>

在管理库修改
vi  /soft/tdsql_full_install_ansible/group_vars/all
metadb_ip: 10.85.10.52
metadb_port: 15001
metadb_ip_bak: 10.85.10.53
metadb_port_bak: 15001
metadb_user: tdsqlpcloud
metadb_password: tdsqlpcloud
# 执行安装 part2_site.yml
sh encrypt.sh                                    <---------必须执行,更新密文密码
ansible-playbook -i tdsql_hosts part2_site.yml
注意:failed=0
PLAY RECAP ********************************************************************************************************************************************************
chitu1                     : ok=19   changed=16   unreachable=0    failed=0
chitu2                     : ok=5    changed=4    unreachable=0    failed=0
huyidb01                   : ok=18   changed=11   unreachable=0    failed=0
huyidb02                   : ok=18   changed=11   unreachable=0    failed=0
huyidb03                   : ok=18   changed=11   unreachable=0    failed=0
huyidb04                   : ok=18   changed=11   unreachable=0    failed=0
monitor1                   : ok=12   changed=12   unreachable=0    failed=0
oss1                       : ok=14   changed=9    unreachable=0    failed=0
oss2                       : ok=14   changed=9    unreachable=0    failed=0
scheduler1                 : ok=31   changed=26   unreachable=0    failed=0
scheduler2                 : ok=22   changed=18   unreachable=0    failed=0

#在任意一台 scheduler 机器上执行下面的命令:
cd /data/application/scheduler/bin
./agent_config --mode modify --option="ocagent_port" --value="8966"
./agent_config --mode modify --option="hadoop_dir" --value="/data/home/tdsql/hadoop-3.2.1/bin"

安装备用赤兔(如果有另一个未初始化的 chitu)

将已初始化的 chitu 机器上拷贝 2 个文件到未初始化的 chitu 机器上,并删除未初始化 chitu 机器上的 crontab,如下:
 10.85.10.52 已初始化 chitu
 10.85.10.53 未初始化 chitu
(1)在 52 机器上,拷贝文件到 53 机器上
scp -p /data/website/tdsqlpcloud/www/config/database.php  10.85.10.53:/data/website/tdsqlpcloud/www/config/
scp -p /data/website/tdsqlpcloud/www/config/install.lock  10.85.10.53:/data/website/tdsqlpcloud/www/config/2)删除 53 机器上 nginx 用户的 crontab
cp -a /var/spool/cron/nginx /data/tools/nginx_cron_bak
rm -f /var/spool/cron/nginx
(3)测试,登录 53 的 chitu
http://10.85.10.53/tdsqlpcloud
至此TDSQL的基本模块已安装完成。

安装其它模块(可选) 安装以下模块之前要确保 TDSQL 核心模块安装无误后再进行。 如果需要使用 hdfs 异地冷备存储 binlog 和镜像文件,用于数据回档恢复,安装 hdfs。 如果需要使用 tdsql 默认提供的接入层 lvs,安装 lvs。 如果需要使用多源同步功能,安装 kafka 和 consumer。 如果需要使用网关日志分析及 sql 审计功能,安装 es。

安装 hdfs

1)准备 hdfs 的数据目录的路径
    首先用 lsblk 查看磁盘信息
    格式化为 xfs 文件系统
    mkfs.xfs -f /dev/sdg
    创建目录
    mkdir -p /mysql/backup
    修改/etc/fstab 文件,设置自动挂载到指定路径
    /dev/sdg /mysql/backup  xfs defaults,noatime 0 0
    挂载磁盘
    mount -a
(2)设置主机名
    在 hdfs 机器上设置主机名,hdfs 集群中主机名不能重复,不能有下划线、中划线等特殊字符,
    hostnamectl set-hostname huyidb04
(3)检查 tdsql_hosts 文件
    vim tdsql_hosts
    [hdfs]                                   <---填入 hdfs 机器地址,hdfs 的数量只能是 13
    hdfs1 ansible_ssh_host=10.85.10.544)修改 hdfs 变量
    修改 group_vars/all 中下面的相关变量
    vim group_vars/all
    ---
    ssh_port: 36000  <----实际的 ssh 通信端口
    hdfs_datadir: /mysql/backup  <----多个迪特 一个磁盘一个路径,逗号分隔
     注意这些数据文件路径的权限要是 tdsql,如下:
     chown -R tdsql:users /mysql/backup
(5)安装 hdfs 单点  (我的是单点HDFS)
    执行安装
    ansible-playbook -i tdsql_hosts hdfs_single.yml
    su - tdsql
    hdfs namenode -format             <---格式化 namenode
    启动 namenode 和 datanode :
        hdfs --daemon start namenode
        hdfs --daemon start datanode
        附:用 tdsql 用户关闭 hdfs 进程 :
            hdfs --daemon stop datanode
            hdfs --daemon stop namenode
        
(6)安装 hdfs 高可用架构 (如果是高可用 用下面的方式安装)
    3 个节点,并且 zk 集群不能是单点。
    执行安装 hdfs
    ansible-playbook -i tdsql_hosts hdfs.yml
    su - tdsql
    用 tdsql 用户初始化 hdfs 集群,初始化顺序如下,初始化的工作只用做一次,不要重复初始化
    用 tdsql 用户在 hdfs1 机器,格式化 zk
    hdfs zkfc -formatZK
    用 tdsql 用户在所有机器,启动 journalnode
    hdfs --daemon start journalnode
    用 tdsql 用户在 hdfs1 机器,格式化并启动 namenode
    hdfs namenode -format
    hdfs --daemon start namenode
    用 tdsql 用户在 hdfs2 机器,格式化 namenode
    hdfs namenode -bootstrapStandby
    用 tdsql 用户启动 hdfs 集群,启动顺序如下,已经启动的进程就不用重复再启动了,查看启动的进程”jps”
        在所有 hdfs 机器上启动 journalnode
        hdfs --daemon start journalnode
        在 hdfs1 和 hdfs2 上启动 namenode
        hdfs --daemon start namenode
        在 hdfs1 和 hdfs2 上启动 zkfc
        hdfs --daemon start zkfc
        在所有 hdfs 机器上启动 datanode
        hdfs --daemon start datanode
        附:用 tdsql 用户关闭 hdfs 集群,关闭顺序如下
            在所有 hdfs 机器上关闭 datanode
            hdfs --daemon stop datanode
            在 hdfs1 和 hdfs2 上关闭 zkfc
            hdfs --daemon stop zkfc
            在 hdfs1 和 hdfs2 上关闭 namenode
            hdfs --daemon stop namenode
            在所有 hdfs 机器上关闭 journalnode
            hdfs --daemon stop journalnode
(7)在 hdfs 集群下查看/tdsqlbackup 路径
    用 tdsql 用户执行以下命令
    #查看/tdsqlbackup 目录是否已经被自动创建,权限是否如下
    hadoop fs -ls /
    drwxr-xr-x - tdsql supergroup 0 2019-01-02 17:52 /tdsqlbackup
    如果目录不在或者权限不对,用下面命令修改:
    hadoop fs -mkdir /tdsqlbackup
    hadoop fs -chown tdsql.supergroup /tdsqlbackup
(8)管理 hdfs 集群
    用 tdsql 用户执行以下命令
    查看所有 namenode 节点状态,及主备情况(只适用于高可用 3 节点架构)
    hdfs haadmin -getAllServiceState
    查看所有 datanode 节点的状态,及上报的容量情况
    hdfs dfsadmin -report
(9)注意
    用 tdsql 用户执行 jps 命令,可以看到 hdfs 的进程名称(只适用于高可用 3 节点架构)
    hdfs1 和 hdfs2 机器上应该看到 NameNode、JournalNode、DataNode、DFSZKFailoverController
    hdfs3 机器上应该看到 DataNode、JournalNode
(10)配置 hdfs 监控
    如果有 HDFS,但是没有配置 HDFS 监控,到""集群管理->集群配置”中设置“HDFS 服务列表"",
    注意:如上图所示填写 namenode 节点(一般 2 个)的 50070 端口
          生产环境不能用单节点 hdfs,单节点架构的 hdfs 的端口号是 9870

安装 lvs

lvs 机器建议单独部署,不建议和别人复用(最多只能和 zk 复用)。
(1)检查 tdsql_hosts 文件
    vim tdsql_hosts
    [lvs] <---填入 lvs 地址,lvs 的数量固定为 2
    lvs1 ansible_ssh_host=10.85.10.52
    lvs2 ansible_ssh_host=10.85.10.532)安装 lvs
    ansible-playbook -i tdsql_hosts lvs.yml
(3)赤兔前台操作 lvs      接入层管理 -> LVS 设备资源管理 -> 上报 LVS 设备资源
    上报 lvs 机器信息(2 台 lvs 机器信息都要上报)
    设备 IP:填入 LVS 机器的通信 ip 地址。
    网卡名字:通信网卡设备名。
    子网掩码:填入实际的子网掩码。
    IDC:lvs 机器需要划分到同一个 IDC 中,比如这里的“IDC_SZ_YDGL_0401_000001”。

创建 VIP(不能选取部署的机器 IP 作为 VIP,需要另选之外一个) VIP:规划一个 vip 的地址,vip 的地址要和 lvs 机器的通信 ip 地址在同一个网段内。 设备 IP 列表:填入 lvs 机器的通信 ip 地址,一行一个。

创建 VIPGroup VIPGroup 名:新建一个 vipgroup,取一个有意义的名字。

安装 kafka

1)检查 tdsql_hosts 文件
    vim tdsql_hosts
    [kafka]                                  <----填入 kafka 集群的地址,kafka 的数量固定为 3
    kafka1 ansible_ssh_host=10.85.10.51   <----kafka 机器的 java 虚拟机占用 3 个 g 以上内存
    kafka2 ansible_ssh_host=10.85.10.52
    kafka3 ansible_ssh_host=10.85.10.532)修改多源同步变量
    修改 group_vars/all 中下面的相关变量
    vim group_vars/all
    kafka_logdir:  /mysql/log/kafka              #日志要创建kafka目录
(3)执行安装多源同步
    ansible-playbook -i tdsql_hosts kafka.yml
(4)验证是否安装成功
    cd /data/application/kafka_2.12-2.3.1/logs
    vim server.log            <----查看 kafka 启动信息

安装 consumer

1) 查看 tdsql_hosts 文件
    [consumer] <---填入消费者的地址,数量固定为 1
    consumer1 ansible_ssh_host=10.240.139.352)执行安装 consumer
    ansible-playbook -i tdsql_hosts consumer.yml
(3)启动消费者服务
    在 consumer 的机器上,使用下面命令启动消费者服务
    cd /data/application/consumer/bin/
    ./binlogconsumermgn --zklist 10.240.139.35:2181 --zkrootpath /noshard1 --kafkazklist  10.240.139.35:2181 --kafkazkrootpath /kafka --dev eth1
    参数说明:
    --zklist ZK 的 ip:port,可以写多个 ZK ip:port,多个之间用英文逗号分隔
    --zkrootpath 注意整理 zk 根节点与部署的时候 group_vars/all 下的” zk_rootdir”一致
    --kafkazklist kafka 所在 zk,通常与--zklist 一样
    --kafkazkrootpath kafka 在 ZK 上的根节点,固定是/kafka
    --dev consumer 的网卡名称
    例如:
    ./binlogconsumermgn --zklist 10.85.10.51:2181,10.85.10.52:2181,10.85.10.53:2181 --zkrootpath /tdsqlzk --kafkazklist  10.85.10.51:2181,10.85.10.52:2181,10.85.10.53:2181 --kafkazkrootpath /kafka --dev ens38

安装 es

1) 查看 tdsql_hosts 文件(不能与 chitu 同一台机器)
    [es] <---填入 es 的地址,数量固定为 1
    es1 ansible_ssh_host=10.85.10.54
    修改变量文件 vim group_vars/all
    es_mem: 8                                                             <-----内存占用,如果这里写 8 则至少占用 8*2=16G 内存
    es_log_days: 7                                                        <-----日志保留天数
    es_base_path: /data/application/es-install/es                        <-----es 数据存放路径
    改为
    es_mem: 2
    es_log_days: 7
    es_base_path: /mysql/data/es-install/es
(2)执行安装 es
    ansible-playbook -i tdsql_hosts es_single.yml
(3)启停命令(在 es 机器上操作):
    # stop
    ps -ef |grep elasticsearch | grep -v 'grep'| awk '{print $2}' | xargs kill -9
    ps -ef |grep logstash | grep -v 'grep'| awk '{print $2}' | xargs kill -9
    ps -ef |grep es-cleaner | grep -v 'grep'| awk '{print $2}' | xargs kill -9
    ps -ef |grep 'node/bin/node' | grep -v 'grep'| awk '{print $2}' | xargs kill -9
    # start
    tdsql 用户启动:
    cd /data/application/es-install/es/master/tools
    ./start-elasticsearch.sh
    cd /data/application/es-install/es/data/tools
    ./start-elasticsearch.sh
    root 用户启动:
    cd /data/application/es-install/logstash/tools
    ./start-logstash.sh
    cd /data/application/es-install/es-cleaner
    ./start-es-cleaner.sh
    cd /data/application/es-install/kibana-5.6.4-linux-x86_64/bin/
    nohup ./kibana &
    # 检测是否正常启动
    ps -ef |grep elasticsearch | grep -v 'grep' |wc -l
    输出为:4                                              <--------我的单个ES 个数为0
    ps -ef |grep logstash | grep -v 'grep' |wc -l
    输出为:2
    ps -ef |grep es-cleaner | grep -v 'grep' |wc -l
    输出为:1
    ps -ef |grep 'node/bin/node' | grep -v 'grep' |wc -l
    输出为:13)es 的验证及相关配置
    输入 es IP 地址,打开 es 前台页面。
    启动 es 后,需要把实例详情中的“网关审计数据是否入库”打开,选择“是”。

只有在打开这个开关后的日志才会入 es,为了可以定位问题,需要的话一定要尽早打开。

至此,TDSQL所有模块已部署完成,后期可以直接使用和测试了。

更多内容可参考:https://www.cnblogs.com/cqdba/p/13704465.html

墨天轮原文链接:https://www.modb.pro/db/32609(复制到浏览器中打开或者点击“阅读原文”)

TDSQL动态
在“国产数据库硬核技术沙龙-TDSQL-A技术揭秘”系列分享中,5位腾讯云技术大咖分别从整体技术架构、列式存储及相关执行优化、集群数据交互总线、分布式执行框架以及向量化执行引擎等多方面对TDSQL-A进行了深入解读。 在本系列分享的最后一期,我们整理了关于TDSQL-A大家最关心的十个问题,腾讯云技术大咖们将对这些问题一一解答。
在“国产数据库硬核技术沙龙-TDSQL-A技术揭秘”系列分享中,5位腾讯云技术大咖分别从整体技术架构、列式存储及相关执行优化、集群数据交互总线、分布式执行框架以及向量化执行引擎等多方面对TDSQL-A进行了深入解读。 在本系列分享的最后一期,我们整理了关于TDSQL-A大家最关心的十个问题,腾讯云技术大咖们将对这些问题一一解答。
随着新一轮科技革命浪潮的推进,数据规模呈现爆发式的增长,数据类型愈发丰富,数据应用也在快速深化。值此背景下,数据库的发展呈现出“云原生、国产化、开源共建”三大趋势。
金融行业自身受到了互联网行业的冲击。例如目前中国网民的两大节日:阿里巴巴的“11.11剁手节”,微信的“春节红包节”,给银行的支付系统,尤其是快捷支付系统,带来了很大冲击,原有的IOE架构面领比较大的挑战。此外,金融行业内部也开始思考,如何通过云计算、大数据等技术,提供更为普惠的金融服务,提升金融行业的服务效率。这些都使得基于TDSQL的分布式互联网架构来代替集中式的IOE架构成为可能。
TDSQL又双叒叕获奖啦!在2021年IT168对外公布的“数据库·数据风云奖”评选中,经由行业技术专家及IT媒体多方联合评审,腾讯云企业级分布式数据库TDSQL凭借其出众的产品实力斩获‘‘2021年度技术卓越奖’’,这是继本月获得‘‘2021PostgreSQL中国最佳服务商’’‘‘2021PostgreSQL中国最佳数据库产品’’之后再次获奖。
TDSQL-C采用计算和存储分离的架构,所有计算节点共享一份数据,存储容量高达128TB,单库最高可扩展至16节点,提供秒级的配置升降级、秒级的故障恢复和数据备份容灾服务。TDSQL-C既融合了商业数据库稳定可靠、高性能、可扩展的特征,又具有开源云数据库简单开放、自我迭代的优势。
给编码者带来良性的社交压力。你正写一个比较紧急的需求,团队对代码的单元测试有一个要求:凡是新增的代码,必须有完整的单元测试以及需要达到一定覆盖率。此时你是否会有这样的想法,为了应付测试工具的覆盖率要求,先写一点不那么有用但是能带来覆盖率的测试。但是,一旦想到你的代码将会有你的同事参与review,有没有为刚才的这种想法产生一丝丝压力?这种压力是良性的,会阻止你去选择这些隐患很大的“投机”行为。
5月29日, DataFunSummit——多维分析架构峰会“HTAP 引擎论坛”如约而至,本论坛由腾讯云数据库技术总监李跃森老师出品。同时,论坛上,腾讯云数据库高级工程师陈再妮带来了主题为“TDSQL在HTAP领的探索与实践”的演讲分享,以下为分享回顾。