唯品会:在 Flink 容器化与平台化上的建设实践

简介: 唯品会 Flink 的容器化实践应用,Flink SQL 平台化建设,以及在实时数仓和实验平台上的应用案例。

转自dbaplus社群公众号
作者:王康,唯品会数据平台高级开发工程师

自 2017 年起,为保障内部业务在平时和大促期间的平稳运行,唯品会就开始基于 Kubernetes 深入打造高性能、稳定、可靠、易用的实时计算平台,现在的平台支持 Flink、Spark、Storm 等主流框架。

本文将分为五个方面,分享唯品会 Flink 的容器化实践应用以及产品化经验:

  • 发展概览
  • Flink 容器化实践
  • Flink SQL 平台化建设
  • 应用案例
  • 未来规划

一、发展概览

1、集群规模

图片

在集群规模方面,我们有 2000+ 的物理机,主要部署 Kubernetes 异地双活的集群,利用 Kubernetes 的 namespaces,labels 和 taints 等实现业务隔离以及初步的计算负载隔离。

Flink 任务数、Flink SQL 任务数、Storm 任务数、Spark 任务数,这些线上实时应用加起来有 1000 多个。目前我们主要支持 Flink SQL 这一块,因为 SQL 化是一个趋势,所以我们要支持 SQL 任务的上线平台。

2、平台架构

图片

我们从下往上进行解析实时计算平台的整体架构:

  • 资源调度层(最底层)

实际上是用 deployment 的模式运行 Kubernetes 上,平台虽然支持 yarn 调度,但是 yarn 调度与批任务共享资源,所以主流任务还是运行在 Kubernetes 上的。并且,yarn 调度这一层主要是离线部署的一套 yarn 集群。在 2017 年的时候,我们自研了 Flink on Kubernetes 的一套方案,因为底层调度分了两层,所以在大促资源紧张的时候,实时跟离线就可以做一个资源的借调。

  • 存储层

主要用来支持公司内部基于 Kafka 的实时数据 vms,基于 binlog 的 vdp 数据和原生 Kafka 作为消息总线,状态存储在 HDFS 上,数据主要存入 Redis、MySQL、HBase、Kudu、HDFS、ClickHouse 等。

  • 计算引擎层

主要是 Flink、Storm、Spark,目前主推的是 Flink,每个框架会都会支持几个版本的镜像以满足不同的业务需求。

  • 实时平台层

主要提供作业配置、调度、版本管理、容器监控、job 监控、告警、日志等功能,提供多租户的资源管理(quota,label 管理)以及 Kafka 监控。资源配置也分为大促日和平常日,大促的资源和平常的资源是不一样的,资源的权限管控也是不一样的。在 Flink 1.11 版本之前,平台自建元数据管理系统为 Flink SQL 管理 schema;从 1.11 版本开始,则是通过 Hive metastore 与公司元数据管理系统融合。

  • 应用层

主要是支持实时大屏、推荐、实验平台、实时监控和实时数据清洗的一些场景。

二、Flink容器化实践

1、容器化方案

图片

上面是实时平台 Flink 容器化的架构图。Flink 容器化其实是基于 Standalone 模式部署的。

我们的部署模式共有 Client、Job Manager、Task Manager 三个角色,每一个角色都会有一个 Deployment 来控制。

用户通过平台上传任务 jar 包、配置等,存储于 HDFS 上。同时由平台维护的配置、依赖等也存储在 HDFS 上,当 pod 启动时,就会进行拉取等初始化操作。

Client 中主进程是一个由 go 开发的 agent,当 Client 启动时,会首先检查集群状态,当集群准备好后,从 HDFS 上拉取 jar 包,再向这个集群提交任务。Client 的主要任务是做容错,它主要功能还有监控任务状态,做 savepoint 等操作。

通过部署在每台物理机上的 smart-agent 采集容器的指标写入 m3,以及通过 Flink 暴漏的接口将 metrics 写入 prometheus,结合 grafana 展示。同样通过部署在每台物理机上的 vfilebeat 采集挂载出来的相关日志写入 es,在 dragonfly 可以实现日志检索。

1)Flink 平台化

在实践过程中,一定要结合具体场景和易用性,再去考虑做平台化工作。

