반응형

오늘은 우정국 데이터를 활용하여 우편번호 DB를 생성하는 로직을 작성해보도록 하겠다.


아래 순서대로 한다면은 쉽게 우정국 데이터를 가져와서 DB를 생성할 수 있다.


 우정국 데이터 : http://www.epost.go.kr/search/zipcode/newAddressDown.jsp


크게 보면 도로명 우편번호와 지번 우편번호 두가지가 있다.


(1) 우선 도로명 우편번호를 모두다 다운로드 하여 압축을 풀도록 한다.


그럼 아래 그림과 같이 다운로드 완료됨을 확인 할 수 있다.



(2) 모든 데이터를 하나로 합치기 위해서 CYGWIN을 통해서 하나의 파일로 만든다.


$> cat *.zip > postno.txt



이제 위처럼 쉽게 데이터가 쌓여 있는 것을 확인할 수 있다.


위 데이터를 불용처리를 통해 불필요한 데이터만 grep으로 삭제해준 후에 mysql에 다음과 같이 입력하도록 한다.


(3) txt를 Mysql로 bulk insert 한다.

LOAD DATA local infile "p:/1/a.txt" INTO TABLE tb_doro fields terminated by '|' lines 

terminated by '\n' 

(post_no,serial_num,sido,sido_eng,gungu,gungu_eng,eup,eup_eng,road_code,road_name,

road_name_eng,base_stat,building_num_main,building_num_sub,buliding_mn_num,

delivery_name,building_name,dong_code,dong,ri,mt_stat,jibun_main_num,dong_serial_num,

jibun_sub_num);


물론 ER-D는 각자의 호기에 맞게 작성해 주어야 한다.



반응형

'DB > Maria & Mysql' 카테고리의 다른 글

MariaDB Character Set UTF8mb4 변경법  (0) 2018.12.04
mysqldump 특정 테이블 제외하기  (0) 2014.10.08
Maria DB 설치 후기  (3) 2013.12.04
MS-SQL 주석달기  (0) 2013.08.28
MYSQL Data Repository(저장소) 변경방법  (0) 2012.12.31
반응형

Maria DB 에 대해


최근 Mysql 이 미국의 Oracle 사로 넘어가면서, 개발자들 걱정이 이만저만이 아니다.


과연!!! 상업적 목적을 가진 기업에서 과연 Mysql 을 무료 라이센스인 GPL 라이센스로 할것인가? 이다.


아직까지는 무료이지만, 향후 유료화 정책을 펼칠 예정이라 하니, 성능좋은 무료 DB가 이젠 없어지느것이 아닌가 하는 생각이든다.


Maria DB는 Mysql의 초창기 개발을 했던 Mysql AB 출신들이 별도로 분가하여 만든 오픈소스DBMS이다.


기능상 차이점은 거의 없으면 99% 호환이 된다고 한다. 그래서, 한번 깔아보고 써본 후기를 적어보도록 하겠다.


Maria DB 설치 후기


(1) Maria DB 최신버젼인 5.5 버젼을 msi 파일로 다운받아 설치를 하니 이런 화면이 뜬다.

왠지.. 물개가 나오는게 마리아의 뜻이랑 다른것 같다. 보통 당나귀 종류를 maria라고 미국에서는 부른다고 하느뎅...


(2) 간단한 약관이 나온다 체크 후 넘어가도록 하자.


(3) DB를 만들것이냐, 아님 업그레이드 할것이냐 물어본다. 난 걍 db를 만들어 본다.


(4) 설치 경로를 물어보는것인데, 이것도 그냥 Path 하자.


(5) 최초 root 비번을 묻는다. 이건 1234로 대충하고 그 바로 밑에 root가 원격으로 접속할 수 있도록 체크하였다.

     보안이 필요하다면, 체크안하는게 좋다 콘솔로만 접속하는것이 가장 안전하기 때문이다.


(6) 이미 mysql 이 깔려있기 떄문에 포트를 3307로 바꾸어서 실행한다. 트랜잭션 buffer size는 default로 그냥둠.


(7) plug-in 정보가 새로나오면 연락받겠냐는 건데, 그냥 체크안하고 Next한다.


(8) 환경설정이 다되었으니 이제 Install을 클릭해 보자.


(9) 열심히 진행중..


(10) 열심히 진행중.. (64비트 내컴터 기준으로 설치하는데 약 50초 정도 걸린듯 하다)


(11) 드디어 설치 완료됨 ... !!!


(12) 콘솔로 한번 붙어 보았다. 실제 mysql 명령어가 잘 먹히는지 테스트 해보니 이건 마치 Mysql이란 다른게 없었다.

