Apache Doris 查询分析功能使用

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: Doris提供了一个图形化的命令帮助用户方便分析一个具体的查询或者导入操作,在使用过程中的性能问题,本文主要介绍如何使用改功能.

Doris提供了一个图形化的命令帮助用户方便分析一个具体的查询或者导入操作,在使用过程中的性能问题,本文主要介绍如何使用改功能


1. 查询计划树


SQL 是一个描述性语言,用户通过一个 SQL 来描述想获取的数据。而一个 SQL 的具体执行方式依赖于数据库的实现。而查询规划器就是用来决定数据库如何具体执行一个 SQL 的。  比如用户指定了一个 Join 算子,则查询规划器需要决定具体的 Join 算法,比如是 Hash Join,还是 Merge Sort Join;是使用 Shuffle 还是 Broadcast;Join 顺序是否需要调整以避免笛卡尔积;以及确定最终的在哪些节点执行等等。


Doris 的查询规划过程是先将一个 SQL 语句转换成一个单机执行计划树。

image.pngimage.png

之后,查询规划器会根据具体的算子执行方式、数据的具体分布,将单机查询计划转换为分布式查询计划。分布式查询计划是由多个 Fragment 组成的,每个 Fragment 负责查询计划的一部分,各个 Fragment 直接会通过 ExchangeNode 算子进行数据的传输。

image.pngimage.png

image.png

如上图,我们将单机计划分成了两个 Fragment:F1 和 F2。两个 Fragment 之间通过一个 ExchangeNode 节点传输数据。


而一个 Fragment 会进一步的划分为多个 Instance。Instance 是最终具体的执行实例。划分成多个 Instance 有助于充分利用机器资源,提升一个 Fragment 的执行并发度。


查看查询计划


可以通过以下两种命令查看一个 SQL 的执行计划。


EXPLAIN GRAPH select ...;
EXPLAIN select ...;

其中第一个命令以图形化的方式展示一个查询计划,这个命令可以比较直观的展示查询计划的树形结构,以及 Fragment 的划分情况:


mysql> desc graph SELECT SUM(lo_revenue), d_year, p_brand
 -> FROM lineorder, date, part, supplier
 -> WHERE lo_orderdate = d_datekey
 -> AND lo_partkey = p_partkey
 -> AND lo_suppkey = s_suppkey
 -> AND p_brand BETWEEN  'MFGR#2221'
 -> AND 'MFGR#2228'
 -> AND s_region = 'ASIA'
 -> GROUP BY d_year, p_brand
 -> ORDER BY d_year, p_brand;
