일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Oracle RAC
- cygwin
- 오라클
- grid
- perl string
- mariaDB
- rac
- MySQL
- dba
- solaris network
- perl + 정규표현식
- sqlplus
- memory
- RHEL4
- SQL
- fdisk
- PERL
- Linux
- patch
- 연산자
- bash
- php5
- oracle install
- Network
- perl one-liner
- command & perl
- oracle
- solaris
- Unix
- prompt
- Today
- Total
목록Data Architecture (82)
DATA 전문가로 가는 길
선분 이력 테이블을 작업하다 보면 겹치는 부분에 대해서 병합하고, 겹치지 않는 구간에 대해서는 그대로 남겨두는 방식을 많이 하게 됩니다. 사실 선분 이력 테이블을 제대로 관리하려면 종료 시점과 시작 시점이 끊어지지 않게 상호 관리하는 것이 바람직하지만, 보편적으로 관리의 어려움이 있다 보니 여러 데이터를 쌓아 놓고 비지니스 로직(SQL)로 해결 하는 경우가 많을 것입니다. 1. 선분이력 데이터 보기 아래는 사용자 별로 이벤트 시작 일시와 이벤트 종료 일시에 대해서 표로 작성했습니다. 파란색 부분은 병합이 되지 않는 구간이고, 노란색 부분은 병합이 되는 부분입니다. 병합 그룹 번호를 부여한 이유는 이벤트 시작 일시과 이벤트 종료 일시를 연결하고자 하는 것입니다. 즉, 2013/08/12 오후 4:45:00..
문자열을 그룹별로 합쳐야 할 때 LISTAGG, XMLAGG를 주로 많이 사용 하거나 SYS_CONNECT_BY_PATH를 활용하기도 합니다. 하지만 4000 Byte 초과할 경우 "[Error] Execution (8: 1): ORA-01489: 문자열 연결의 결과가 너무 깁니다" 에러 메시지를 종종 보게 됩니다. 따라서 이번에는 4000 Byte 초과하는 문자열을 합쳐볼 수 있는지 확인 해보겠습니다. 오라클에서 제공하는 함수, 프로시저, 패키지로는 불가능하고, Object Type과 Table을 활용해서 CLOB 형태의 데이터를 합쳐보겠습니다. 1. 테스트 데이터 가공 DROP TABLE EST_DATA; CREATE TABLE EST_DATA (ROW_GRP_NO NUMBER(9),ROW_NO NU..
Python을 이용해서 주식 데이터를 가져올 경우 보통 JSON 포멧으로 된 것을 확인 할 수 있습니다. 따라서 JSON을 파싱해서 테이블에 저장할 수도 있지만, 이번에는 CONNECT 엔젠과 JSON 타입을 이용해서 빠르게 적재하는 방법을 확인 해보도록 하겠습니다. connect-json-table-type 가이드 바로기기 1. connect Engine 설치 # install MariaDB-connect-engine [root@localhost ~]# yum install MariaDB-connect-engine # configure SELinux to allow outgoing connection form mysqld to allow CONNECT to work [root@localhost ~]# ..
문자열에서 시작과 종료를 의미하는 값을 기준으로 파싱하는 방법입니다. MariaDB와 Mysql에서 사용하는 방법을 기준으로 되어있고, 해당 내용은 샘플 예제입니다. 자세한 내용은 아래 쿼리를 참고 하시면 됩니다. SET @STRING='FORMATING #[ESTENPARK_20160314 11:30 ]# 데이터를 비교해서 파싱된 결과만 나오게 합니다. '; SELECT SUBSTR(ORG_DATA, FIRST_STR_NO + 1, LAST_STR_NO - FIRST_STR_NO) AS PARSING_DATA ,A.* FROM (SELECT POSITION('#[' IN @STRING) AS FIRST_STR_NO, POSITION(']#' IN @STRING) AS LAST_STR_NO, @STRIN..
1. User Process란 무엇인가? 특정 SQL을 수행하여 원하는 내용을 추출하고 싶다면 데이터베이스에 접속해야 한다. 이때 SQLPLUS를 사용하여 접속하였다면 해당 SQLPLUS는 유저 프로세스를 생성하게 된다. 유저 프로세스는 해당 세션의 정보와 수행하고자 하는 SQL 정보를 데이터베이스 서버로 전달하게 된다.(토드, SQL Developer) 2. 현재 Oracle에 설정된 유저 프로세스 개수 확인 SQL> show parameter processes NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ aq_tm_processes integer 0 db_writer_proc..
1. 오라클 시작및 종료 개념 시작 단계 : 종료(shutdown) -> 노마운트(nomount) -> 마운트(mount) -> Open(시작) 종료 단계 : Open(시작) -> 마운트(mount) -> 노마운트(nomount) -> 종료(shutdown) 각 단계별 오라클 수행하는 작업 * 종료(shutdown) - 데이터베이스에 대한 엑세스를 수행할 수 없는 상태, DB를 중지한 상태입니다. 단, 데이터베이스를 오픈 하기위해서 SYS 유저로 SYSDBA, SYSOPER을 권한이 있어야 합니다. - 관련된 작업 : B&R에서 물리적인 백업을 보면 운영체제의 cp명령어를 이용하여 cold-backup을 하거나 되돌려 줄 수 있습니다.(파일을 대상) * 노마운트(nomount) - Instance - 파..
오라클 옵티마이저가 수행할 때 제약 설정에 따라서 인덱스 사용/비사용 할 수 있습니다. 우리가 말하는 오라클 옵티마이저 행동 중에서 영향을 미치는 요소 중에 하나 입니다. /* EST_OBJECT 테이블의 OBJECT_NAME 컬럼에 OBJECT_TYPE이 INDEX가 아닌 나머지는 NULL로 처리 합니다. */ CREATE TABLE EST_OBJECT AS SELECT A.OWNER ,CASE WHEN A.OBJECT_TYPE = 'INDEX' THEN A.OBJECT_NAME ELSE NULL END AS OBJECT_NAME FROM DBA_OBJECTS A ; /* 인덱스 생성 */ CREATE INDEX EST_OBJECT_IDX01 ON EST_OBJECT ( OBJECT_NAME ); /*..
오라클은 수 많은 락 종류가 있습니다. 그 중에서 Blocking Lock은 Lock 경합이 발생해 특정 세션의 작업을 진행하지 못하게 멈춰 선 경우를 의미하며, 커밋 또는 롤백으로 해소가 가능 합니다. 아래와 같은 예시는 FOR UPDATE구문을 예시로 Execute 단계에서 묵시적 형 변환에 의해서 Blocking Session이 발생 하게 되는데 그것을 확인 하겠습니다. 세션 1 (V$SESSION.SID : 142) /* 세션 파라미터를 조정하여 실행계획과 데이터 버퍼를 초기화 합니다. */ alter session set session_cached_cursors = 10; alter system flush shared_pool; alter system flush buffer_cache; /* 테..