내부적인 엔진은 더 좋아졌다는 애기를 들었지만, 명령어의 차이가 없을줄이야~~~ 허걱

다만, 바뀐게 있다면 Prompt 정도만 바뀐것 같다.


반응형
반응형

SQLGATE에만 너무나도 익숙해져 있는 상태라

 

날 Query를 할 일이 별로 없다. 하지만. SQLGATE에서 지원하지 않는 주석 수정기능에 대해서 간략히 적어보자

 

우선급하니 대충적고 수정하겠음.

 

 

1. 주석추가 (add)

//테이블

EXEC   sp_addextendedproperty 'MS_Description', '테이블설명', 'user', dbo, 'table',테이블명
//컬럼들
EXEC   sp_addextendedproperty 'MS_Description', '컬럼설명', 'user', dbo, 'table', 테이블명, 'column', 컬럼명

 

2. 주석수정 (update)

//테이블

EXEC   sp_updateextendedproperty 'MS_Description', '테이블설명', 'user', dbo, 'table',테이블명

//컬럼들

EXEC   sp_updateextendedproperty 'MS_Description', '컬럼설명', 'user', dbo, 'table', 테이블명, 'column', 컬럼명

 

 

반응형
반응형

연구실에서 정부과제 용으로 특허데이터를 활용한 DB 구성 중 데이터가 꽉차서 더이상 저장할 수 없는 문제가 발생되었다.


이 문제를 해결하기 위해 인터넷을 여기저기 뒤졌지만, 확실한 해답이 나와있는 글들은 찾을 수 없었다.


결국, 별의별 짓을 다해보다가 드디어 해답을 찾게 되었다. Mysql에서 Data의 저장소를 변경하고자 하는 사람들이 있다면


나의 글을 참조하여 많은 도움이 되었으면 한다.


[1] Data Full 이 되었을때 발생되는 에러


 111215 22:30:15 [ERROR] /usr/sbin/mysqld: Disk is full writing './patent_trend/#sql-6aba_52c.MYD' (Errcode: 28). Waiting for someone to free space... (Expect up to 60 secs delay for server to continue after freeing disk space)


위와 같이 Disk Full Error가 발생하게 되면 현재 /var/lib/mysql 안의 데이터의 저장공간이 꽉차있다는 것이다.


[2] 개발환경


환경 구분

개발환경

 운영체제 (os)

 Ubuntu 11.04

 Mysql Version 

 5.1.54

 DB Engine

 My Isam, InnoDB 혼합형


[3] Mysql 저장소 변경 실시


(1) Mysql Daemon Stop


 user_id$ sudo /etc/init.d/mysql stop 


(2) 기존 Physical Repository Copy


 user_id$ sudo cp -Rp /var/lib/mysql /새로운 경로/mysql_repository


(3) Mysql 보안모듈 내 경로 수정(apparmor.d)


 user_id$ vi /etc/apparmor.d/usr.sbin.mysqld


(기존 Link 정보를 주석처리한다)

# /var/lib/mysql/ r,

# /var/lib/mysql/** rwk,


(새로운 경로를 추가한다)

/새로운경로/.mysqldb r,

/새로운경로/.mysqldb/** rwk,


(4) Mysql 설정파일 수정 (my.cnf)


 user_id$ sudo vi /etc/mysql/my.cnf


(Add)
datadir = /새로운경로/mysql_repository

(5) 보안모듈 및 Mysql 재시작


 user_id$ sudo /etc/init.d/apparmor restart

 user_id$ sudo /etc/init.d/mysql restart


이상이다. 위 예제는 Debian 계열의 Ubuntu Server에서 진행한 사항이기 떄문에 Pedora나 CentOS 와 같은


타 OS에서는 정상적으로 구동될지 의문이다. 하지만 Ubuntu에서는 100% 호환되기 떄문에 참고하길 바란다.

 

참조 사이트 :

http://www.ubuntu.or.kr/viewtopic.php?p=58100
http://www.ubuntu.or.kr/viewtopic.php?p=80681


                                                     - 2012.12.31 2012년의 마지막날 랑이씀 - 

반응형

'DB > Maria & Mysql' 카테고리의 다른 글

Maria DB 설치 후기  (3) 2013.12.04
MS-SQL 주석달기  (0) 2013.08.28
MYSQL 자주쓰는 명령어  (0) 2012.09.10
[ MYSQL PROCESS LIST 보기 ]  (0) 2011.12.27
PK & UI 무엇이 올바른가?  (0) 2011.01.31

+ Recent posts