+------------------------------------------------------------------------------------------------------------+
| Explain String                                                                                                                                                                                |
+------------------------------------------------------------------------------------------------------------+
|                                   ┌────────────────┐                                                                                                                                          |
|                                   │[12: ResultSink]│                                                                                                                                          |
|                                   │[Fragment: 4]   │                                                                                                                                          |
|                                   │RESULT SINK     │                                                                                                                                          |
|                                   └────────────────┘                                                                                                                                          |
|                                            │                                                                                                                                                  |
|                                            │                                                                                                                                                  |
|                                ┌──────────────────────┐                                                                                                                                       |
|                                │[12: MERGING-EXCHANGE]│                                                                                                                                       |
|                                │[Fragment: 4]         │                                                                                                                                       |
|                                └──────────────────────┘                                                                                                                                       |
|                                            │                                                                                                                                                  |
|                                            │                                                                                                                                                  |
|                                 ┌────────────────────┐                                                                                                                                        |
|                                 │[12: DataStreamSink]│                                                                                                                                        |
|                                 │[Fragment: 0]       │                                                                                                                                        |
|                                 │STREAM DATA SINK    │                                                                                                                                        |
|                                 │  EXCHANGE ID: 12   │                                                                                                                                        |
|                                 │  UNPARTITIONED     │                                                                                                                                        |
|                                 └────────────────────┘                                                                                                                                        |
|                                            │                                                                                                                                                  |
|                                            │                                                                                                                                                  |
|                                     ┌─────────────┐                                                                                                                                           |
|                                     │[8: TOP-N]   │                                                                                                                                           |
|                                     │[Fragment: 0]│                                                                                                                                           |
|                                     └─────────────┘                                                                                                                                           |
|                                            │                                                                                                                                                  |
|                                            │                                                                                                                                                  |
|                           ┌────────────────────────────────┐                                                                                                                                  |
|                           │[7: AGGREGATE (update finalize)]│                                                                                                                                  |
|                           │[Fragment: 0]                   │                                                                                                                                  |
|                           └────────────────────────────────┘                                                                                                                                  |
|                                            │                                                                                                                                                  |
|                                            │                                                                                                                                                  |
|                            ┌───────────────────────────────┐                                                                                                                                  |
|                            │[6: HASH JOIN]                 │                                                                                                                                  |
|                            │[Fragment: 0]                  │                                                                                                                                  |
|                            │join op: INNER JOIN (BROADCAST)│                                                                                                                                  |
|                            └───────────────────────────────┘                                                                                                                                  |
|                                ┌───────────┴────────────────────────────────┐                                                                                                                 |
|                                │                                            │                                                                                                                 |
|                ┌───────────────────────────────┐                    ┌──────────────┐                                                                                                          |
|                │[4: HASH JOIN]                 │                    │[11: EXCHANGE]│                                                                                                          |
|                │[Fragment: 0]                  │                    │[Fragment: 0] │                                                                                                          |
|                │join op: INNER JOIN (BROADCAST)│                    └──────────────┘                                                                                                          |
|                └───────────────────────────────┘                            │                                                                                                                 |
|                     ┌──────────┴─────────────────────┐                      │                                                                                                                 |
|                     │                                │           ┌────────────────────┐                                                                                                       |
|     ┌───────────────────────────────┐        ┌──────────────┐    │[11: DataStreamSink]│                                                                                                       |
|     │[2: HASH JOIN]                 │        │[10: EXCHANGE]│    │[Fragment: 3]       │                                                                                                       |
|     │[Fragment: 0]                  │        │[Fragment: 0] │    │STREAM DATA SINK    │                                                                                                       |
|     │join op: INNER JOIN (BROADCAST)│        └──────────────┘    │  EXCHANGE ID: 11   │                                                                                                       |
|     └───────────────────────────────┘                │           │  UNPARTITIONED     │                                                                                                       |
|          ┌──────────┴─────────┐                      │           └────────────────────┘                                                                                                       |
|          │                    │           ┌────────────────────┐           ┌┘                                                                                                                 |
| ┌─────────────────┐    ┌─────────────┐    │[10: DataStreamSink]│           │                                                                                                                  |
| │[0: OlapScanNode]│    │[9: EXCHANGE]│    │[Fragment: 2]       │  ┌─────────────────┐                                                                                                         |
| │[Fragment: 0]    │    │[Fragment: 0]│    │STREAM DATA SINK    │  │[5: OlapScanNode]│                                                                                                         |
| │TABLE: lineorder │    └─────────────┘    │  EXCHANGE ID: 10   │  │[Fragment: 3]    │                                                                                                         |
| └─────────────────┘           │           │  UNPARTITIONED     │  │TABLE: supplier  │                                                                                                         |
|                               │           └────────────────────┘  └─────────────────┘                                                                                                         |
|                     ┌───────────────────┐           ┌┘                                                                                                                                        |
|                     │[9: DataStreamSink]│           │                                                                                                                                         |
|                     │[Fragment: 1]      │  ┌─────────────────┐                                                                                                                                |
|                     │STREAM DATA SINK   │  │[3: OlapScanNode]│                                                                                                                                |
|                     │  EXCHANGE ID: 09  │  │[Fragment: 2]    │                                                                                                                                |
|                     │  UNPARTITIONED    │  │TABLE: part      │                                                                                                                                |
|                     └───────────────────┘  └─────────────────┘                                                                                                                                |
|                               │                                                                                                                                                               |
|                               │                                                                                                                                                               |
|                      ┌─────────────────┐                                                                                                                                                      |
|                      │[1: OlapScanNode]│                                                                                                                                                      |
|                      │[Fragment: 1]    │                                                                                                                                                      |
|                      │TABLE: date      │                                                                                                                                                      |
|                      └─────────────────┘                                                                                                                                                      |
+------------------------------------------------------------------------------------------------------------+
75 rows in set (0.04 sec)

