简单生活

  • 这个示例可以结合着之前的连接MySQL一起来看:参考

    代码如下。当然,运行之前,你需要

    • 已经完成了基本的工具安装,这个并不容易(参考)
    • 已经有一个可以正常运行的与连接的SQL Server
    • 已经有一个网络上到SQL Server联通的主机的ssh账号
    • 下面的实例中,还需要一个t_1表,表中有三个字段

    import pyodbc
    import pandas as pd
    import logging
    import sshtunnel
    from sshtunnel import SSHTunnelForwarder
    
    ssh_host = 'x.x.x.x'
    ssh_port=22
    ssh_username = 'lilei'
    ssh_password = 'xxxxxx'
    
    
    db_server = 'x.x.x.x'
    db_port= 1433
    database = 'xxx'
    db_username = 'xxx'
    db_password = 'xx'
    
    
    tunnel = SSHTunnelForwarder(
        (ssh_host, ssh_port),
        ssh_username = ssh_username,
        ssh_password = ssh_password,
        remote_bind_address = (db_server, db_port),
    )
    tunnel.start()
    
    
    cnxn = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER=127.0.0.1,'+str(tunnel.local_bind_port)+';DATABASE='+database+';UID='+db_username+';PWD='+ db_password)
    cursor = cnxn.cursor()
    
    cursor.execute("SELECT * FROM dbo.t_1;")
    row = cursor.fetchone()
    while row:
        print('ID: %(id)03s | nick: %(nick)012s | birthdate: %(bd)010s' %
          {'id':row[0],'nick':row[1],'bd':row[2]})
        row = cursor.fetchone()

  • 最近,Gartner正式发布了2021年云数据库魔力象限。阿里云继续保持在全球领导者象限,华为继续在第三象限,位置也有不错的提升,腾讯竟意外落选。国际厂商,微软凭借强大的云战略,横纵坐标全面超越Oracle,AWS和微软则齐头并进。

    去年,笔者也深度参与阿里云数据库冲击Gartner Leader象限的项目,整体上,Gartner在产品评估上已经是非常专业与细致的,评估的维度也比较立体,涵盖了产品能力、市场理解、技术创新、未来规划、市场份额、客户反馈等多个方面,可以作为企业软件选择的重要参考。

    数据库厂商在魔力象限上的“战争”

    我们一起来回顾一下,自魔力象限发布以来总计九次魔力象限的厂商分布​。

    2020年,Gartner将魔力象限从Operational Database更名为Cloud Database,Amazon和所有的云厂商,也获得了更多的认可。前面十年是微软和Oracle争夺老大的地位,未来,将是Amazon和微软争夺。从2020年MQ来看,Oracle已经在纵坐标上落后于海外的三家云计算厂商Amazon、微软和Google了,在今年,随着Oracle云战略的进展,位置也有了一些进展。整体上,这四家公司,也组成了整个象限的第一“集团”。

    从2013年到2019年,Oracle和微软一直是前两名,并且保持着统治性的领先。Oracle凭借着强大的数据库能力和几十年的积累,在各个行业的头部大型企业中占据了绝对领先的位置,构建了难以超越的数据库能力;微软则凭借SQL Server和强大且封闭的Windows开发生态,在中小企业占据了领先。在云计算逐渐兴起的过去十年,两家厂商都在all-in云计算。微软通过强大的开发者生态以及对大量企业客户的深耕,同时在云计算上坚决的投入,已经在云计算领域已经成为了三分天下的一方霸主。Oracle的云计算战略则比较坎坷(技术与人员上),目前,还在持续迎头赶上的阶段,目前,市场份额还比较小。


    Snowflake和Databricks两个“欢喜冤家”也分别从挑战者、远见者象限进入了领导者象限。前者市值已经接近1000亿美元,后者在最近一次融资中估值达到了380亿美元。数据库领域,已经从存储价值扩展到了通过数据分析与洞察实现了直接的业务价值。另外,两者也分别是多云原生和开源分析产品的典型方向的代表,可以看到后续会有更多厂商加入到这些领域进行创新。

    Amazon凭借云计算领域的绝对优势,改变了企业的软硬件架构,从而也彻底改变企业使用数据库方式,AWS的创新产品DynamoDB、Aurora也给开发者带来非常大的数据存储与处理的便利。Amazon自从2016年进入MQ以来,就一直是在Leader象限,而且位置也在逐年向前。

    阿里云数据库,自2018年首次进入数据库魔力象限,到2020年成功进入全球领导者象限,确实是中国数据库在世界范围内的一次重大突破。阿里巴巴过去的二十年,在数据库方向投入都非常大,每个阶段都有非常强的团队和领导者,包括汪海、陈吉平、冯春培、阳振坤、周宝方、张瑞、周光辉、余锋、曹伟、杨冰、杨传辉,到现在的李飞飞,团队规模之大,人员能力(一个参考是人员级别)之强,是国内公司独一无二的。2018年,李飞飞的加入,也让阿里云数据库的影响力,逐步的扩展到了海外。到现在,已经基本在领导者象限站稳脚跟,继续突破则是要正面与国外厂商在产品能力、市场、战略、人才等多角度​竞争。

    不在乎的Gartner的MongoDB 自2013年其就在MQ当中,2015年进入Leaders象限,2016年跌入Challengers象限,2017年在MQ的“大裁剪”中不再出现。但是,MongoDB在开发者群体中依旧非常受欢迎,在2021年StackOverflow的开发者年度调研中,MongoDB为排名第四的数据库;在资本市场,MongoDB自2017年上市以来,每股30美元增至到现在的超500美元(对应市值约350亿美元),应该是数据库领域非常耀眼的明星了,但似乎一直不怎么受Gartner MQ的“待见”。

    一直默默向前的MariaDB,今年第一次入选MQ。MariaDB凭借在多云部署、混合分析能力、容量评估与性能诊断等综合能力受到​认可。MariaDB这些年一直在苦苦与MySQL竞争,但是MySQL依旧凭借着最近十几年积累的生态与品牌优势,暂时领先。也许,现在是时候考虑,用MariaDB替换部分的MySQL​了。

    ​最后

    Gartner对于市场份额考量非常重,相对来说,对于较小的、垂直的数据库厂商不是那么的友好。另外,市场占有率有时候也比较难评估,各家厂商的最真实的数据,也不会直接透露给Gartner,实际透露给Gartner都会从结果的角度考虑,做一些调整。

    Gartner对于使用场景考虑是有一定缺陷的。比如,SAP、InterSystems等厂商,数据库主要是用于自家的应用系统,收入也都来自这些地方,这就让收入数值调整的空间比较大。另外,这样的评价,对于企业进行数据库架构选型并没有太大的参考意义。而,这应该是Gartner MQ的重要作用之一。

  • 在前段时间微软Ignite前后,Azure的SQL Server托管服务(Azure SQL Managed Instance)发布一个基于”Always On”技术的新的“Link”特性。可以帮助用户在云端实例和其他环境实例建立一条同步链路,将其他环境的数据同步到Azure云端。该功能当前处于邀请测试阶段(limited public preview),支持SQL Server 2019(需要CU13),长期计划支持2016及其以后的版本。

    从感受上来说,国外三家云厂商,Azure应该是更新最快速的,可以说是最努力的那朵云,相比AWS虽然起步晚,但是跑得非常快。从这个功能来看,微软在尝试通过产品化的方式帮助用户将本地的数据,快速、低成本的迁移到Azure。

    这里简单介绍一下该功能。使用该功能,可以实现如下能力:

    • 将本地或者其他云上的SQL Server数据”近实时”地同步到Azure云的SQL Server
    • 可以实现本地环境SQL Server的读扩展,可以将部分可以接受延迟的读服务切换到Azure上
    • 可以利用Azure上的一些分析产品能力,包括Synapse、MI、PBI等
    • 可以通过多个Link通路,将多个实例数据同步一个Azure实例上用于聚合分析
    • 利用Azure在全球众多区域部署,使用Link同步通路,可以让业务快速具备就近访问的能力
    • 可以帮助用户更加无缝的实现,从其他环境迁移到Azure上,使用Link特性是一个很好地过渡
    • 如果需要建设SQL Server数据库的容灾能力,这也是一个非常简单快速的方式

    参考链接:

    • Managed Instance link – connecting SQL Server to Azure reimagined:链接
    • Link feature for Azure SQL Managed Instance (limited preview):链接
    • Distributed availability groups:链接
  • 云数据库行业动态@20211201

    ·

    行业头条

    • 2022 IEEE Fellow 新晋名单出炉,阿里云数据库李飞飞入选。

    非常了不起,简单来说,叫”李飞飞”大概都非常牛逼,无论男女。不过话说,这次还没有看到阿里云开始宣传,难道还憋了更大的招?

    • Aurora开始支持MySQL 8.0:参考。AWS上版本号为3.01.0版本,基于MySQL 8.0.23版本。
    • Neptune开始支持ARM架构的实例:参考
    • DocumentDB开始支持Graviton 2实例,性能号称提升30%:参考

    今天是AWS年度大会re:Invent第一天,最近一个月AWS都在密集的发个各种功能。MySQL 8.0于2018年4月正式GA,三年半之后,Aurora正式支持8.0版本,看到,Aurora对于内核改造/定制是非常大的,导致一个大版本发布后的改造量非常大,跟紧社区的成本很高,当然,这大概也和官方8.0版本的代码一直以来变化比较大有一些关系。

    另外,AWS一直在加大Graviton2(ARM-Based)实例的支持与宣传,随着,云原生架构的标准化,IaaS层性价比将是各个云厂商的”基本内功”,在Graviton2上的投入,就相当于AWS在提前的偷偷修炼内功了,这与苹果做M1是一样的道理。

    • 火山引擎成为字节跳动的独立BU,云计算战略呼之欲出:参考

    期望看到更加繁荣的云计算市场,不过云计算是一个技术、资金投入都非常大的方向,字节加油!

    (more…)
  • 你一定要了解的Terraform

    ·

    HashiCorp正在筹备IPO,预计市值超100亿美金(参考)。创始人(参考)2011年大学毕业,2012年创建HashiCorp,2021年上市,又将是一个科技传奇。HashiCorp在Github上最受欢迎的项目就是Terraform,已经可以断定,Terraform会是未来资源编排服务的事实标准。

    Terraform在国内的使用还不是很多,讨论也不太多。这里就聊一下为什么开发者会选择Terraform,为什么企业应该选择Terraform作为资源编排的标准:

    1. Terraform目前已经支持了众多云厂商及其其他资源厂商,也可以反过来说,各个厂商都已经支持了terraform,对于各类云资源的管理,Terraform已经成为了IaC的事实标准。广泛的支持,让开发者不需要重复去学习和编写各个云厂商的API脚本,而是通过开源的方式,大家共用共建的Terraform内核能力,然后直接使用Terraform的描述性语言完成工作,直接复用了由开源社区构建的底层能力。

    2. 虽然各个云产生也都有自己的资源管理服务,例如AWS的CloudFormation、Azure的Azure Resource Manager、阿里云的ROS等。但对一家中/大型企业来说,通常都是使用了多云的资源,那么选择第三方的服务才是最简洁、效率最高的方式。无需重复适配各家厂商自己定义的规范和API。

    3. Terraform让基于云环境的Devops理念渗透到了底层资源上。通过tf脚本定义资源,创建资源后,后续流程可以根据tfstate状态文件,自动化的开始后续应用部署流程,无需人为介入,可以实现自动化的环境与资源部署,自动化与下游系统通信与衔接。

    4. 对于开发者来说,即便是在一家小企业,使用Terraform也是最合理的选择,一方面为未来的多云扩展做好了准备。另一方面,对于开发者自己,掌握了Terraform,应该是在市场上更加有竞争力的一种技能,可以应对更大规模、更复杂环境下的资源管理。

    5. 通过脚本语言定义资源,更加清晰,如果一个应用要在多个环境,部署很多的不同资源,还需要跨团队的协作,使用Terraform,就实现了用”代码描述资源”,也就是大家常说的IaC(Infrastuctur as Code),更加清晰,更加容易保障多环境部署资源的一致性,也有很好的传承性,新人进来也不需要用文档或者口口相传去解释环境应该如何部署。在传统架构下是这样,在多云时代,这个优势又被放大了。

    最后,关于HashiCorp和云厂商的关系,大家可以结合前两天Bluedavy那篇《国内云计算市场格局将走向何方》中的”惊悚建议”一起来看,应该更有意思。在开源厂商与云厂商的”竞合”中,可以说,开源厂商再下一城,未来更多的PaaS层会以各种方式去重塑云计算的市场格局。

    下面是一个简单的例子,可以简单直观的理解一下什么是Terrafrom。

    这时官方文档中国一个关于定义一个AWS EC2实例的代码(参考),这里省略了前面的安装和配置过程(注:需要配置一个Access Key用以授权)

    provider "aws" {
      profile = "default"
      region  = "us-west-2"
    }
    resource "aws_instance" "app_server" {
      ami           = "ami-830c94e3"
      instance_type = "t2.micro"
      tags = {
        Name = "ExampleAppServerInstance"
      }
    }

    当然,实际的过程中,”resource”中通常还会提供更多的参数来自定义你需要的实例,例如VPC网络配置、安全组等。

    之后,只需要使用如下执行命令,就可以完成资源的创建和创建后资源信息的查询:

    terraform init    // 初始化环境与版本
    terraform apply   // 实际创建资源
    terraform show    // 查看资源创建状态
  • 今天云栖大会第二天,主要以产品技术为主。相比第一天,要更加面向开发者。主要的产品技术发布也都是放在这一天,阿里云数据库的很多重磅发布也是放在今天。

    百花齐放的开源

    这次大会上,阿里云数据库负责人李飞飞正式宣布“PolarDB-X开源“。随之,对应的代码也已经在Github(参考)上放出。PolarDB-X的前身是阿里集团去IOE核心产品DRDS,经过了面向云的改进,提供了原生的一体化的分布式能力,全面升级为现在的PolarDB-X,这次开源,应该是这个产品面向未来发展跨出的一大步。

    最近两天,除了云栖大会之外,数据库的年度盛会DTCC也在同步进行。在DTCC上,OceanBase也正式发布了开源版本3.1.1,提供了更强的MySQL兼容能力、开放了更多底层API、对第三方生态也提供更友好的支持等。

    此外,在主会场的计算巢平台发布中,PingCAP也是其重要的生态伙伴。阿里云计算巢(参考)是一个面向云端第三方服务商的平台,通过用户主动授权可以更加简单让第三方服务商在用户环境中构建相应的应用。

    在全球来看,开源已经是非常成熟的模式了,无论是运作还是商业化,都是非常成熟的。但是,在中国开源模式还有很多内容去探索,非常期待后续的发展。

    进击的“PolarDB”:将云原生进行到底

    这次李飞飞还对外重磅发布了PolarDB的“计算、内存、存储全解耦“的云原生架构。PolarDB产品技术在云原生的道路上再向前跨进一步,也是国内外领先的一步,首次实现了计算、内存、存储的三层解耦,提供内存池化、多主架构、HTAP实时分析等产品能力。自PolarDB产品上市以来,这应该是又一次大的技术跨越,相比Aurora等友商有一定的技术代差。后续,非常期待这个能力,进一步完成标准的产品化与规模化。

    面向政企市场

    多次被提及的“政企市场”

    这次数据库的产品发布中,听到了多次“政企市场”。一个是PolarDB-X的开源中,标题为“助理政企构建原生MySQL分布式数据库”。另外,在DBStack的发布过程中也提到,“将云原生能力轻量化输出到政企行业“。可以看到,目前阿里云已经在公共云市场全面领先,但是大量的政企线下市场还待开发,这次重磅发布很多产品能力建设都聚焦于此,可以看到未来,这这部分市场还将有着非常激烈的竞争。

    其他

    这次还发布了提供离在线一体、MPP架构、具备Serverless云原生能力的AnalyticDB,轻量级的混合云方案DBStack(链接),企业级智能化的RDS,企业级一站式在线数据库管理平台DMS,书籍《云原生数据库原理与实践》,data in use的加密技术等,就不一一详述了。