database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
ㆍPostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
PostgreSQL Q&A 7633 게시물 읽기
No. 7633
텍스트 가공에 대하여..
작성자
성제호(s_jeho)
작성일
2009-03-06 14:55
조회수
7,741

대략 두종류의 데이터가 있습니다

M  0 RTRV
   "3020:TOTAL,180,,,,,,"
   "3020:IDLE,97,,,,,,"
   "3020:BUSY,83,,,,,,"
   "3020:OOS,0,,,,,,"
   "3020:PRECUT,0,,,,,,"
   "3020:OVFCNT,468522,,,,,,"
   "3020:NXTCIC,1233,,,,,,"
   "3020:UPDCNT,11220,,,,,,"
   "3021:TOTAL,59,,,,,,"
   "3021:IDLE,55,,,,,,"
   "3021:BUSY,4,,,,,,"
   "3021:OOS,0,,,,,,"
   "3021:PRECUT,0,,,,,,"
   "3021:OVFCNT,10033,,,,,,"
   "3021:NXTCIC,337,,,,,,"
   "3021:UPDCNT,10363,,,,,,"
   "3030:TOTAL,209,,,,,,"
   "3030:IDLE,70,,,,,,"
   "3030:BUSY,139,,,,,,"
   "3030:OOS,0,,,,,,"
   /* RTRV-PM-TRKGRP */




다른 한종류는

M  0 RTRV
   "344-1:TERMID=T/1/21/1,REMARK=1:IS-NR,IDLE"
   "344-2:TERMID=T/1/21/2,REMARK=1:IS-NR,IDLE"
   "344-3:TERMID=T/1/21/3,REMARK=1:IS-NR,IDLE"
   "344-4:TERMID=T/1/21/4,REMARK=1:IS-NR,BUSY"
   "344-5:TERMID=T/1/21/5,REMARK=1:IS-NR,IDLE"
   /* RTRV-ISDN-BCHAN */


이런종류입니다..
아시는분들도 계시겠지만, 통신장비에서 채널 상태를 반환하는 로그입니다^^;;


텍스트파일로 이런게 수십개는 나오는데, 이걸 DB에 입력을 하고싶습니다.

첫번째 종류의 데이터는 "번호 : BUSY" 의 값을 추출하고싶고,
두번째 종류의 데이터에서는 각 번호에서 BUSY값을 더하고싶습니다. 가령 344채널은 총 1개의 busy가 있다- 고 말이죠..

이걸 가능하게 하려면 어떤 자료를 참고해야할까요?
엑셀이나 엑세스로 삽질하다보니 어떻게 문자열이 추출되긴하긴하는데.. 문제는 이걸 시간별로 계속 입력해야하기도하고,
엑셀로 추출하려면 손이 워낙 번거롭게 가는게 아니라서요..

SQL 언어로 문자열을 검색해서 같은행의 특정데이터를 반환하게 하고싶은데, 이것을 가능하게 하려면 어떠한 부분을 참고해야 할까요?
지도 부탁드립니다...

이 글에 대한 댓글이 총 2건 있습니다.

두개의 테이블을 만드시고

각각 포맷에 대해 분석해서 각각의 테이블에 입력하는 간단한 스크립트를 짜신 후?

두 테이블을 조인하거나 view를 만들어서 조회하시는 것이 어떨런지요?

SQL로 두 데이터를 필드로 받아서 분석해서 결과를 주는 것은 왠지 삽질이 될 것 같네요 ㅎㄷㄷ

신기배(소타)님이 2009-03-06 17:12에 작성한 댓글입니다.

로그 파일이 있고 이것을 데이터베이스로 저장하려는 작업의 바탕에는 일반적으로, 소스파일 - ETL - DW(DB) 같은 단계를 거치게 되어있습니다. 물론 이게 리포팅이나 분석업무같은 Data Warehousing업무에 특화된 프로세스 이지만,


말씀하신 로그파싱 & 로딩의 절차는 ETL 레이어에서 수도 없이 하는 작업이 됩니다. 그래서 ETL 제품에는 원하시는 기능이 대부분 포함되어 있지요. 물론 직접 코딩하셔도 되구요. 요점은 뭐냐하면, 일반적으로 소스데이터에서 특정 '가공'작업을 거쳐 데이터베이스에는 정제되고 구조화된 형식으로 저장하려면 중간에 그런 추출/정체/변환 작업을 설계/구현하시는게 좋다는 것입니다. 물론 중간결과물을 데이터베이스에 넣고 데이터베이스에서 가공 및 적재하는 경우도 요즘은 많습니다.(ELT)


1. 간단한 추출/정체 후, 로딩 작업이라면 직접 코드로 작성하시는 것을 권하고 싶습니다.

2. 절차가 복잡하고, 유지보수가 필요하거나 데이터 사이즈가 크고... 절차를 구조화하고 싶을 때는, ETL 제품을 사용하시는게 도움이 될겁니다.

- 상용제품은 인포메티카 파워센터, 데이터 스테이지, OWB, ODI ... 등이 있습니다. 비쌉니다 ㅡ.ㅡ;

3. 상용 ETL 엔진을 대체하기 위한 오픈소스 제품도 아주 훌륭합니다. Pentaho Data Integration(KETTLE), Talend open studio 등의 제품이 많이 쓰입니다. (제가 구현한 ETL 작업중에는 KETTLE로 하루에 10억건 이상의 로그도 일반 x86 엔트리 서버로 처리하는 경우도 있습니다.)

김영우님이 2009-03-09 11:57에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
7636최근 삽질 이야기 [8]
신기배
2009-03-08
10010
7635"쓰기 성능"이 훌륭한 / 괜찮은 DBMS제품 추천부탁드립니다. [1]
궁금이
2009-03-08
7466
7634bytea 를 blob 처럼 쓸 수 있을까요? [3]
송효진
2009-03-06
8445
7633텍스트 가공에 대하여.. [2]
성제호
2009-03-06
7741
7632선배님들께 여쭙겠습니다. 도와주세요. [1]
이진영
2009-03-05
7242
7631PostgreSQL JDBC Driver
궁금이
2009-03-05
7178
7630설치에 대한 초보 질문 입니다. [2]
초보
2009-03-05
8990
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다