图片

2)Flink 稳定性

在我们应用部署以及运行过程中,异常是不可避免的,这时候平台就需要做一些保证任务在出现异常状况后,依旧保持稳定性的一些策略。

  • pod 的健康和可用

    由 livenessProbe 和 readinessProbe 检测,同时指定 pod 的重启策略,Kubernetes 本身可以做一个 pod 的拉起。

  • Flink 任务产生异常时

    • Flink 有自已本身的一套 restart 策略和 failover 机制,这是它的第一层保障。
    • 在 Client 中会定时监控 Flink 状态,同时将最新的 checkpoint 地址更新到自己的缓存中,并汇报到平台,然后固化到 MySQL 中。当 Flink 无法再重启时,由 Client 重新从最新的成功 checkpoint 提交任务。这是它的第二层保障。

      这一层将 checkpoint 固化到 MySQL 中后,就不再使用 Flink HA 机制了,少了 zk 的组件依赖。

    • 当前两层无法重启时或集群出现异常时,由平台自动从固化到 MySQL 中的最新 checkpoint 重新拉起一个集群,提交任务,这是它的第三层保障。
  • 机房容灾

    • 用户的 jar 包,checkpoint 都做了异地双 HDFS 存储。
    • 异地双机房双集群。

2、Kafka 监控方案

Kafka 监控是任务监控里非常重要的一个环节,整体的流程如下:

图片

平台提供监控 Kafka 堆积,用户在界面上,可以配置自己的 Kafka 监控,告知在怎样的集群,以及用户消费 message 等配置信息。可以从 MySQL 中将用户 Kafka 监控配置提取后,再通过 jmx 监控 Kafka,这样的信息采集之后,写入下游 Kafka,再通过另一个 Flink 任务实时监控告警,同时将这些数据同步写入 ck 里面,从而反馈给我们的用户(这里也可以不用 ck,用 Prometheus 去做监控也是可以的,但 ck 会更加适合),最后再用 Grafana 组件去展示给用户。

三、Flink SQL 平台化建设

有了前面 Flink 的容器化方案之后,就要开始 Flink SQL 平台化建设了。大家都知道,这样流式的 api 开发起来,还是有一定的成本的。 Flink 肯定是比 Storm 快的,也相对比较稳定、容易一些,但是对于一些用户,特别是 Java 开发的一些同学来说,做这个是有一定门槛的。

Kubernetes 的 Flink 容器化实现以后,方便了 Flink api 应用的发布,但是对于 Flink SQL 的任务仍然不够便利。于是平台提供了更加方便的在线编辑发布、SQL 管理等一栈式开发平台。

1、 Flink SQL 方案

图片

平台的 Flink SQL 方案如上图所示,任务发布系统与元数据管理系统是完全解耦的。

1)Flink SQL 任务发布平台化

在实践过程中,需要考虑易用性,做平台化工作,主操作界面如下图所示:

  • Flink SQL 的版本管理、语法校验、拓扑图管理等;
  • UDF 通用和任务级别的管理,支持用户自定义 udf;
  • 提供参数化的配置界面,方便用户上线任务。

下图是一个用户界面配置的例子:

图片

下图是一个集群配置的范例:

图片

2)元数据管理

平台在 1.11 之前通过构建自己的元数据管理系统 UDM,MySQL 存储 Kafka,Redis 等 schema,通过自定义 catalog 打通 Flink 与 UDM,从而实现元数据管理。

在 1.11 之后,Flink 集成 Hive 逐渐完善,平台重构了 Flink SQL 框架,并通过部署一个 SQL-gateway service 服务,中间调用自己维护的 SQL-Client jar 包,从而与离线元数据打通,实现了实时离线元数据的统一,为之后的流批一体打好了基础。

在元数据管理系统创建的 Flink 表操作界面如下图所示:创建 Flink 表的元数据,持久化到 Hive 里,Flink SQL 启动时从 Hive 里读取对应表的 table schema 信息。

img

2、Flink SQL 相关实践

平台对于官方原生支持或者不支持的 connector 进行整合和开发,镜像和 connector,format 等相关依赖进行解耦,可以快捷的进行更新与迭代。

1)Flink SQL 相关实践

