导入/导出DataFusion管道

华尔兹91

有谁知道是否可以通过编程方式导入/导出DataFlow管道(已部署或处于草稿状态)?

这个想法是编写一个脚本来删除并创建一个DataFusion实例,以避免在不使用它时进行计费。通过gloud命令行,可以设置DataFusion集群并销毁它,但是自动导出和导入我所有的管道也很有趣。

不幸的是,官方文档并没有帮助我...

谢谢!

阿ja

您可以使用REST API来执行此操作。但是,在给定实例URL的情况下,您可能需要一些脚本来自动执行此操作。您应该能够从应用程序列表API中获得管道配置(请参考此处)。在您的情况下,您首先需要获取管道列表(请参阅此处),然后遍历所有管道并获取各个管道的详细信息,该管道将具有名为的属性configuration该属性将具有config管道json。您仍然必须使用名称,描述,工件信息以及带有从后端收到的配置json的config属性创建新的JSON。

样本看起来像这样,

  1. 在您的集群中,您将要销毁的GET API使用artifactName=cdap-data-pipeline,cdap-data-streams作为查询参数的应用程序列表
/namespaces/default/apps?artifactName=cdap-data-pipeline,cdap-data-streams?artifactName=cdap-data-pipeline,cdap-data-streams
  1. 解析响应并遍历各个应用和GET应用详细信息
namespaces/default/apps/<app-name>

对于每个应用configuration,请在响应中获取属性,并将最终的JSON格式如下:


{   
  "name": "Pipeline_1",
  "description": "Pipeline to do taskX",
  "artifact": {
    "name": "cdap-data-pipeline",
    "version": "6.1.0-SNAPSHOT",
    "scope": "USER"
  },
  "config": JSON.parse(<configuration-from-app-detailed-api>) 
} 

  1. 然后,在一个新集群中,您将使用在上一步中获得的json来创建部署管道。

需要注意的一件事是,如果您在旧集群中具有安装计划或管道的触发器,则不会在新集群中创建这些计划或触发器。如果您只是在部署和运行管道,则管道的其余部分应该可以正常工作。

希望这可以帮助。

[更新] 11/20

刚刚意识到有关于访问REST API的文档datafusion这里然而,它并不完全需要了解如何使REST API调用。这是一个如何做的例子,

curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -w"\n" -X GET <instance-url>/namespaces/default/apps?artifactName=cdap-data-pipeline,cdap-data-streams?artifactName=cdap-data-pipeline,cdap-data-streams

在这里,我们使用gcloud获取对该特定实例的访问令牌。前提条件是使用gcloud SDK登录。身份验证成功后,这将成功返回您特定实例中的应用程序列表。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章