从图中可以看出,查询计划树被分为了5个 Fragment:0、1、2、3、4。如 OlapScanNode 节点上的 [Fragment: 0] 表示这个节点属于 Fragment 0。每个Fragment之间都通过 DataStreamSink 和 ExchangeNode 进行数据传输。


图形命令仅展示简化后的节点信息,如果需要查看更具体的节点信息,如下推到节点上的过滤条件等,则需要通过第二个命令查看更详细的文字版信息:


mysql> desc SELECT SUM(lo_revenue), d_year, p_brand FROM lineorder, date, part, supplier WHERE lo_orderdate = d_datekey AND lo_partkey = p_partkey AND lo_suppkey = s_suppkey AND p_brand BETWEEN  'MFGR#2221' AND 'MFGR#2228' AND s_region = 'ASIA' GROUP BY d_year, p_brand ORDER BY d_year, p_brand;
+--------------------------------------------------------------------------------------------------------------+
| Explain String                                                                                                                     |
+--------------------------------------------------------------------------------------------------------------+
| PLAN FRAGMENT 0                                                                                                                    |
|  OUTPUT EXPRS:<slot 15> <slot 12> sum(`lo_revenue`) | <slot 13> <slot 10> `d_year` | <slot 14> <slot 11> `p_brand`                 |
|   PARTITION: UNPARTITIONED                                                                                                         |
|                                                                                                                                    |
|   RESULT SINK                                                                                                                      |
|                                                                                                                                    |
|   12:MERGING-EXCHANGE                                                                                                              |
|      limit: 65535                                                                                                                  |
|                                                                                                                                    |
| PLAN FRAGMENT 1                                                                                                                    |
|  OUTPUT EXPRS:                                                                                                                     |
|   PARTITION: RANDOM                                                                                                                |
|                                                                                                                                    |
|   STREAM DATA SINK                                                                                                                 |
|     EXCHANGE ID: 12                                                                                                                |
|     UNPARTITIONED                                                                                                                  |
|                                                                                                                                    |
|   8:TOP-N                                                                                                                          |
|   |  order by: <slot 13> <slot 10> `d_year` ASC, <slot 14> <slot 11> `p_brand` ASC                                                 |
|   |  offset: 0                                                                                                                     |
|   |  limit: 65535                                                                                                                  |
|   |                                                                                                                                |
|   7:AGGREGATE (update finalize)                                                                                                    |
|   |  output: sum(`lo_revenue`)                                                                                                     |
|   |  group by: `d_year`, `p_brand`                                                                                                 |
|   |  cardinality=-1                                                                                                                |
|   |                                                                                                                                |
|   6:HASH JOIN                                                                                                                      |
|   |  join op: INNER JOIN (BROADCAST)                                                                                               |
|   |  hash predicates:                                                                                                              |
|   |  colocate: false, reason: Tables are not in the same group                                                                     |
|   |  equal join conjunct: `lo_suppkey` = `s_suppkey`                                                                               |
|   |  runtime filters: RF000[in_or_bloom] <- `s_suppkey`                                                                            |
|   |  cardinality=0                                                                                                                 |
|   |                                                                                                                                |
|   |----11:EXCHANGE                                                                                                                 |
|   |                                                                                                                                |
|   4:HASH JOIN                                                                                                                      |
|   |  join op: INNER JOIN (BROADCAST)                                                                                               |
|   |  hash predicates:                                                                                                              |
|   |  colocate: false, reason: Tables are not in the same group                                                                     |
|   |  equal join conjunct: `lo_partkey` = `p_partkey`                                                                               |
|   |  runtime filters: RF001[in_or_bloom] <- `p_partkey`                                                                            |
|   |  cardinality=0                                                                                                                 |
|   |                                                                                                                                |
|   |----10:EXCHANGE                                                                                                                 |
|   |                                                                                                                                |
|   2:HASH JOIN                                                                                                                      |
|   |  join op: INNER JOIN (BROADCAST)                                                                                               |
|   |  hash predicates:                                                                                                              |
|   |  colocate: false, reason: Tables are not in the same group                                                                     |
|   |  equal join conjunct: `lo_orderdate` = `d_datekey`                                                                             |
|   |  runtime filters: RF002[in_or_bloom] <- `d_datekey`                                                                            |
|   |  cardinality=0                                                                                                                 |
|   |                                                                                                                                |
|   |----9:EXCHANGE                                                                                                                  |
|   |                                                                                                                                |
|   0:OlapScanNode                                                                                                                   |
|      TABLE: lineorder                                                                                                              |
|      PREAGGREGATION: OFF. Reason: conjunct on `lo_orderdate` which is StorageEngine value column                                   |
|      runtime filters: RF000[in_or_bloom] -> `lo_suppkey`, RF001[in_or_bloom] -> `lo_partkey`, RF002[in_or_bloom] -> `lo_orderdate` |
|      partitions=0/7                                                                                                                |
|      rollup: null                                                                                                                  |
|      tabletRatio=0/0                                                                                                               |
|      tabletList=                                                                                                                   |
|      cardinality=0                                                                                                                 |
|      avgRowSize=20.0                                                                                                               |
|      numNodes=1                                                                                                                    |
|                                                                                                                                    |
| PLAN FRAGMENT 2                                                                                                                    |
|  OUTPUT EXPRS:                                                                                                                     |
|   PARTITION: HASH_PARTITIONED: `default_cluster:demo`.`supplier`.`s_suppkey`                                                       |
|                                                                                                                                    |
|   STREAM DATA SINK                                                                                                                 |
|     EXCHANGE ID: 11                                                                                                                |
|     UNPARTITIONED                                                                                                                  |
|                                                                                                                                    |
|   5:OlapScanNode                                                                                                                   |
|      TABLE: supplier                                                                                                               |
|      PREAGGREGATION: OFF. Reason: null                                                                                             |
|      PREDICATES: `s_region` = 'ASIA'                                                                                               |
|      partitions=0/1                                                                                                                |
|      rollup: null                                                                                                                  |
|      tabletRatio=0/0                                                                                                               |
|      tabletList=                                                                                                                   |
|      cardinality=0                                                                                                                 |
|      avgRowSize=20.0                                                                                                               |
|      numNodes=1                                                                                                                    |
|                                                                                                                                    |
| PLAN FRAGMENT 3                                                                                                                    |
|  OUTPUT EXPRS:                                                                                                                     |
|   PARTITION: HASH_PARTITIONED: `default_cluster:demo`.`part`.`p_partkey`                                                           |
|                                                                                                                                    |
|   STREAM DATA SINK                                                                                                                 |
|     EXCHANGE ID: 10                                                                                                                |
|     UNPARTITIONED                                                                                                                  |
|                                                                                                                                    |
|   3:OlapScanNode                                                                                                                   |
|      TABLE: part                                                                                                                   |
|      PREAGGREGATION: OFF. Reason: null                                                                                             |
|      PREDICATES: `p_brand` >= 'MFGR#2221', `p_brand` <= 'MFGR#2228'                                                                |
|      partitions=0/1                                                                                                                |
|      rollup: null                                                                                                                  |
|      tabletRatio=0/0                                                                                                               |
|      tabletList=                                                                                                                   |
|      cardinality=0                                                                                                                 |
|      avgRowSize=20.0                                                                                                               |
|      numNodes=1                                                                                                                    |
|                                                                                                                                    |
| PLAN FRAGMENT 4                                                                                                                    |
|  OUTPUT EXPRS:                                                                                                                     |
|   PARTITION: HASH_PARTITIONED: `default_cluster:demo`.`date`.`d_datekey`                                                           |
|                                                                                                                                    |
|   STREAM DATA SINK                                                                                                                 |
|     EXCHANGE ID: 09                                                                                                                |
|     UNPARTITIONED                                                                                                                  |
|                                                                                                                                    |
|   1:OlapScanNode                                                                                                                   |
|      TABLE: date                                                                                                                   |
|      PREAGGREGATION: OFF. Reason: null                                                                                             |
|      partitions=0/1                                                                                                                |
|      rollup: null                                                                                                                  |
|      tabletRatio=0/0                                                                                                               |
|      tabletList=                                                                                                                   |
|      cardinality=0                                                                                                                 |
|      avgRowSize=8.0                                                                                                                |
|      numNodes=1                                                                                                                    |
+--------------------------------------------------------------------------------------------------------------+
127 rows in set (0.01 sec)