Flink SQL 主要分为以下三层:

  • connector 层

    • 支持 VDP connector 读取 source 数据源;
    • 支持 Redis string、hash 等数据类型的 sink & 维表关联;
    • 支持 kudu connector & catalog & 维表关联;
    • 支持 protobuf format 解析实时清洗数据;
    • 支持 vms connector 读取 source 数据源;
    • 支持 ClickHouse connector sink 分布式表 & 本地表高 TPS 写入;
    • Hive connector 支持数坊 Watermark Commit Policy 分区提交策略 & array、decimal 等复杂数据类型。
  • runtime 层

    • 主要支持拓扑图执行计划修改;
    • 维表关联 keyBy 优化 cache 提升查询性能;
    • 维表关联延迟 join。
  • 平台层

    • Hive UDF;
    • 支持 json HLL 相关处理函数;
    • 支持 Flink 运行相关参数设置如 minibatch、聚合优化参数;
    • Flink 升级 hadoop3。

2)拓扑图执行计划修改

针对现阶段 SQL 生成的 stream graph 并行度无法修改等问题,平台提供可修改的拓扑预览修改相关参数。平台会将解析后的 FlinkSQL 的 excution plan json 提供给用户,利用 uid 保证算子的唯一性,修改每个算子的并行度,chain 策略等,也为用户解决反压问题提供方法。例如针对 ClickHouse sink 小并发大批次的场景,我们支持修改 ClickHouse sink 并行度,source 并行度 = 72,sink 并行度 = 24,提高 ClickHouse sink tps。

图片

3)维表关联 keyBy 优化 cache

针对维表关联的情况,为了降低 IO 请求次数,降低维表数据库读压力,从而降低延迟,提高吞吐,有以下三种措施:

图片

下面是维表关联 KeyBy 优化 cache 的图:

图片

在优化之前的时候,维表关联 LookupJoin 算子和正常算子 chain 在一起,优化之间维表关联 Lookup Join 算子和正常算子不 chain 在一起,将join key 作为 hash 策略的 key。

采用这种方式优化后,例如原来的 3000W 数据量维表,10 个 TM 节点,每个节点都要缓存 3000W 的数据,总共需要缓存 3 亿的量。而经过 keyBy 优化之后,每个 TM 节点只需要缓存 3000W/10 = 300W 的数据量,总共缓存的数据量只有 3000W,这非常大程度减少了缓存数据量。

4)维表关联延迟 join

维表关联中,有很多业务场景,在维表数据新增数据之前,主流数据已经发生 join 操作,会出现关联不上的情况。因此,为了保证数据的正确,将关联不上的数据进行缓存,进行延迟 join。

最简单的做法是,在维表关联的 function 里设置重试次数和重试间隔,这个方法会增大整个流的延迟,但主流 qps 不高的情况下,可以解决问题。

增加延迟 join 的算子,当 join 维表未关联时,先缓存起来,根据设置重试次数和重试间隔从而进行延迟的 join。

四、应用案例

1、实时数仓

1)实时数据入仓

图片

实时数仓主要分为三个过程:

  • 流量数据一级 Kafka 进行实时数据清洗后,可以写到二级清洗 Kafka,主要是 protobuf 格式,再通过 Flink SQL 写入 Hive 5min 表,以便做后续的准实时 ETL,加速 ods 层数据源的准备时间。
  • MySQL 业务库的数据,通过 VDP 解析形成 binlog cdc 消息流,再通过 Flink SQL 写入 Hive 5min 表,同时会提交到自定义分区,再把分区状态汇报到服务接口,最后再做一个离线的调度。
  • 业务系统通过 VMS API 产生业务 Kafka 消息流,通过 Flink SQL 解析之后写入 Hive 5min 表。可以支持 string、json、csv 等消息格式。

使用 Flink SQL 做流式数据入仓是非常方便的,而且 1.12 版本已经支持了小文件的自动合并,解决了大数据层一个非常普遍的痛点。

我们自定义分区提交策略,当前分区 ready 时候会调一下实时平台的分区提交 api,在离线调度定时调度通过这个 api 检查分区是否 ready。

