Database

데이터 시각화를 위한 테이블 작업

torukmakto 2023. 6. 12. 23:43

데이터 시각화 작업 진행을 위해 아래 테이블에 나와 있는 데이터를

PostgreSQL DB에 테이블화 시켜 보겠습니다.

 

웹에서 다은 방법으로도 해당 데이터를 다룰수 있는 다양한 방법이 

있겠지만 DB에 있는 실제 테이블로 만들어 사용해 보도록 하겠습니다.

 

테이블화 대상은 아래와 같습니다.

 

Alphaliner TOP 100 : https://alphaliner.axsmarine.com/PublicTop100/

 

PublicTop100

Fleet Data : Alphaliner How to read the graph?  > The percentage shown on the left of each bar represents the operators share of the world liner fleet in TEU terms. > The light coloured bar on the right represents the current orderbook (firm orders).  

alphaliner.axsmarine.com

Alphaliner TOP 100

상기 사이트는 전세계 컨테이너 해운 선사에 대한 정보를 선복량 기준으로 1등 부터 100등까지

보여주는 곳입니다. 우리나라는 'HMM'(구 현대상선)이 전세계 8위에 랭크되어 있네요.

 

해당 정보를 시각화 하기위해 관련 데이터를 DB에 테이블화 하는 작업을 진행해 보고자 합니다.

 

먼저, 상기 사이트에서 1등 부터 100등까지 자료를 엑셀에 저장합니다. 사이트에 보면 헤드가 두 줄로

되어 있을텐데, 한 줄로 풀어 줍니다.

 

Alphaliner TOP 100 정보
Alphaliner TOP 100 정보 - 엑셀化

 

 상기 데이터를 지도에도 표시해 볼 수 있도록 Country Code, Country Name, Region 컬럼을 끝에 추가하고

각 선사 별로 해당 정보를 매핑해 줍니다. 추가로, 회사 설립 연도와 본사(HQ)가 위치한 도시 이름도 반영해

주었습니다. 일부 누락된 데이터도 보이는데 무시합니다.

 

Country 정보 매핑

그리고, '%Chart', '%existing' 컬럼 값은 아래와 같이 'Chart_ratio', 'existing_ratio'등 ratio값으로  수정해

줍니다. 총 17개 컬럼이네요.

 

'%'값을 ratio 값으로 변경

 

다음으로, 상기 테이터를 Import 할 테이블을 설계합니다.

먼저, 테이블 명을 다음과 같이 결정 하였습니다. 

 

테이블 명: alphaliner_top100_230512

 

그리고, 각 컬럼 명(column name)데이터 타입(data type)은 다음과 같이 결정

하였습니다.

-----------------------------------------------------------------------------------------------------------

  "rank" smallint,
  "operator" text,
  "total_teu" integer,
  "total_ships" integer,
  "owned_teu" integer,
  "owned_ships" integer,
  "chartered_teu" integer,
  "chartered_ships" integer,
  "chartered_ratio" real,
  "orderbook_teu" integer,
  "orderbook_ships" integer,
  "existing_ratio" real,
  "country_code" text,
  "country_name" text,
  "region" text,
  "company_birth" text,
  "hq_Location" text,
  -------------------------------------------------------------------------------------------------------------

 

이제, 'pgAdmin 4'를 열고, Database에서 기존에 생성해 두었던 'superset' DB를 클릭하여

'Schemas' 아래 'public'을 선택하고 마우스 우클릭하여 'Create >> Table'을 선택합니다.

(참고로, 'public' 아래 'Tables'를 선택하고 마우스 우클릭하여 생성해도 됨) 

 

Table 생성을 위한 메뉴 선택

 

'Create >> Table'을 클릭하면 나오는 아래 화면에서 위에서 결정한 테이블 'Name'을 입력하고

'Owner', 'Schema'는 선택되어 있는 기본 상태로 둡니다.

 

Table 생성 - General 탭

 

그 다음, 'Columns'탭으로 이동하여 우측 상단에 있는 '+' 기호를 클릭하고 위에서 결정한

'컬럼 명' 입력 및 '데이터 타입'을 선택해 줍니다. 아울러, 입력한 컬럼 중 'rank''Not NULL',

 'Primary Key'로 설정해 줍니다

 

Table 생성 - Columns 탭

 

그리고, 'SQL'탭에서는 현재까지 입력된 내용에 대한 SQL 구문을 볼 수 있고, 'Save' 버튼

클릭하여 테이블을 생성합니다.

 

Table 생성 - SQL 탭

 

최종적으로 아래와 같이 테이블이 생성 되었습니다.

 

Table 생성 - 완료

 

이제, 생성된 테이블에 데이터를 Import 할 차례입니다.

엑셀 파일에서 '헤드' row를 삭제한 다음, CSV 파일로 저장합니다.

 

Import 할 CSV 파일

그리고, pgAdmin4에서 생성한 테이블을 선택한 다음 오른쪽 클리하면 나오는 

'Import/Export...' 메뉴를 선택합니다. 나타나는 Pop-up 화면에서 'Import'를선택하고

파일 위치를 지정해 준 다음,  'Format' 은 CSV 선택 후 'OK' 버튼을 클릭합니다.

 

CSV 파일 Import

정상적으로 Import가 완료되면 아래와 같은 메시지를 볼 수 있습니다.

 

Import '완료' 메시지

 

최종, 'Query Tool' 을 실행하여, 해당 테이블을 조회하면 다음과 같이 입력된 데이터를

확인할 수 있습니다.

 

Query Tool 실행 결과

 

다음에는 Import된 데이터를 기반으로 데이터 시각화를 진행해 보도록 하겠습니다.