导入/导出

导出 API

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

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

Export API

总体方法如下:

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

有关导出 hdfs_path 实体的详细信息,请参见此处。

标题Export 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 而非 uniqueAttributes,用于获取 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 调用

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

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

评论

登录后参与评论

正在加载评论…