采用 Flink SQL 统一入仓方案以后,我们可获得以下成果:

  • 首先我们不仅解决了以往 Flume 方案不稳定的问题,用户也可以实现自助入仓,大大降低入仓任务的维护成本,稳定性也可以得到保障。
  • 其次我们还提升了离线数仓的时效性,从小时级降低至 5min 粒度入仓,时效性可以增强。

2)实时指标计算

图片

  • 实时应用消费清洗后 Kafka,通过 Redis 维表、api 等方式关联,再通过 Flink window 增量计算 UV,持久化写到 HBase 里。
  • 实时应用消费 VDP 消息流之后,通过 Redis 维表、api 等方式关联,再通过 Flink SQL 计算出销售额等相关指标,增量 upsert 到 kudu 里,方便根据 range 分区批量查询,最终通过数据服务对实时大屏提供最终服务。

以往指标计算通常采用 Storm 方式,这个方式需要通过 api 定制化开发,采用这样 Flink 方案以后,我们可以获得了以下成果:

  • 将计算逻辑切到 Flink SQL 上,降低计算任务口径变化快,解决修改上线周期慢等问题;
  • 切换至 Flink SQL 可以做到快速修改,并且实现快速上线,降低了维护的成本。

3)实时离线一体化ETL数据集成

具体的流程如下图所示:

图片

Flink SQL 在最近的版本中持续强化了维表 join 的能力,不仅可以实时关联数据库中的维表数据,还能关联 Hive 和 Kafka 中的维表数据,能灵活满足不同工作负载和时效性的需求。

基于 Flink 强大的流式 ETL 的能力,我们可以统一在实时层做数据接入和数据转换,然后将明细层的数据回流到离线数仓中。

我们通过将 presto 内部使用的 HyperLogLog(后面简称 HLL)实现引入到 Spark UDAF 函数里,打通 HLL 对象在 Spark SQL 与 presto 引擎之间的互通。如 Spark SQL 通过 prepare 函数生成的 HLL 对象,不仅可以在 Spark SQL 里 merge 查询而且可以在 presto 里进行 merge 查询。

具体流程如下:

图片

UV 近似计算示例:

图片

2、实验平台(Flink 实时数据入 OLAP)

唯品会实验平台是通过配置多维度分析和下钻分析,提供海量数据的 A/B-test 实验效果分析的一体化平台。一个实验是由一股流量(比如用户请求)和在这股流量上进行的相对对比实验的修改组成。实验平台对于海量数据查询有着低延迟、低响应、超大规模数据(百亿级)的需求。

整体数据架构如下:

图片

  • 离线数据是通过 waterdrop 导入到 ClickHouse 里面去;
  • 实时数据通过 Flink SQL 将 Kafka 里的数据清洗解析展开等操作之后,通过 Redis 维表关联商品属性,通过分布式表写入到 ClickHouse,然后通过数据服务 adhoc 查询,通过数据服务提供对外的接口。

业务数据流如下:

图片

我们的实验平台有一个很重要的 ES 场景,我们上线一个应用场景后,如果我想看效果如何,包括上线产生的曝光、点击、加购、收藏是怎样的。我们需要把每一个数据的明细,比如说分流的一些数据,根据场景分区,写到 ck 里面去。

我们通过 Flink SQL Redis connector,支持 Redis 的 sink 、source 维表关联等操作,可以很方便地读写 Redis,实现维表关联,维表关联内可配置 cache ,极大提高应用的 TPS。通过 Flink SQL 实现实时数据流的 pipeline,最终将大宽表 sink 到 CK 里,并按照某个字段粒度做 murmurHash3_64 存储,保证相同用户的数据都存在同一 shard 节点组内,从而使得 ck 大表之间的 join 变成 local 本地表之间的 join,减少数据 shuffle 操作,提升 join 查询效率。

五、未来规划

1、提高Flink SQL易用性

Flink SQL 对于 Hive 用户来说,使用起来还是有一点不一样的地方。不管是 Hive,还是 Spark SQL,都是批量处理的一个场景。

所以当前我们的 Flink SQL 调试起来仍有很多不方便的地方,对于做离线 Hive 的用户来说还有一定的使用门槛,例如手动配置 Kafka 监控、任务的压测调优。所以如何能让用户的使用门槛降至最低,让用户只需要懂 SQL 或者懂业务,把 Flink SQL 里面的概念对用户屏蔽掉,简化用户的使用流程,是一个比较大的挑战。