2. 查看查询 Profile


用户可以通过以下命令打开会话变量

set enable_profile = true

然后执行查询,则 Doris 会产生该查询的一个 Profile。Profile 包含了一个查询各个节点的具体执行情况,有助于我们分析查询瓶颈。


执行完查询后,我们可以通过如下命令先获取 Profile 列表:

mysql> show query profile "/"\G
*************************** 1. row ***************************
 QueryId: 8676cf2c28ac4081-95ead4b1b734b0b3
 User: root
 DefaultDb: default_cluster:demo
 SQL: SELECT SUM(lo_extendedprice*lo_discount) AS REVENUE FROM  lineorder, date WHERE  lo_orderdate = d_datekey AND d_weeknuminyear= 6 AND d_year = 1994 AND lo_discount BETWEEN  5 AND 7 AND lo_quantity BETWEEN  26 AND 35
 QueryType: Query
 StartTime: 2022-05-13 11:47:57
 EndTime: 2022-05-13 11:47:57
 TotalTime: 19ms
QueryState: EOF
1 row in set (0.01 sec)

这个命令会列出当前保存的所有 Profile。每行对应一个查询。我们可以选择我们想看的 Profile 对应的 QueryId,查看具体情况。


查看一个Profile分为3个步骤:


2.1 查看整体执行计划树


