Upload
infiniflux-korea
View
131
Download
0
Embed Size (px)
Citation preview
IP Address Type
www.infiniflux.com
Table of Contents
Overview
IPv4 Type
IPv6 Type
Network Mask Type
1
2
3
4
TO_IPV4 함수5
TO_IPV6 함수6
MIN, MAX 함수7
Overview
3
• IoT 데이터는 대부분 장비에서 발생하며 따라서 네트워크로 연결되어 있고 출발지와 도착지 IP
주소를 가지고 있는 경우가 보통이다.
• InfiniFlux는 DBMS 엔진 차원에서 네트워크 데이터 타입을 제공하고 연산을 지원하며 편리한
함수를 제공하고 있다.
• 지원하는 네트워크 데이터 타입
- IPv4 형식 : 4바이트 주소 타입
- IPv6 형식 : 16바이트 주소 타입
- Network mask 형식 : IPv4 또는 IPv6 에 대한 네트워크 마스크 지정
• 제공 연산자 및 함수
CONTAINS, CONTAINED
TO_IPV4(), TO_IPV4_SAFE()
TO_IPV6(), TO_IPV6_SAFE()
MIN(), MAX()
IPv4 Type
4
• 4바이트 주소 타입을 지원하는 데이터 타입으로 “IPV4” 를 사용
• SELECT 할 때 WHERE 절에서 비교 연산과 ‘*’ 사용 가능
CREATE TABLE addrtable ( srcip ipv4 );CREATE
INSERT INTO addrtable VALUES ( ‘127.0.0.1’ );INSERT
SELECT addr FROM addrtable WHERE srcip = ‘127.0.0.1’;
SELECT addr FROM addrtable WHERE srcip > ‘127.0.0.1’;
SELECT addr FROM addrtable WHERE srcip <> ‘127.0.0.1’;
SELECT addr FROM addrtable WHERE srcip = ‘127.0.0.*’;
SELECT addr FROM addrtable WHERE srcip = ‘*.0.0.*’;
SELECT
IPv6 Type
5
• 16바이트 주소 타입을 지원하는 데이터 타입으로 “IPV6” 를 사용
• SELECT 할 때 WHERE 절에서 비교 연산을 사용할 수 있음
CREATE TABLE addrtable ( srcip ipv6 );CREATE
INSERT INTO addrtable VALUES ( ‘::127.0.0.1’ );
INSERT INTO addrtable VALUES ( ‘::FFFF:255.255.255.255’ );
INSERT INTO addrtable VALUES ( ‘21DA:D3:0:2F3B:2AA:FF:FE28:9C5A’ );
INSERT
SELECT addr FROM addrtable WHERE srcip = ‘::127.0.0.1’;
SELECT addr FROM addrtable WHERE srcip > ‘::127.0.0.1’;
SELECT addr FROM addrtable WHERE srcip <> ‘::127.0.0.1’;
SELECT addr FROM addrtable WHERE srcip >= ’21DA::’;
SELECT
Network Mask Type
6
• IPv4 또는 IPv6에 대한 네트워크 마스크 지정 형식(/비트열수)을 지원함
• 특정 주소 목록이 특정 주소 대역에 포함되어 있는지 검사할 때 사용함
SELECT srcip FROM addrtable WHERE ‘192.168.0.0/16’ CONTAINS srcip;
SELECT srcip FROM addrtable WHERE ‘192.168.0.0/16’ NOT CONTAINS srcip;CONTAINS
• 네트워크 마스크 표현 형태
네트워크 주소 마지막에 / 기호와 비트열 개수를 표현192.128.0.0/16 FFFF::192.128.99.0/32
• CONTAINS 연산자
우측의 주소 타입이 좌측에 네트워크 마스크 범위에 포함되는지 검사함
SELECT srcip FROM addrtable WHERE srcip CONTAINED ‘192.168.0.0/16’;
SELECT srcip FROM addrtable WHERE srcip NOT CONTAINED ‘192.168.0.0/16’;CONTAINED
• CONTAINED 연산자
좌측의 주소 타입이 우측에 네트워크 마스크 범위에 포함되는지 검사함
TO_IPV4 함수
7
• VARCHAR 타입 문자열을 IPV4 타입으로 변환하는 함수
SELECT TO_IPV4(ipstring) FROM addrtable;
• TO_IPV4()
문자열을 IPV4 타입으로 변환. 변환이 안되는 문자열인 경우 에러 표시함
SELECT TO_IPV4_SAFE(ipstring) FROM addrtable;
• TO_IPV4 SAFE()
TO_IPV4()와 같이 IPV4 타입으로 변환하지만, 오류가 발생하면 NULL 을 표시함
SELECT TO_CHAR(srcip) FROM addrtable;
• TO_CHAR()
TO_IPV4()와 반대로 IPV4 타입을 문자열로 변환하는 함수
TO_IPV6 함수
8
• VARCHAR 타입 문자열을 IPV6 타입으로 변환하는 함수
SELECT TO_IPV6(ipstring) FROM addrtable;
• TO_IPV6()
문자열을 IPV6 타입으로 변환한다. 변환이 안되는 문자열인 경우 에러 표시함
SELECT TO_IPV6_SAFE(ipstring) FROM addrtable;
• TO_IPV6 SAFE()
TO_IPV6()와 같이 IPV6 타입으로 변환하지만, 오류가 발생하면 NULL 을 표시함
SELECT TO_CHAR(srcip) FROM addrtable;
• TO_CHAR()
TO_IPV6()와 반대로 IPV6 타입을 문자열로 변환하는 함수
MIN, MAX 함수
9
• IPV4, IPV6 타입에 대해서 최소, 최대 값을 구하는 함수
SELECT MIN(srcip) FROM addrtable;
• MIN()
입력된 네트워크 데이터 타입 중에 최소 값을 구한다.
SELECT MAX(srcip) FROM addrtable;
• MAX()
입력된 네트워크 데이터 타입 중에 최대 값을 구한다.
SELECT MIN(srcip), MAX(srcip) FROM addrtable;
• MIN(), MAX()
동시에 수행해도 된다.
예시)