将来我们考虑做一些智能监控,告诉用户当前任务存在的问题,不需要用户去学习太多的东西,尽可能自动化并给用户一些优化建议。

2、数据湖CDC分析方案落地

一方面,我们做数据湖主要是为了解决我们 binlog 实时更新的场景,目前我们的 VDP binlog 消息流,通过 Flink SQL 写入到 Hive ods 层,以加速 ods 层数据源的准备时间,但是会产生大量重复消息去重合并。我们会考虑 Flink + 数据湖的 cdc 入仓方案来做增量入仓。

另一方面我们希望通过数据湖,来替代我们 Kudu,我们这边一部分重要的业务在用 Kudu。虽然 Kudu 没有大量的使用,但鉴于 Kudu 的运维比一般的数据库运维复杂得多、比较小众,并且像订单打宽之后的 Kafka 消息流、以及聚合结果都需要非常强的实时 upsert 能力,所以我们就开始调研 CDC+数据湖这种解决方案,用这种方案的增量 upsert 能力来替换 kudu 增量 upsert 场景。

Q&A

Q1:vdp connector 是 MySQL binlog 读取吗?和 canal是一种工具吗?

A1 :vdp 是公司 binlog 同步的一个组件,将 binlog 解析之后发送到 Kafka。是基于 canal 二次开发的。我们定义了一个 cdc format 可以对接公司的 vdp Kafka 数据源,与 Canal CDC format 有点类似。目前没有开源,使我们公司用的 binlog 的一个同步方案。

Q2 : uv 数据输出到 HBase,销售数据输出到 kudu,输出到了不同的数据源,主要是因为什么采取的这种策略?

A2 :kudu 的应用场景没有 HBase 这么广泛。uv 实时写入的 TPS 比较高,HBase 比较适合单条查询的场景,写入 HBase 高吞吐 + 低延迟,小范围查询延迟低;kudu 的话具备一些 OLAP 的特性,可以存订单类明细,列存加速,结合 Spark、presto 等做 OLAP 分析。

Q3 : 请问一下,你们怎么解决的 ClickHouse 的数据更新问题?比如数据指标更新。

A3 : ck 的更新是异步 merge,只能在同一 shard 同一节点同一分区内异步 merge,是弱一致性。对于指标更新场景不太建议使用 ck。如果在 ck 里有更新强需求的场景,可以尝试 AggregatingMergeTree 解决方案,用 insert 替换 update,做字段级的 merge。

Q4:binlog 写入怎么保证数据的去重和一致性?

A4 : binlog 目前还没有写入 ck 的场景,这个方案看起来不太成熟。不建议这么做,可以用采用 CDC + 数据湖的解决方案。

Q5 : 如果 ck 各个节点写入不均衡,怎么去监控,怎么解决?怎么样看数据倾斜呢?

A5 :可以通过 ck 的 system.parts 本地表监控每台机器每个表每个分区的写入数据量以及 size,来查看数据分区,从而定位到某个表某台机器某个分区。

Q6 : 你们在实时平台是如何做任务监控或者健康检查的?又是如何在出错后自动恢复的?现在用的是 yarn-application 模式吗?存在一个 yarn application 对应多个 Flink job 的情况吗?

A6 : 对于 Flink 1.12+ 版本,支持了 PrometheusReporter 方式暴露一些 Flink metrics 指标,比如算子的 watermark、checkpoint 相关的指标如 size、耗时、失败次数等关键指标,然后采集、存储起来做任务监控告警。

Flink 原生的 restart 策略和 failover 机制,作为第一层的保证。

在 Client 中会定时监控 Flink 状态,同时将最新的 checkpoint 地址更新到自己的缓存中,并汇报到平台,固化到 MySQL 中。当 Flink 无法再重启时,由 Client 重新从最新的成功 checkpoint 提交任务。作为第二层保证。这一层将 checkpoint 固化到 MySQL 中后,就不再使用 Flink HA 机制了,少了 zk 的组件依赖。