这一步主要用于从整体分析执行计划,并查看每个Fragment的执行耗时。

mysql> show query profile "/26da5b3dbd5e42d8-8b5c39768b5b78f4"\G
*************************** 1. row ***************************
Fragments:                 
 ┌────────────────────────┐
 │[-1: DataBufferSender]  │
 │Fragment: 0             │
 │MaxActiveTime: 355.973us│
 └────────────────────────┘
 ┌┘
 ┌─────────────────────┐
 │[3: AGGREGATION_NODE]│
 │Fragment: 0          │
 └─────────────────────┘
 ┌───────────────────┐
 │[2: HASH_JOIN_NODE]│
 │Fragment: 0        │
 └───────────────────┘
 ┌───────────┴────────────────────────────┐
 │                                        │
 ┌───────────────────┐                    ┌──────────────────┐
 │[0: OLAP_SCAN_NODE]│                    │[4: EXCHANGE_NODE]│
 │Fragment: 0        │                    │Fragment: 0       │
 └───────────────────┘                    └──────────────────┘
 ┌─────────┴─────────────────┐                      │
 │                           │                      │
┌─────────────────────────────────┐   ┌─────────────┐   ┌──────────────────────┐
│[RuntimeFilter:in_or_bloomfilter]│   │[OlapScanner]│   │[4: DataStreamSender] │
│Fragment: 0                      │   │Fragment: 0  │   │Fragment: 1           │
└─────────────────────────────────┘   └─────────────┘   │MaxActiveTime: 4.219ms│
 │                                                      └──────────────────────┘
 │                     ┌┘
 ┌─────────────────┐            │
 │[SegmentIterator]│  ┌───────────────────┐
 │Fragment: 0      │  │[1: OLAP_SCAN_NODE]│
 └─────────────────┘  │Fragment: 1        │
                      └───────────────────┘
 ┌─────────────┐
 │[OlapScanner]│
 │Fragment: 1  │
 └─────────────┘
 ┌─────────────────┐
 │[SegmentIterator]│
 │Fragment: 1      │
 └─────────────────┘
1 row in set (0.00 sec)

如上图,每个节点都标注了自己所属的 Fragment,并且在每个 Fragment 的 Sender节点,标注了该 Fragment 的执行耗时(MaxActiveTime)。这个耗时,是Fragment下所有 Instance 执行耗时中最长的一个。这个有助于我们从整体角度发现最耗时的 Fragment。


2.2 查看具体 Fragment 下的 Instance 列表


比如我们发现 Fragment 1 耗时最长,则可以继续查看 Fragment 1 的 Instance 列表:

mysql> show query profile "/8676cf2c28ac4081-95ead4b1b734b0b3/1" ;
+-----------------------------------+-------------------+------------+
| Instances                         | Host              | ActiveTime |
+-----------------------------------+-------------------+------------+
| 8676cf2c28ac4081-95ead4b1b734b0b5 | 172.28.7.230:9060 | 4.219ms    |
+-----------------------------------+-------------------+------------+
1 row in set (0.00 sec)

这里展示了 Fragment 1 上所有的 1 个 Instance 所在的执行节点和耗时。


2.3 查看具体 Instance


我们可以继续查看某一个具体的 Instance 上各个算子的详细 Profile:


mysql> show query profile "/8676cf2c28ac4081-95ead4b1b734b0b3/1/8676cf2c28ac4081-95ead4b1b734b0b5" ;
┌───────────────────────────────────────┐
│[4: DataStreamSender]                  │
│(Active: 16.473us, non-child: 0.09)    │
│  - Counters:                          │
│      - BytesSent: 0.00                │
│      - IgnoreRows: 0                  │
│      - LocalBytesSent: 0.00           │
│      - OverallThroughput: 0.0 /sec    │
│      - PeakMemoryUsage: 10.66 KB      │
│      - SerializeBatchTime: 0ns        │
│      - UncompressedRowBatchSize: 0.00 │
└───────────────────────────────────────┘
 ┌─────────────────────────────────────┐
 │[1: OLAP_SCAN_NODE]                  │
 │(Active: 23.934us, non-child: 0.12)  │
 │  - Counters:                        │
 │      - BatchQueueWaitTime: 225ns    │
 │      - BytesRead: 0.00              │
 │      - NumDiskAccess: 0             │
 │      - NumScanners: 0               │
 │      - PeakMemoryUsage: 0.00        │
 │      - RowsRead: 0                  │
 │      - RowsReturned: 0              │
 │      - RowsReturnedRate: 0          │
 │      - ScannerBatchWaitTime: 0ns    │
 │      - ScannerWorkerWaitTime: 0ns   │
 │      - TabletCount : 0              │
 │      - TotalReadThroughput: 0.0 /sec│
 └─────────────────────────────────────┘
 ┌┘
 ┌─────────────────────────────────┐
 │[OlapScanner]                    │
 │(Active: 0ns, non-child: 0.00)   │
 │  - Counters:                    │
 │      - BlockConvertTime: 0ns    │
 │      - BlockFetchTime: 0ns      │
 │      - ReaderInitTime: 0ns      │
 │      - RowsDelFiltered: 0       │
 │      - RowsPushedCondFiltered: 0│
 │      - ScanCpuTime: 0ns         │
 │      - ScanTime: 0ns            │
 │      - ShowHintsTime_V1: 0ns    │
 └─────────────────────────────────┘
 └┐
 ┌────────────────────────────────────┐
 │[SegmentIterator]                   │
 │(Active: 0ns, non-child: 0.00)      │
 │  - Counters:                       │
 │      - BitmapIndexFilterTimer: 0ns │
 │      - BlockLoadTime: 0ns          │
 │      - BlockSeekCount: 0           │
 │      - BlockSeekTime: 0ns          │
 │      - BlocksLoad: 0               │
 │      - CachedPagesNum: 0           │
 │      - CompressedBytesRead: 0.00   │
 │      - DecompressorTimer: 0ns      │
 │      - IOTimer: 0ns                │
 │      - IndexLoadTime_V1: 0ns       │
 │      - NumSegmentFiltered: 0       │
 │      - NumSegmentTotal: 0          │
 │      - RawRowsRead: 0              │
 │      - RowsBitmapIndexFiltered: 0  │
 │      - RowsBloomFilterFiltered: 0  │
 │      - RowsConditionsFiltered: 0   │
 │      - RowsKeyRangeFiltered: 0     │
 │      - RowsStatsFiltered: 0        │
 │      - RowsVectorPredFiltered: 0   │
 │      - TotalPagesNum: 0            │
 │      - UncompressedBytesRead: 0.00 │
 │      - VectorPredEvalTime: 0ns     │
 └────────────────────────────────────┘

上图展示了 Fragment 1 中,Instance 8676cf2c28ac4081-95ead4b1b734b0b5 的各个算子的具体 Profile。


通过以上3个步骤,我们可以逐步排查一个SQL的性能瓶颈。




