본문 바로가기
Specialist/SQL

[빅쿼리 - SQL]를 사용하여 IP 데이터 다루기(cast,pow,concat,lpad 함수 사용)

by 홍원 2022. 4. 29.

로그데이터는 IP 데이터가 필수적으로 포함되므로, ip 데이터를 자유롭게 핸들링 하는 능력은 매우 중요하다.

이번 시간에는 빅쿼리를 사용하여 ip 데이터를 핸들링하는 3가지 방법을 알아보겠다.

 

1.ip 주소에서 4개의 10진수 부분을 추출하기

첫번째 방법으로는 ip 주소를 정수 자료형으로 변환한 후

ip 주소에 있는 4개의 10진수 부분(점으로 구분된 각각의 값)을 정수 자료형으로 추출해보겠다.

10진수 자리 추출

새로운 함수는 cast 함수이다.

cast 함수란 값의 유형을 변환시켜주는 함수이다.

cast('기존값' as 변환하고싶은 유형) 

(위 예에서는 int64로 변환시킴)

4자리 추출 결과

2. 추출한 4개의 10진수를 정수 자료형으로 표기하는 법

추출한 정수 자료형을 2^24, 2^16, 2^8, 2^0을 곱한 후 모두 더해주면 정수 자료형으로 나타낼 수 있다.

pow 함수로 2의 n제곱을 시행한다.

pow(n,지수) 

이를통해 대소비교, 범위판정 등을 할 수있다.

 

3. ip 주소를 0으로 메우기

ip 주소들을 비교하는 또 다른 방법은,

각 10진수 부분을 3자리 숫자가 되게 앞부분을 0으로 메워서 문자열로 만드는 방법이다.

ip를 0으로 메우기

새로 등장한 함수는 concat 함수와 lpad 함수이다.

lpad 함수는 문자열을 지정한 길이만큼 특정 문자를 체워주는 함수이다.

lpad(문자열,자릿수,특정문자)

이번 예제의 lpad 결과는 192, 168, 000, 001

 

concat 함수는 문자열을 합쳐주는 함수이다.

concat('문자열','문자열',,,)

 

그렇다면 결과값을 예상하기는 쉬울 것이다.

0으로 메운 ip

 

이번 글에서는 ip 데이터 핸들링 법 3가지를 알아보았다.

1. ip 주소에서 4개의 10진수 부분을 추출하기

2. 추출한 4개의 10진수를 정수 자료형으로 표기하는 법

3. ip 주소를 0으로 메우기

 

 

로그 데이터에서 ip 데이터를 자유롭게 핸들링 하는 능력은 매우 중요하다.

위 세가지 기본적인 방법을 탄탄히 하자!

 

댓글