본문 바로가기
AI 및 데이터 분석

Dataiku - 데이터베이스 연결 (PostgreSQL) + Sync 레시피

by riML 2023. 6. 15.
아래의 튜토리얼 내용은 dataiku academy 자료를 참고하여 제작되었습니다.

 

안녕하세요.

PostgreSQL DB 연결 설정에 관하여 확인해보겠습니다 : )


PostgreSQL 연결

 

상단 탐색 바의 Applications 메뉴에서 Administration을 선택하세요.

Connection 탭으로 이동한 다음 New Connection > PostgreSQL을 선택하세요.

(다양한 SQL 데이터베이스 연결이 사용 가능합니다!)


마지막으로 연결에 필요한 정보를 입력하세요!

* 연결 이름은 이후에 변경할 수 없습니다!

기본 정보들을 입력한 후, TEST 버튼을 눌러서 Connection OK가 뜨는지 확인 후 CREATE 해주세요!

Dataiku로 데이터셋 가져오기
연결을 생성한 후,  PostgreSQL 데이터베이스에 연결하고 있다면 데이터베이스의 각 테이블에 대해 Dataiku 데이터셋을 생성할 수 있습니다.

Connection 탭에서 방금 생성한 postgreSQL 연결을 선택합니다. 그리고 하단의  Import tables to datasets를 클릭하세요.

LIST TABLES 버튼을 눌러서, 가져올 테이블을 선택하세요.

원하는 테이블을 선택 후 , Import tables을 클릭하면  import 할 프로젝트를 선택할 수 있습니다.
이렇게 SQL 연결을 생성한 후 테이블을 대량으로 가져올 수 있습니다!


Sync 레시피를 사용한 데이터 이전 

업로드된 데이터셋에서 Sync 레시피를 사용하여 SQL 데이터베이스로 이동시켜보도록 하겠습니다.

 

+New Project > DSS Tutorials > Code > SQL in Dataiku 프로젝트를 열어주세요!

Flow에서 주문 및 고객 데이터가 업로드되었는지 확인할 수 있습니다. 이제 업로드된 데이터를 SQL 데이터베이스로 가져오겠습니다.

먼저 주문 데이터셋을 열어보겠습니다. 이는 Dataiku에 업로드된 CSV 파일입니다. CSV 파일은 어떤 유형의 정보도 포함하지 않습니다. 따라서 이 데이터셋의 열은 현재 특정 유형으로 지정되어 있지 않으며, Dataiku는 기본적으로 모든 열이 문자열 저장 유형을 가진 것으로 가정합니다.

하지만 이 데이터셋을 데이터베이스로 동기화할 때, pages_visited, tshirt_price 및 tshirt_quantity 열은 각각 정수, 실수 및 정수 저장 유형을 가져야 합니다.

Sync 레시피는 입력 데이터셋의 저장 유형을 출력 데이터베이스의 유사한 유형으로 매핑합니다. 

주문(order) 데이터셋의 Settings 탭을 엽니다.
Schema 하위탭에서 Check Now를 클릭하여 스키마가 일관성 있는지 확인합니다.

예를 들어, 데이터가 문자열로 구성된 열에서 숫자 데이터가 발견된 경우 일관성 확인 작업을 통해 해당 열의 유형을 수정할 수 있습니다.

 

그런 다음 Infer types from data를 클릭하고 확인한 다음 데이터셋을 저장(Save)합니다. "Infer types from data"는 데이터의 샘플을 분석하여 열 유형을 자동으로 추론하여 데이터셋의 열 유형을 설정하는 기능입니다.

 

이제 업데이트된 저장 유형으로 데이터셋을 데이터베이스와 동기화시켜 보겠습니다.
주문 데이터셋에서 Actions 사이드바에서 Sync를 선택합니다.

orders_copy와 같은 기본 데이터셋 이름을 사용합니다.
새 데이터셋을 SQL 연결에 저장합니다. 위에서 만든 PostgreSQL 과 연결해주세요!
레시피를 생성하고 실행합니다!


Prepare 레시피를 사용한 데이터 이전

Sync 레시피는 데이터 준비 과정 없이 기존 데이터셋을 데이터베이스로 복사해야 할 때 편리합니다. 로컬 데이터를 데이터베이스로 로드하기 전에 데이터 전처리를 수행해야 하는 경우 Prepare 레시피를 사용할 수 있습니다.

 

Flow에서 customers_stacked 데이터셋을 선택하고, Prepare를 클릭합니다.
기본 데이터셋 이름으로 customers_stacked_prepared를 지정하고 사용 가능한 SQL 연결에 새 데이터셋을 저장합니다.
레시피 생성을 클릭합니다.

[전처리 과정]

1. 생년월일 파싱하기 - birthdate 열 클릭 : Parse Date
2. user_agent 열을 분류하고, 결과로 user_agent_brand와 user_agent_os 열을 유지

- user_agent 열 클릭 : Classify user_agent , 두 열 빼고 나머지 delete

3. ip_address 열의 GeoIP를 해결하고, 결과로 ip_address_country와 ip_address_geopoint 열을 유지

- ip_address 열 클릭 : Resolve GeoIP, 두 열 빼고 나머지 선택 해제


모두 처리 후, Run 클릭!

Prepare 레시피 작업은 DSS 엔진에서 실행되며, 데이터는 PostgreSQL 데이터베이스로 전송됩니다. Prepare 레시피는 샘플을 기반으로 각 열의 저장 유형을 추론하기 때문에 일반적으로 수동 조정이 필요하지 않습니다!


PostgreSQL 데이터베이스를 Dataiku 에 연결하고, 데이터를 DB 에 이전하도록 2가지 레시피를 사용해보았습니다!

궁금한 내용 있으시면, 댓글로 질문 남겨주세요 : )