전체 글
-
우리관계를 그래프로? - RDB to Neo4j 자동화 #4Intelligent Product/RDB to Neo4J 2022. 11. 1. 00:53
지난 포스트까지 Node를 이전하는 것 까지 완료하였다. 이번에는 Relation을 Migration 해본다. RDB에서 Mapper 테이블은 다음과 같이 구성되어 있다. 이를 테이블을 조인하면 다음과 같이 자세한 데이터를 확인할 수 있다. 이 데이터를 Neo4J로 마이그레이션 하기 위한 플로우는 다음과 같다. Node 를 마이그레이션 하는 플로우에서 SplitJSON이 새로 추가 되었다. 이는 Relation 추가시 기존의 있는 노드를 확인하여 데이터를 추가해야하기 때문에 Cypher Query 를 한번에 작성하는것이 아닌 Row단위로 쿼리를 작성하기 때문이다. 1. Get Like Mapper Table(QueryDatabaseTable) : like_mapper 테이블에서 매핑 정보를 가져온다. S..
-
우리관계를 그래프로? - RDB to Neo4j 자동화 #3Intelligent Product/RDB to Neo4J 2022. 11. 1. 00:42
이번에는 RDB 에서 Neo4J로 데이터를 이전하는 플로우를 테스트한다. 테스트를 위해서 RDB에 아래와 같이 샘플데이터를 생성하였다. CREATE TABLE `person` ( `id` int AUTO_INCREMENT NOT NULL COMMENT '사람 ID', `name` varchar(200) NOT NULL COMMENT '이름', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='사람 정보'; CREATE TABLE `location` ( `id` int AUTO_INCREMENT NOT NULL COMMENT '장소 ID', `name` varchar(200) NOT NULL COMM..
-
우리관계를 그래프로? - RDB to Neo4j 자동화 #2Intelligent Product/RDB to Neo4J 2022. 10. 31. 18:07
지난 포스트 까지 Neo4J를 사용하기 위해 Apache NiFi 에 프로세서를 추가하는 작업을 진행하였다. 이번에는 프로세서를 확인해보고 Cypher Query를 실행해보는 작업을 진행해보려고 한다. 새로 추가된 ExecuteGraphQuery의 설정부분은 다음과 같다. Client Service : 데이터 소스 정보를 연결 Graph Query : 실행할 Query 정보 데이터 소스는 RDB 연결 했을때와 비슷한 형식으로 설정가능하다. Client Service 항목을 누르면 초기설정에는 아무것도 없으므로 새로 생성을 선택한다. Compatible Controller Services에서 Neo4J 를 선택하면 된다. 그러면 다음과 같이 설정이 되며 우측의 화살표를 눌러 Contoller Service..
-
우리관계를 그래프로? - RDB to Neo4j 자동화 #1Intelligent Product/RDB to Neo4J 2022. 10. 31. 17:53
지난 포스트들을 통해서 Neo4j 에 대한 사용법과 Apache NiFi에 대해 학습 하였다. 이제 이 둘을 이용하여 RDB의 데이터들을 Apache NiFi 에 마이그레이션을 자동화 하여 기존 RDB 데이터 들도 그래프로 간단하게 변경하는 자동화 작업을 진행하려한다. Apache NiFi에서는 기본적으로 제공하는 프로세서들 이외에 추가적으로 제공하는 번들들이 존재한다. 이중에는 Neo4j 와같은 Cyhper Query 를 지원하는 번들 또한 존재한다. 최근에도 업데이트 되고 있으며, Apache 에서 지속적으로 지원하는 것으로 보여진다. 이를 NiFi에서 사용하기 위해서는 빌드를 하여 NiFi 설치경로에 있는 라이브러리에 추가하여야한다. 해당 Repository를 가져와서 maven을 이용하여 빌드를 ..
-
Mac OS 에서 Apache Nifi 사용해보기 #7 - 실습(Custom Processor 분석)Intelligent Product/Apache NiFi 2022. 10. 24. 21:42
지난 포스트에서는 NiFi Custom Processor 를 생성하여 nifi에 추가하기까지 하였다. 이번에는 프로젝트의 기본 코드를 확인한다. NiFi를 생성하면 다음과 같은 코드가 기본으로 작성되어 있다. /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Versio..
-
Mac OS 에서 Apache Nifi 사용해보기 #6 - 실습(Custom Processor)Intelligent Product/Apache NiFi 2022. 10. 24. 21:14
Apache NiFi에서는 위 그림과 같은 프로세서들을 이용하여 데이터를 처리할 수 있다. 그리고 NiFi 에서 제공하고 있는 Processor를 제외하고 직접 프로세서를 제작할 수도 있다. NiFi는 JVM 에서 동작하므로 Processor 또한 Java 로 개발 할 수 있다. https://nifi.apache.org/developer-guide.html Apache NiFi Developer Guide Copyright © 2022 The Apache Software Foundation, Licensed under the Apache License, Version 2.0. Apache, the Apache feather logo, NiFi, Apache NiFi and the project logo..
-
Mac OS 에서 Apache Nifi 사용해보기 #5 - 실습(날씨 데이터 수집)3Intelligent Product/Apache NiFi 2022. 10. 19. 10:17
지난번 포스트까지는 날씨 데이터를 가져와서 그대로 파일로 저장하는 플로우를 작성해보았다. 이번에는 데이터를 정제하여 RDB에 입력하는 프로세스를 작성해보려고 한다. 이번에 작성한 Flow는 아래와 같다. InvokeHTTP : 기상청으로부터 데이터 요청한다. EvaluateJsonPath: flowFile content에 있는 JSON 데이터를 확인하여 flowFile Attribute 로 저장한다. ExecuteGroovyScript: groovy script를 실행시키며, 여기에 날씨데이터를 파싱하는 로직을 추가하여 데이터를 정제한다. PutSQL: RDB에 데이터 적재한다. 1. InvokeHTTP - Run Schedule : 0 15 2/3 ? * * * (2시부터 3시간 간격으로 15분에 실행..
-
Mac OS 에서 Apache Nifi 사용해보기 #4 - 실습(날씨 데이터 수집)2Intelligent Product/Apache NiFi 2022. 10. 13. 22:42
상단 로고 옆 첫번째 버튼을 빈곳으로 드래그하여 Processor 를 추가할 수 있다. 나이파이에서는 기본적으로 여러 데이터 처리를 위한 프로세서를 제공하고 있다. 실습 시나리오는 파이프라인은 Http에서 데이터를 가져와 파일로 저장하도록 한다. 파이프라인은 3단계로 구성된다. 1. HTTP 요청 (InvokeHTTP) 2. Filename 지정 (UpdateAttribute) 3. 파일로 저장 (PutFile) HTTP 요청 (InvokeHTTP) HTTP URL : http://apis.data.go.kr/1360000/VilageFcstInfoService_2.0/getVilageFcst?serviceKey=[Service Key]pageNo=1&numOfRows=50&dataType=JSON&ba..