static void Main(string[] args)
{
var config = new Configuration
{
BasePath = "http://host:port/nifi-api"
};
var apiInstance = new AccessApi(config);
var username = "root"; // string | (optional)
var password = "root123"; // string | (optional)
var flow = new FlowApi(config);
var ProcessGroups = new ProcessGroupsApi(config);
var Processors = new ProcessorsApi(config);
try
{
//CreateConnect(ProcessGroups, "017a102b-82a2-134f-30af-dc3906814840", "017a1024-82a2-134f-354a-8b345ed88fba", "017a100d-82a2-134f-6a20-48ac9f0fa6dd");
#region 创建ProcessGroup
ProcessGroupEntity PGE = new ProcessGroupEntity();
RevisionDTO RD = new RevisionDTO();
RD.ClientId = Guid.NewGuid().ToString();
RD.Version = 0;
ProcessGroupDTO PGD = new ProcessGroupDTO();
PGD.Name = "Denny Test222";
PGD.Comments = "Denny First Test Process Group";
PGE.DisconnectedNodeAcknowledged = false;
PGE.Revision = RD;
PGE.Component = PGD;
//E.Position
var createPG = ProcessGroups.CreateProcessGroup("root", PGE);
#endregion
#region 创建controller Service 给ProcessGroup配置数据库连接
ControllerServiceEntity CSE = new ControllerServiceEntity();
ControllerServiceDTO CSD = new ControllerServiceDTO();
RevisionDTO C_RD = new RevisionDTO();
BundleDTO CBD = new BundleDTO();
Dictionary<string, string> DBInfo = new Dictionary<string, string>();
DBInfo.Add("Database Connection URL", "jdbc:mysql://host:3306/dmp_datainput_db?serverTimezone=GMT%2B8&characterEncoding=UTF-8&useUnicode=true");
DBInfo.Add("Database Driver Class Name", "com.mysql.jdbc.Driver");
DBInfo.Add("database-driver-locations", "/opt/nifi/nifi-current/jdbcdriver/mysql-connector-java-8.0.25.jar");
DBInfo.Add("Database User", "root");
DBInfo.Add("Password", "root123");
CBD.Artifact = "nifi-dbcp-service-nar";
CBD.Group = "org.apache.nifi";
CBD.Version = "1.13.2";
CSD.Bundle = CBD;
CSD.Type = "org.apache.nifi.dbcp.DBCPConnectionPool";
CSD.Properties = DBInfo;
CSD.Name = "6B-666";
C_RD.Version = 0;
C_RD.ClientId = Guid.NewGuid().ToString();
CSE.DisconnectedNodeAcknowledged = false;
CSE.Component = CSD;
CSE.Revision = C_RD;
var CS = ProcessGroups.CreateControllerService("017a1041-82a2-134f-a043-52ffbf7e15dc", CSE);
#endregion
#region 在指定的ProcessGroup下创建组件-ExecuteSQL
ProcessorEntity PE = new ProcessorEntity();
RevisionDTO P_RD = new RevisionDTO();
P_RD.ClientId = Guid.NewGuid().ToString();
P_RD.Version = 0;
ProcessorDTO PD = new ProcessorDTO();
BundleDTO BD = new BundleDTO();
ProcessorConfigDTO PCD = new ProcessorConfigDTO();
PCD.SchedulingPeriod = "70 sec"; // 30 sec or 5 min
BD.Artifact = "nifi-standard-nar";
BD.Group = "org.apache.nifi";
BD.Version = "1.13.2";
PD.Bundle = BD;
PD.Name = "ExecuteSQL";
PD.Type = "org.apache.nifi.processors.standard.ExecuteSQL";
PD.Config = PCD;
PE.DisconnectedNodeAcknowledged = false;
PE.Component = PD;
PE.Revision = P_RD;
var createProcess = ProcessGroups.CreateProcessor("017a100d-82a2-134f-6a20-48ac9f0fa6dd", PE);
#endregion
#region 在指定的ProcessGroup下创建组件-ConvertAvroToJSON
ProcessorEntity ConvertJson = new ProcessorEntity();
ProcessorDTO CTPD = new ProcessorDTO();
ProcessorConfigDTO CTPCD = new ProcessorConfigDTO();
BundleDTO CTBD = new BundleDTO();
RevisionDTO CT_RD = new RevisionDTO();
List<string> Relationships = new List<string> { "failure" };
CT_RD.ClientId = Guid.NewGuid().ToString();
CT_RD.Version = 0;
CTBD.Artifact = "nifi-avro-nar";
CTBD.Group = "org.apache.nifi";
CTBD.Version = "1.13.2";
CTPD.Name = "ConvertAvroToJSON";
CTPD.Type = "org.apache.nifi.processors.avro.ConvertAvroToJSON";
CTPD.Bundle = CTBD;
CTPCD.AutoTerminatedRelationships = Relationships;
CTPD.Config = CTPCD;
ConvertJson.DisconnectedNodeAcknowledged = false;
ConvertJson.Component = CTPD;
ConvertJson.Revision = CT_RD;
var dataJson = ProcessGroups.CreateProcessor("017a100d-82a2-134f-6a20-48ac9f0fa6dd", ConvertJson);
#endregion
#region 在指定的ProcessGroup下创建组件-ConvertJSONToSQL
ProcessorEntity ConvertJson = new ProcessorEntity();
ProcessorDTO CTPD = new ProcessorDTO();
ProcessorConfigDTO CTPCD = new ProcessorConfigDTO();
BundleDTO CTBD = new BundleDTO();
RevisionDTO CT_RD = new RevisionDTO();
List<string> Relationships = new List<string> { "failure" };
CT_RD.ClientId = Guid.NewGuid().ToString();
CT_RD.Version = 0;
CTBD.Artifact = "nifi-standard-nar";
CTBD.Group = "org.apache.nifi";
CTBD.Version = "1.13.2";
CTPD.Name = "ConvertJSONToSQL";
CTPD.Type = "org.apache.nifi.processors.standard.ConvertJSONToSQL";
CTPD.Bundle = CTBD;
CTPCD.AutoTerminatedRelationships = Relationships;
CTPD.Config = CTPCD;
ConvertJson.DisconnectedNodeAcknowledged = false;
ConvertJson.Component = CTPD;
ConvertJson.Revision = CT_RD;
var dataJson = ProcessGroups.CreateProcessor("017a100d-82a2-134f-6a20-48ac9f0fa6dd", ConvertJson);
#endregion
#region 在指定的ProcessGroup下创建组件-PutSQL
ProcessorEntity PE = new ProcessorEntity();
RevisionDTO P_RD = new RevisionDTO();
P_RD.ClientId = Guid.NewGuid().ToString();
P_RD.Version = 0;
ProcessorDTO PD = new ProcessorDTO();
BundleDTO BD = new BundleDTO();
ProcessorConfigDTO PCD = new ProcessorConfigDTO();
List<string> Relationships = new List<string> { "failure", "retry" };
PCD.AutoTerminatedRelationships = Relationships;
BD.Artifact = "nifi-standard-nar";
BD.Group = "org.apache.nifi";
BD.Version = "1.13.2";
PD.Bundle = BD;
PD.Name = "PutSQL";
PD.Type = "org.apache.nifi.processors.standard.PutSQL";
PD.Config = PCD;
PE.DisconnectedNodeAcknowledged = false;
PE.Component = PD;
PE.Revision = P_RD;
var createProcess = ProcessGroups.CreateProcessor("017a100d-82a2-134f-6a20-48ac9f0fa6dd", PE);
#endregion
}
catch (Exception e)
{
}
}
public static void CreateConnect(ProcessGroupsApi ProcessGroups,string Destinationid,string Sourceid,string ProcessGroupid) {
#region 创建 connections,连接两个组件
ConnectionEntity CE = new ConnectionEntity();
ConnectionDTO CD = new ConnectionDTO();
ConnectableDTO destination = new ConnectableDTO(Destinationid, null, ConnectableDTO.TypeEnum.PROCESSOR, ProcessGroupid);
ConnectableDTO source = new ConnectableDTO(Sourceid, null, ConnectableDTO.TypeEnum.PROCESSOR, ProcessGroupid);
List<string> Relationships = new List<string> { "success" };
RevisionDTO CE_RD = new RevisionDTO();
CE_RD.ClientId = Guid.NewGuid().ToString();
CE_RD.Version = 0;
CD.Destination = destination;
CD.Source = source;
CD.SelectedRelationships = Relationships;
CE.Component = CD;
CE.DisconnectedNodeAcknowledged = false;
CE.Revision = CE_RD;
var Create_connect = ProcessGroups.CreateConnection(ProcessGroupid, CE);
#endregion
}
更多文章请扫码关注公众号,有问题的小伙伴也可以在公众号上提出。