当前两层无法重启时或集群出现异常时,由平台自动从固化到 MySQL 中的最新 chekcpoint 重新拉起一个集群,提交任务,作为第三层保证。

我们支持 yarn-per-job 模式,主要基于 Flink on Kubernetes 模式部署 standalone 集群。

Q7 : 目前你们大数据平台上所有的组件都是容器化的还是混合的?

A7 :目前我们实时这一块的组件 Flink、Spark 、Storm、Presto 等计算框架实现了容器化,详情可看上文 1.2 平台架构。

Q8 :kudu 不是在 Kubernetes 上跑的吧?

A8 :kudu 不是在 Kubernetes 上运行,这个目前还没有特别成熟的方案。并且 kudu 是基于 cloudera manager 运维的,没有上 Kubernetes 的必要。

Q9 : Flink 实时数仓维度表存到 ck 中,再去查询 ck,这样的方案可以吗?

A9:这是可以的,是可以值得尝试的。事实表与维度表数据都可以存,可以按照某个字段做哈希(比如 user_id),从而实现 local join 的效果。

原文链接
本文为阿里云原创内容,未经允许不得转载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/513140.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python怎么变成exe_Python怎样打包成exe?

分类:Python | 作者:凹凸曼 | 发表于2011/03/01Python怎样打包成exe?已关闭评论 发现PyInstaller 是个不错的东东,解决打包单个exe的问题,使用非常简单,不用编写setup脚本&#xff1…

PolarDB-X 2.0:使用一个透明的分布式数据库是一种什么体验

简介: 透明分布式,是PolarDB-X即将发布的能力,它能让应用在使用PolarDB-X的过程中,犹如使用单机数据库一般的体验。与传统的中间件类型的“分布式数据库”相比,有了透明分布式能力的PolarDB-X,不再需要应用…

Chrome 96 又更新了 5 个巨巨巨好用的功能

作者 | 零一来源 | 前端印象‍‍‍‍‍‍‍大家好,收到了 Chrome 96 版本的更新推送,简单看了一下,还是更新了几个挺有趣的东西的,一起来看看到底都有啥~先下载 Chrome Beta 版本才能体验 Chrome 96 哈Chrome Beta我们顺便来给每个…

编译优化 | LLVM代码生成技术详解及在数据库中的应用

简介: 作者:长别 1. 前言 随着IT基础设施的发展,现代的数据处理系统需要处理更多的数据、支持更为复杂的算法。数据量的增长和算法的复杂化,为数据分析系统带来了严峻的性能挑战。近年来,我们可以在数据库、大数据系…

低代码发展专访系列之二:两三年内会出现“现象级”低代码产品吗?

前言:2019年开始,低代码爆火。有人认为它是第四代编程语言,有人认为它是开发模式的颠覆,也有人认为是企业管理模式的变革……有很多声音,社区讨论很热烈。CSDN 随后展开低代码平台产品系列活动,包括低代码开…

为什么Spring仍然会是云原生时代最佳平台之一?

简介: 基于Java语言的Spring生态,还能否适应新的开发方式,比如Cloud Native、Serverless、Faas等,它还会是云原生时代的最佳平台的选择吗?本文将从5个角度来为你分析一下这个问题,分别是:Java和…

贾又福大象鸿蒙,奏乐!继续吹!库里又创记录,射进MVP榜单,众多名记变“库吹“...

库里本月已投进85记三分 打破哈登保持的NBA单月三分命中数纪录加上今天的7记三分,库里本月已经投进85记三分,创造了新的NBA单月(自然月)三分命中数纪录。勇士本月还有两场比赛。此前,哈登曾单月82记三分。在NBA历史单月三分球命中数前三榜单中…

opencv4 图像特征匹配_概述 | 全景图像拼接技术全解析

点击上方蓝字关注我们微信公众号:OpenCV学堂关注获取更多计算机视觉与深度学习知识前言图像/视频拼接的主要目的是为了解决相机视野(FOV-Field Of View)限制,生成更宽的FOV图像/视频场景。视频拼接在体育直播、全景显示、数字娱乐、视频处理中都被广泛应…

数字化让618有了洞悉消费者内心的“大脑”

