导入/导出

导出 API

qianmoQqianmoQ· 更新于 2026-09-27· 阅读 9 分钟· 0 次阅读

登录后可跨设备保存划线和私人笔记登录

Export API

总体方式如下:

  • 消费者指定要导出的数据范围(详见下文)。
  • 如果调用成功,API 将按指定格式返回数据流。
  • 调用失败时将返回错误。

关于导出 hdfs_path 实体的详情,请参阅此处。

标题导出 API
示例参见下方的示例章节。
URLapi/atlas/admin/export
方法POST
URL 参数无
数据参数使用 AtlasExportRequest 类来指定要导出的项。AtlasObjectId 列表允许在一次会话中指定多个要导出的项。AtlasObjectId 是实体类型、唯一属性名称、唯一属性值构成的三元组。可以指定多项。参见下方示例。
成功响应以 application/zip 格式返回的文件流。
错误响应系统内部处理的错误将以 AtlasBaseException 形式返回。
备注使用者可以选择以编程方式通过 java.io.ByteOutputStream 消费该 API 的输出,也可以手动将流的内容保存到磁盘上的文件中。

方法签名

@POST
@Path("/export")
@Consumes("application/json;charset=UTF-8")

附加选项

可以为 Export 操作指定附加参数。

当前实现提供 2 个选项,均为可选:

  • matchType 该选项用于配置获取起始实体的方式,可取以下值:

    • startsWith 搜索以指定条件作为前缀的实体。
    • endsWith 搜索以指定条件作为后缀的实体。
    • contains 搜索包含指定条件作为子串的实体。
    • matches 搜索与指定条件正则表达式匹配的实体。
  • fetchType 该选项用于配置获取实体的方式,可取以下值:

    • FULL:获取与起始实体直接和间接关联的所有实体。例如,若指定的起始实体是一个表,则该选项将获取该表、其所在数据库以及该数据库中的所有其他表。
    • CONNECTED:获取与起始实体直接关联的所有实体。例如,若指定的起始实体是一个表,则该选项仅获取该表和数据库实体。
    • INCREMENTAL:详情参见此处。

如果未指定 matchType,则使用精确匹配,即在整个字符串上进行搜索条件匹配。

使用 matchType 搜索适用于所有类型的实体。它在匹配 hdfs_path 类型的实体时尤为有用(参见此处)。

fetchType 选项默认为 FULL。

完整示例见下节。

导出的 ZIP 文件内容

导出的 ZIP 文件中包含以下条目:

  • atlas-export-result.json:

    • 输入过滤条件:导出的范围。
    • 文件格式:为导出操作选择的格式。
    • 统计指标:导出的实体定义、分类和实体的数量。
  • atlas-typesdef.json:所导出实体的类型定义。

  • atlas-export-order.json:实体的导出顺序。

  • {guid}.json:各个实体以与其 ID 对应的文件名单独导出。

示例

下面的 AtlasExportRequest 展示了尝试导出集群 cl1 中的 2 个数据库的过滤条件:

{
    "itemsToExport": [
       { "typeName": "hive_db", "uniqueAttributes": { "qualifiedName": "accounts@cl1" } },
       { "typeName": "hive_db", "uniqueAttributes": { "qualifiedName": "hr@cl1" } }
    ]
}

下面的 AtlasExportRequest 将 fetchType 指定为 FULL。matchType 选项将会抓取 accounts@cl1。

{
    "itemsToExport": [
       { "typeName": "hive_db", "uniqueAttributes": { "qualifiedName": "accounts@" } }
    ],
    "options": {
        "fetchType": "FULL",
        "matchType": "startsWith"
    }
}

下面的 AtlasExportRequest 用 guid 替代 uniqueAttribues 来获取 accounts@cl1。

{
    "itemsToExport": [
       { "typeName": "hive_db", "guid": "846c5e9c-3ac6-40ju-8289-fb0cebm64783" }
    ],
    "options": {
        "fetchType": "FULL",
    }
}

下面的 AtlasExportRequest 将 fetchType 指定为 connected。matchType 选项会获取数据库中存在的 accountsReceivable、accountsPayable 等数据。

{
    "itemsToExport": [
       { "typeName": "hive_db", "uniqueAttributes": { "qualifiedName": "accounts" } }
    ],
    "options": {
        "fetchType": "CONNECTED",
        "matchType": "startsWith"
    }
}

以下是 QuickStart 中 Sales 数据库导出操作的 AtlasExportResult JSON。

其中 metrics 包含了本次操作导出的类型数量和实体数量。

{
    "clientIpAddress": "10.0.2.15",
    "hostName": "10.0.2.2",
    "metrics": {
        "duration": 1415,
        "entitiesWithExtInfo": 12,
        "entity:DB_v1": 2,
        "entity:LoadProcess_v1": 2,
        "entity:Table_v1": 6,
        "entity:View_v1": 2,
        "typedef:Column_v1": 1,
        "typedef:DB_v1": 1,
        "typedef:LoadProcess_v1": 1,
        "typedef:StorageDesc_v1": 1,
        "typedef:Table_v1": 1,
        "typedef:View_v1": 1,
        "typedef:classification": 6
    },
    "operationStatus": "SUCCESS",
    "request": {
        "itemsToExport": [
            {
                "typeName": "DB_v1",
                "uniqueAttributes": {
                    "name": "Sales"
                }
            }
        ],
        "options": {
            "fetchType": "full"
        }
    },
    "userName": "admin"
}

CURL 调用

以下是演示导出 QuickStart 数据库的 CURL 调用示例。

curl -X POST -u adminuser:password -H "Content-Type: application/json" -H "Cache-Control: no-cache" -d '{
    "itemsToExport": [
            { "typeName": "DB", "uniqueAttributes": { "name": "Sales" }},
            { "typeName": "DB", "uniqueAttributes": { "name": "Reporting" }},
            { "typeName": "DB", "uniqueAttributes": { "name": "Logging" }}
    ],
        "options": { "fetchType": "full" }
    }' "http://localhost:21000/api/atlas/admin/export" > quickStartDB.zip

评论

登录后参与评论

正在加载评论…