相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
25天前
|
存储 消息中间件 分布式计算
Cisco WebEx 数据平台:统一 Trino、Pinot、Iceberg 及 Kyuubi,探索 Apache Doris 在 Cisco 的改造实践
Cisco WebEx 早期数据平台采用了多系统架构(包括 Trino、Pinot、Iceberg 、 Kyuubi 等),面临架构复杂、数据冗余存储、运维困难、资源利用率低、数据时效性差等问题。因此,引入 Apache Doris 替换了 Trino、Pinot 、 Iceberg 及 Kyuubi 技术栈,依赖于 Doris 的实时数据湖能力及高性能 OLAP 分析能力,统一数据湖仓及查询分析引擎,显著提升了查询性能及系统稳定性,同时实现资源成本降低 30%。
Cisco WebEx 数据平台:统一 Trino、Pinot、Iceberg 及 Kyuubi,探索 Apache Doris 在 Cisco 的改造实践
|
15天前
|
SQL 存储 Apache
Apache Doris 3.0.3 版本正式发布
亲爱的社区小伙伴们,Apache Doris 3.0.3 版本已于 2024 年 12 月 02 日正式发布。该版本进一步提升了系统的性能及稳定性,欢迎大家下载体验。
|
1月前
|
存储 SQL Apache
Apache Doris 开源最顶级基于MPP架构的高性能实时分析数据库
Apache Doris 是一个基于 MPP 架构的高性能实时分析数据库,以其极高的速度和易用性著称。它支持高并发点查询和复杂分析场景,适用于报表分析、即席查询、数据仓库和数据湖查询加速等。最新发布的 2.0.2 版本在性能、稳定性和多租户支持方面有显著提升。社区活跃,已广泛应用于电商、广告、用户行为分析等领域。
Apache Doris 开源最顶级基于MPP架构的高性能实时分析数据库
|
1月前
|
SQL 存储 数据处理
兼顾高性能与低成本,浅析 Apache Doris 异步物化视图原理及典型场景
Apache Doris 物化视图进行了支持。**早期版本中,Doris 支持同步物化视图;从 2.1 版本开始,正式引入异步物化视图,[并在 3.0 版本中完善了这一功能](https://www.selectdb.com/blog/1058)。**
|
1月前
|
SQL 存储 Java
Apache Doris 2.1.7 版本正式发布
亲爱的社区小伙伴们,**Apache Doris 2.1.7 版本已于 2024 年 11 月 10 日正式发布。**2.1.7 版本持续升级改进,同时在湖仓一体、异步物化视图、半结构化数据管理、查询优化器、执行引擎、存储管理、以及权限管理等方面完成了若干修复。欢迎大家下载使用。
|
4月前
|
存储 消息中间件 Java
Apache Flink 实践问题之原生TM UI日志问题如何解决
Apache Flink 实践问题之原生TM UI日志问题如何解决
49 1
|
11天前
|
存储 人工智能 大数据
The Past, Present and Future of Apache Flink
本文整理自阿里云开源大数据负责人王峰(莫问)在 Flink Forward Asia 2024 上海站主论坛开场的分享,今年正值 Flink 开源项目诞生的第 10 周年,借此时机,王峰回顾了 Flink 在过去 10 年的发展历程以及 Flink社区当前最新的技术成果,最后展望下一个十年 Flink 路向何方。
289 33
The Past, Present and Future of Apache Flink
|
2月前
|
SQL Java API
Apache Flink 2.0-preview released
Apache Flink 社区正积极筹备 Flink 2.0 的发布,这是自 Flink 1.0 发布以来的首个重大更新。Flink 2.0 将引入多项激动人心的功能和改进,包括存算分离状态管理、物化表、批作业自适应执行等,同时也包含了一些不兼容的变更。目前提供的预览版旨在让用户提前尝试新功能并收集反馈,但不建议在生产环境中使用。
843 13
Apache Flink 2.0-preview released
|
2月前
|
存储 缓存 算法
分布式锁服务深度解析:以Apache Flink的Checkpointing机制为例
【10月更文挑战第7天】在分布式系统中,多个进程或节点可能需要同时访问和操作共享资源。为了确保数据的一致性和系统的稳定性,我们需要一种机制来协调这些进程或节点的访问,避免并发冲突和竞态条件。分布式锁服务正是为此而生的一种解决方案。它通过在网络环境中实现锁机制,确保同一时间只有一个进程或节点能够访问和操作共享资源。
89 3
|
3月前
|
SQL 消息中间件 关系型数据库
Apache Doris Flink Connector 24.0.0 版本正式发布
该版本新增了对 Flink 1.20 的支持,并支持通过 Arrow Flight SQL 高速读取 Doris 中数据。

热门文章

最新文章

推荐镜像

更多