【发布时间】:2020-10-06 08:08:27
【问题描述】:
我计划使用 Apache Cassandra 作为存储后端并使用 Elasticsearch 作为索引后端来部署 Apache Atlas。我想知道如何用这个保存血统信息?它提供了get API来获取血统信息,但似乎无法保存。
【问题讨论】:
我计划使用 Apache Cassandra 作为存储后端并使用 Elasticsearch 作为索引后端来部署 Apache Atlas。我想知道如何用这个保存血统信息?它提供了get API来获取血统信息,但似乎无法保存。
【问题讨论】:
在 Atlas 中,血统是通过使用输入和输出的流程链接起来的。
示例: 如果您想查看两个 hive_table 类型之间的血统,就像:
T1(hive_table)--->P1(hive_process)--->T2(hive_table)
因此,基本上实体需要通过流程类型链接。
在 Atlas 中,流程是实体,可以使用 API POST: /v2/entity 创建,其中定义了输入和输出,如上述 hive_process:
POST: /api/atlas/v2/entity
{
"entity": {
"typeName": "hive_process",
"attributes": {
"outputs": [
{
"guid": "2",
"typeName": "hive_table",
"uniqueAttributes": {
"qualifiedName": "t2@primary"
}
}
],
"qualifiedName": "p1@primary",
"inputs": [
{
"guid": "1",
"typeName": "hive_table",
"uniqueAttributes": {
"qualifiedName": "t1@primary"
}
}
],
"name": "P1-Process"
}
}
}
在创建流程之前需要注意的重要一点是引用的实体(输入、输出)应该预先存在,否则流程创建将失败。
如果您的需求不包含预先存在的类型,您当然可以继续为 Atlas Entity 和 Process 定义自己的类型
Apache site 上有关 Atlas 类型系统的更多信息
【讨论】: