Introduction of Metadata(CN)
· 33 min read
Before your read
Target Audience
- Kylin 5.0 的开发者和用户
What will you learn
- 了解 Kylin 5.0 的元数据 Schema 设计和原理
💬 Kylin5 对元数据的设计 做了比较大的调整,本文将针对这些调整做比较详细的介绍。
Kylin5 对元数据的组织结构做了比较大的调整,本文将针对这些调整做比较详细的介绍。相比于 Kylin4,Kylin5 的元数据的一个显著特点是项目级隔离,也即每个项目彼此独立、互不干扰。本文会从项目开始,分别展开Table、Model、IndexPlan、Segment、Job 各个部分的内容。更宽泛地说,Kylin5 的元数据还包括元数据更新审计日志(AuditLog)、事务表(Epoch)、权限(ACL)、查 询历史(Query History) 等内容。所有的这些内容都很重要,但作为入门级的介绍,本文不涉及更宽泛的内容,而是尽量把篇幅控制在元数据中最为基础的那部分,以帮助更多的开发者快速地了解和参与到 Kylin5 的研发。当然,作为一篇入门级介绍性文章,非研发人员阅读也能有所收获。接下来让我们切入主题。
Overview
当启动一个 Kylin5 的实例在这个实例上进行了一些常规操作,创建项目、加载表、建模、编辑聚合组、构建索引等操作后,通过执行脚本 {KYLIN_HOME}/metadata.sh backup 可以得到类似于如下结构的元数据树状图。
.
├── UUID
├── _global
│ ├── project
│ │ ├── def.json
│ │ └── ssb.json
│ ├── resource_group
│ │ └── relation.json
│ ├── sys_acl
│ │ └── user
│ │ └── ADMIN
│ ├── user
│ │ └── ADMIN
│ └── user_group
│ ├── ALL_USERS
│ ├── ROLE_ADMIN
│ ├── ROLE_ANALYST
│ └── ROLE_MODELER
├── def
│ ├── dataflow
│ │ └── de52affe-f280-dcd1-be78-7865ff149669.json
│ ├── dataflow_details
│ │ └── de52affe-f280-dcd1-be78-7865ff149669
│ │ ├── 0b36355d-03df-8b02-aaf9-c2ab00e30456.json
│ │ ├── 743c5345-a3cd-9acf-2c90-c5bcec61c600.json
│ │ └── 7cbe4459-cbbd-8b8f-bb88-6a54c24d76ce.json
│ ├── execute
│ │ ├── 1c7dd6c1-6da5-72e6-a2fe-e87e5c764502-de52affe-f280-dcd1-be78-7865ff149669
│ │ ├── 383edce9-fad4-eba9-a498-0f289f1f1a79-de52affe-f280-dcd1-be78-7865ff149669
│ │ ├── 88400e7b-104a-9117-343d-cc3047b49983
│ │ ├── 95300d93-da1e-6505-b710-2771c724fa63-de52affe-f280-dcd1-be78-7865ff149669
│ │ ├── c11e4632-578b-1007-d3e6-65afca6f003c-de52affe-f280-dcd1-be78-7865ff149669
│ │ └── e1731c9e-d70b-e2eb-0fca-6be24751fb72
│ ├── index_plan
│ │ └── de52affe-f280-dcd1-be78-7865ff149669.json
│ ├── job_stats