简介: 阿里云数据中台已形成包括会员智能运营、全域天攻智投、GMV策略模拟等在内的近10套解决方案,围绕“人”“货”“场”三大零售行业要素,逐个击破品牌业务难点,记者了解到,过去一年,悦诗风吟、Benefit、…

赋能工业互联网融合发展 | 北京信息化和工业化融合服务联盟平台化设计专业委员会、中国仿真学会CAE仿真专业委员会成立

11月28日,由北京市经济和信息化局指导,北京信息化和工业化融合服务联盟与中国仿真学会共同主办,联盟平台化设计专业委员会、中国仿真学会CAE仿真专业委员会、国家数字化设计与制造创新中心北京中心、北京数字化设计与制造产业创新中心共同承办…

升级鸿蒙系统有没有翻车,被寄予厚望的华为鸿蒙系统,这次要翻车?原来并不是我们想的那样...

华为鸿蒙系统早在去年就已经被正式发布,但那时的人们对这个操作系统还不熟悉。但近期华为又在其发布会上发布了鸿蒙OS2.0,并表示到了2021年华为手机将全面使用鸿蒙2.0。这消息一出,不少华为用户忍不住想去尝尝鲜,纷纷都将系统更新…

PolarDB-X 2.0 全局 Binlog 和备份恢复能力解读

简介: PolarDB-X 2.0 针对数据孤岛问题提供了全局 Binlog 能力,该能力为下游生态提供了与 MySQL Binlog 完全一致的增量日志消费体验。针对数据损坏问题提供了实例级、表级、SQL 级和行级等不同粒度的数据恢复能力,包括一致性备份恢复、表回收…

友盟+《小程序用户增长白皮书》:从五个角度入手分析小程序数据

简介: 近日,国内领先的全域数据智能服务商——友盟,发布了《友盟U-APM 移动应用性能体验报告》。据悉,友盟于去年将原移动分析U-App错误分析模块正式升级为U-APM应用性能监控平台,经过近一年的观察,通过DEM…

html提现页面模板,提现记录.html

提现记录$axure.utils.getTransparentGifPath function() { return resources/images/transparent.gif; };$axure.utils.getOtherPath function() { return resources/Other.html; };$axure.utils.getReloadPath function() { return resources/reload.html; };…

有赞九周年,打造技术生态,与开发者一起投身新零售浪潮

编辑 | 宋慧 11月28日,在有赞九周年生态大会有赞云分会场上,有赞宣布全面升级“ONE战略”,将与生态内众多的品牌商、软件厂商,从“产品融合”,“销售联动”,“经验共享”和“资本合作”四个维度实一起共建“…

“控本焦虑”的工程企业 用钉钉宜搭找到了低成本数字化的“捷径”

简介: 上海致拓软件有限公司利用云钉低代码应用构建平台——钉钉宜搭为合安建筑快速、低成本地搭建了个性化的项目管理系统,着力帮助合安建筑解决业务在线场景,形成场景化的工程项目管理数字化解决方案。 一封由工程公司发给项目管理数字化实…

如何做好一场技术演讲?

简介: 据心理学调查,在人们感到最恐惧的事情里,死亡排名第二,而“公开演讲”排名第一!那么作为一个演讲新人,为了可以不丢人的做好演讲,都需要做哪些准备呢? 作者 | 竹涧 来源 | 阿里…

汇聚技术与能力,共绘区块链远大蓝图!

进入数字经济时代,云已成为数字经济的一个最重要的基础设施。区块链,作为跨产业数字生态的连接器,是数字经济时代另一个重要的基础设施。云链结合,让技术助力传统产业升级,重塑信任关系。11月30日,移动云区块链开发者论…

python代码300行程序_python小工具,15行代码秒出工资条

公司工资条经常使用Excel制作,但是每个月都要做一遍,能不能用python写个程序自动化完成这想工作?当然可以,而且只是分分钟的事! 先来看看原始数据是什么样子: 最后做成的效果:使用Excel每次都需要手动修改一…

全链路压测体系建设方案的思考与实践

简介: 在阿里淘宝双11 的过程中,长期以来都是在生产环节做全链路压测的,通过实践我们发现在生产环境中做压测,实际上会和一个 IT 组织的结构、成熟度、流程等紧密相关,所以我们把全链路压测从简单的制作范围内脱离出来…