2016년 11월 9일 수요일

RDD - Resilient Distributed Dataset

rdd (Resilient Distributed Dataset)는 사전 그대로 탄력적인 분산 데이터 집합을 말한다. 생성 후 변경이 불가능한 데이터 집합이며, 이에 따라 단순한 구조에서 오는 성능적인 이점을 가지고 있다. rdd 에서는 map, reduce, filter 와 같은 변경 ( transformation ) 요소와 collect, count와 같은 실행 ( action ) 요소를 가진다. 실제 수행은 action 에서 발생한다. 분산 형태의 파일을 로딩 할 때, - sqlContext.sql(“<QEURY>”),...

HIVE 질의 하기 on SPARK

SPARK 에서 HIVE 질의 하는 과정이다. SPARK CONTEXT 포인트를 얻는다. from pyspark import SparkContext, SparkConf conf = SparkConf().setAppName(‘HIVE SQL TEST01’) sc = SparkContext(conf=conf) HIVE CONTEXT 포인트를 얻는다. from pyspark.sql import HiveContext sqlContext = HiveContext(sc) HIVE SQL 질의를...

2016년 11월 7일 월요일

sqlite3 to hdfs with hive

sqlite3 에서 사용하던 이력 데이터의 용량이 너무 커져서 하둡 (hive)으로 옮기는 과정을 다룬다. hive 저장 포맷에 대한 간략한 비교도 포함한다. 목차 sqlite3 to hdfs ( hadoop file system ) hdfs to hive performance as hive format sqlite3 에서 hdfs 로 파일 저장하기 sqlite3 -csv big.db “select * from big;” | hadoop fs -put - /user/me/big.csv ** 결과를...

2016년 11월 3일 목요일

구글 애널리틱스 전자상거래 - 관련 상품 가져오기

GA 전자상거래 기능인 "관련 상품" 기능을 알아 본다. 아마존 성공 사례인 상품 기반 추천의 “같이 구매한 상품들”과 유사한 기능이다. 목차 GA에서 기능 활성화 API로 데이터 가져오기 UI 조회 도구 파이썬 도구 샘플 데이터 1. GA에서 기능 활성화 하기 “관리” -> “보기” -> “전자상거래  설정” 의 관련 상품을 체크한다. 2. API 로 데이터 가져오기 가. UI 조회 도구로 확인 및 가져오기 UI 조회 도구 <- 클릭 https://ga-dev-tools.appspot.com/query-explorer/? dimensions=ga:queryProductId,ga:relatedProductId &metrics=ga:correlationScore,ga:queryProductQuantity,ga:relatedProductQuantity &filters=ga:queryProductId==A ** GA...

Linux Repository 만들기

hortonworks hdp 2.5 repository 가 느린 이유로 로컬  repository가 필요했다. ambari-server 에서 cluster 구성 시에 참조하는 repository를 만드는 방법이다. ** 여기서는, 서버를 <hdp_repo> 라 이름한다. 가. repository 를 생성 도구들 설치한다. yum -y install yum-utils createrepo 나. repository 를 위한 데이터를 다운 받는다. reposync -r HDP-2.5 reposync -r Updates-ambari-2.4.1.0 reposync -r HDP-UTILS-1.1.0.21 ** 쉽게...

2016년 11월 2일 수요일

hortonworks 하둡 구성하기

호튼에서는 가볍게 기능적인 부분을 확인 할 수 있는 sandbox와 실제 하둡 구성을 도와주고 관리하는 ambari 기반을 제공한다. 두 가지를 구성 할 때, 주의 할 내용들을 요약한다. HDP 2.5 on hortonworks sandbox HDP 2.5 with Ambari 2.4 HDP 2.5 on hortonworks sandbox sandbox는 기본 8GB 메모리를 요구한다. hue는 기본 패키지에 없어서 추가로 설치했다. ** hue 접속 에러 발생 시에 대응 방안이다. 가....

2016년 10월 22일 토요일

클라우드 데이터 저장소 CLI 사용하기

클라우드에 데이터를 담아 두고, 필요할 때 간편하게 사용하는 시대이다. 다양한 공간 - 환경 - 언어에서 쉽게 접근 할 수 있는 장점을 가지고 있다. 맥이나 리눅스 환경에 익숙한 사용자들은 CLI가 주는 장점을 잘 알고 있을 것이다. 본문은 주요 데이터 저장소의 CLI 연결 정보(방법)를 요약한다. 목차 aws s3 google drive google cloud storage 아마존 웹 서비스 (AWS: amazon web service) 의 S3 # CLI 설치 : https://aws.amazon.com/ko/cli/ pip...

spark에서 aws s3 접근하기

spark standalone 모드에서 s3 접근 테스트를 시도했다. 2016년 10월 21일 기준, 스파크 홈페이지에서 hadoop 2.4 빌드 버전 가져온다. spark-2.0.1-bin-hadoop2.4 ** 하둡 2.7 버전에서는 다양한 에러가 발생했다. s3 접근을 위한 환경 설정을 한다.  * conf/spark-defaults.conf 에서 변경하는 방법 spark.hadoop.fs.s3n.awsAccessKeyId      <aws_accesss_key> spark.hadoop.fs.s3n.awsSecretAccessKey...

2016년 10월 18일 화요일

MacOS에서 Spark 테스트 환경 구성

맥북에서 스파크 환경 구성 방법이다. 테스트를 위해서 마스터 노드 하나를 띄위 사용하는 기본 설정이다. IntelliJ 도구에서 파이썬/스칼라 환경 설정을 추가로 다룬다. 목록 스파크 구성 도구 구성 수행 예제 코드 스파크 구성 가. 미리 빌드된 맥용 스파크 다운로드 나. 압축 풀고 환경 설정 export SPARK_HOME=<스파크 경로> export PATH=$SPARK_HOME/bin:$PATH export PYSPARK_PYTHON=python3 export...

2016년 10월 12일 수요일

맥OS <-> 오라클 접속

MacOS에서 오라클(Oracle)에 접속하는 방법을 소개한다. 파이썬 cx_Oracle 인터페이스를 통한 연결 SQLPLUS 도구를 통한 연결 먼저 파이썬 cx_Oracle 인터페이스를 통한 접근 방법이다. 오라클에서 다음 두 가지 파일을 다운 받아서 압축을 푼다. unzip instantclient-basic-macos.x64-11.2.0.4.0.zip unzip instantclient-sdk-macos.x64-11.2.0.4.0.zip 압축을 풀면 다음 디랙토리가 생성된다. instantclient_11_2 환경 변수를 등록한다. export ORACLE_HOME=$(pwd)/instantclient_11_2 export...

2016년 10월 7일 금요일

도로명 주소 데이터 인코딩 변환

행정자치부에서 제공하는 도로명 주소가 euc-kr로 인코딩 되어 있다. 원만한 작업을 위해서 utf-8로 인코딩 하는 방법이다. iconv -f euc-kr -t utf-8 <file-name> ** iconv The  iconv  program converts text from one encoding to another encoding. 도로명 주소DB 커버사진,...

2016년 10월 6일 목요일

오라클 procedure 수행 로그 남기기 - 예제 코드

오라클(oracle) 환경에서 프로시저(procedure) 작업 수행 시 로그 남기는 코드이다. 로그를 남기기 위한 procedure와 수행 코드를 넣기 위한 procedure 폼 두 가지이다. 사용 방법은 다음과 같다. 작업 수행 procedure의 — start script 와 — end script 사이에 원하는 수행 스크립트를 작성한다. 작업 수행 procedure를 이름만 바꾸고 복제해서 사용하면 로그에서 자동으로 구분할 수 있도록 했다. 작업 수행 procedure 예제 코드, CREATE OR REPLACE PROCEDURE job_proc01 IS    err_code  ...

2016년 9월 13일 화요일

우분투 초기 설정

서랍에 잠자던 노트북의 다양한 활용을 위해서 우분투를 설치했다. 공인 인증을 위해서 가상박스로 윈도우를 설치하고, 업무를 위해서 크롬 브라우저와 hwp 뷰어를 설치했다. 처음 우분투를 설치하면서 필요했던 내용 들을 요약한다. 1. 한글 자판 사용하기 Ubuntu 16.04에서 키보드 입력기는 기본적으로 fcitx로 설정되어 있다. 따라서 키보드 자판에서 입력 소스에 Hangul(Fcitx)를 선택한다. 자판 전환 기본은 super + space 조합이다. ( super는 윈도우 키였다. ) 2. 데미안 패키지 관리 리눅스를 사용한다는 것은 패키지를 잘 관리하는 것이다. 사용 예제로 hwpviewer를 설치하는...

2016년 9월 9일 금요일

주요 SNS 공유 버튼 정리

주요 SNS 공유 버튼 가이드 모음이다. 개발 페이지에 대한 링크와 간략한 특징을 서술한다. 카카오 스토리  접근을 위한 앱을 만들고, 앱 키를 발급 받아 사용한다. url, text 정보를 지정 할 수 있다.
 image 정보는 url 페이지의 open graph protocol을 기반으로 가져온다. 주의: url 페이지에 구성된 og 정의를 사용한다. 트위터  페이지 정보를 기본으로 가지고 온다. 주의: image 정보는 노출 할 수 없다. 페이스북  접근을 위한 앱을 만들고, 앱 키를 발급 받아 사용한다. 기본 공유 버튼을 제공하고 있으나, 원하는 아이콘을 사용하기 위해서는...

2016년 8월 31일 수요일

인구 통계 자료를 볼 수 있는 곳

세계 인구 조사 : 미국 인구 조사국에서 제공하는 세계 인구 통계 자료이다. 고령화 세계 보고서 : 고령화 사회로 가고 있는 지구촌에 대한 2015년 보고서이다. 세계 인구 통계 요약 : 세계 인구 통계를 매우 깔끔하게 보여 준다. ** www.census.gov 미국 인구조사국 (United States Census Bureau) 주변국 자료에서 눈에 띄는 부분들을 요약해 본다. 중국 vs 인도 중국과 인도의 인구는 비슷하지만, 증가세는 인도가 가파르다. 평균 연령은 중국(37), 인도(27)이고 도시 인구 비율은 중국(58%), 인도(32%)이다. 중년에 들어선 중국을 젊은 인도가 빠르게 뒷따르고 있다. 일본 평균...

2016년 8월 6일 토요일

플라스크(flask) 정적 페이지 및 로그 핸들 연결

플라스크에서 정적인 페이지를 연결하는 것과 로그 핸들을 추가하는 방법을 요약한다. 1. 정적인 페이지 정적인 파일들로 구성된 웹 페이지로 연결하는 방법이다. 경로 정보를 정적인 영역(static)으로 던진다. 2. 로그 핸들 연결 파이썬 로깅의 다양한 핸들 정의 후 플라스크 로거에 연결한다. 파일에 로그를 남길때 유용하다. 샘플 코드 분석를 통해서 알아본다. import logging 
from flask import Flask

 app = Flask(__name__)

 @app.route('/')
 def static_pages(path): 
 app.logger.error(path)
 return...

2016년 7월 27일 수요일

구글 애널리틱스 스팸 막기

자체 로봇 제거에도 불구하고, 다수의 스팸 패킷이 들어온다. 이를 막기 위한 좋은 방법을 소개한다. 스팸 막는 방법 두 가지 (필터 활용) 1. 포함하는 방법 다수의 스팸 사이트들이 호스트 이름과 화면 해상도가 (not set)으로 표기된다. 필터 시점에 호스트 이름의 경우 무효값으로 인지하고, 화면 해상도는 (not set)으로 인지한다. So, 명확한 호스트 이름을 포함하는 패킷과 화면 해상도가 (not set)인 패킷을 제외하는 조건으로 필터한다. ** 무효값은 필터를 무시한다. 2. 제외하는 방법 스팸으로 판단되는 캠페인 소스에 대해서 정규식 패턴을 찾아서 제외한다. 한줄에 들어가는 정규식 패턴의 글자수가...

2016년 7월 22일 금요일

Firebase 앱분석 설치 가이드

구글에서 2014년 인수한 백엔드 서비스인 Firebase의 앱분석 설치 과정을 다룬다. 크게 보면 아래 두 가지 내용이다. 가. iOS 기반에서 firebase analytics 를 사용하는 방법 나. 구글 태그 매니저 연동 방법 먼저 iOS 기반에서 firebase analytics를 사용하는 방법이다. 맥에서 CocoaPods를 설치한다. 아마도 에러가 발생한다. ERROR:  Error installing cocoapods: activesupport requires Ruby version >= 2.2.2. 구글 커뮤니티는 다음 차선책을 제시한다. sudo gem install activesupport...

2016년 7월 21일 목요일

블로거에 구글 태그 매니저 스니펫 추가

구글 블로거(Blogger)에 GTM 스니펫을 삽입할때 이슈와 해결 방안을 기록한다. 스니펫 코드 입력 후 저장하면 다음 알람을 접한다. XML을 구문분석하는 중 오류 발생(1272행, 43열): The reference to entity "l" must end with the ';' delimiter. ** XML에서 <, >, &는 tag와 entity를 표시를 위한 예약문자임으로 아래와 같이 변경한다. < :-> &lt; > :-> &gt; & :-> &amp; 스니펫 코드를 구문 오류를 해결하기 위해서...

2016년 7월 20일 수요일

구글 애드워즈 인증 요약 노트

구글 애드워즈 인증을 준비하면서 요약한 내용들이다. 1년 후를 기약하며 흔적을 남긴다. 타게팅 방법 1. 문맥 타겟팅     1. 키워드 및 주제를 선택한다.     2. 검색 유형         1. 키워드 문맥 일치             1. 광고 게재위치가 키워드와 문맥적으로 관련이 있다.         2. 확장 키워드 일치             1. 광고 게재위치가 키워드 및...

구글 태그 매니저의 맞춤 자바스크립트 활용 예제

구글 태그 매니저에서 {{출생년도}}라 정의한 데이터 레이어 변수를 전달 받는다고 가정하자. 전달 받은 값을 가공할 필요가 있을때, 맞춤 자바스크립트를 통해서 간편하게 적용 할 수 있다. 다음은 {{출생년도}} 변수를 {{연령대}}변수로 가공하는 맞춤 자바스크립트 코드이다. : {{출생년도}}를 '19880917'를 받았을때, {{연령대}}가 '20대'가 된다. <<EOF function (){     // 태어난 년도를 기준으로, 연령대를 계산한다.     var paramYear={{출생년도}};     if ( paramYear === '' ||...

2016년 7월 14일 목요일

구글 애널리틱스 유용한 기능 요약

구글 애널리틱스 사용 시, 자주 사용하는 유용한 기능들을 요약한다. 컨텐츠 그룹 컨텐츠 그룹의 규칙 그룹들을 페이지 URL에 기반한 패턴을 정의한다. (2016년 7월 1일 기준, 무료 5개 제공) ** 컨텐츠 그룹의 규칙 그룹 단위로 행동 흐름(방문형태)를 한눈에 볼 수 있다. 측정 기준 hit, 세션, 사용자, 제품 범위의 측정 기준을 제공한다. (2016년 7월 1일 기준, 무료 20개 제공) ** 성별, 연령, 로그인 여부 등의 확장 기준들을 손쉽게 추가 할 수 있다. 채널 그룹 기본 채널 이외에 맞춤 채널을 만들 수 있다. 사이트로 유입 될때, 식별 가능한 정보의 패턴으로 정의 한다. ** 특정 유입 경로(채널)를...

2016년 7월 4일 월요일

구글 애널리틱스에서 알 수 없는 값 요약

구글 애널리틱스에서 알 수 없는 값에 대한 처리를 어떻게 하는지 정리한다. 먼저, 실시간 이벤트를 통해서 리포트에 보여지는 내용을 본다.  ** 이벤트 라벨에 empty string (‘’), null, undefined 를 입력한 결과이다. empty string과 undefined는 (not set)으로 보여진다. null은 null이라는 값으로 보인다. 위 결과에서, 이벤트 액션과 같이 리포팅 될 때는 알 수 없는 값을 표현할 때 쓰인다. 이벤트 라벨 스스로를 측정 기준으로...

2016년 7월 1일 금요일

구글 애널리틱스 맞춤 보고서 용어 정리

맞춤 보고서를 작성하다 보면 용어에 대한 명확한 정의가 중요합니다. 본문은 매번 혼동되는 용어를 정리하는 것에 목적을 둡니다. 아래 공식 가이드를 참조해서 핵심만 요약 합니다. 맞춤 보고서 공식 가이드 세션 수 조회 유형에 관계없이 세션의 첫 번째 조회와 함께 누적됩니다. 세션은 30분(디폴트)의 시간이 경과 하거나, 하루가 지나는 시점에는 종료된 것으로 간주합니다. 어떤 캠페인을 통해 사이트에 들어 왔다가 떠난 후 다른 캠페인을 통해서 다시 방문하면 새로운 세션으로 간주합니다. 방문자 수 세션의 첫 번째 페이지뷰와 함께 누적됩니다. 사용자 기간 설정에 따라 집계가 변합니다. 활성 사용자 특정 날짜를 기준으로...

2016년 6월 15일 수요일

판다스에서 구글 애널리틱스 API 연동

파이썬 라이브러리인 판다스의 구글 애널리틱스 API 사용 방법이다. 참고에 링크한 “판다스 구글 애널리틱스 연동” 가이드로 부족한 부분에 집중한다. 크게 보면, 1. 구글 개발 콘솔에서 접속 앱을 만든다. 2. 접속 앱에서 다운로드한 JSON 파일을 판다스 라이브러리 IO 폴더에 위치 시킨다. 3. 잘 활용한다. 테스트된 환경은 다음과 같다. * 코드 호환성 문제로 파이썬 2.7에서 수행 했다. * 판다스는 최신 버전인  0.18.1을 사용했다. *...

2016년 6월 9일 목요일

맥북에서 80 포트 포워딩

맥에서 주요 포트들은 보안으로 잠겨 있어서, 필요 시에 다음과 같이 패킷 포워딩 기법을 사용한다. 패킷 포워딩을 위해서 pfctl 도구 사용 예제이다. 명세한 포트 포워딩 적용하기 echo " rdr pass inet proto tcp from any to any port 80 -> 127.0.0.1 port 5000 " | sudo pfctl -ef - ** 웹 접근의 기본 포트인 80 포트로 들어오는 모든(any) 패킷을 로컬의 5000번 포트로 던진다. 모든 포트 포워딩 제거하기 sudo pfctl -F all -f /etc/pf.conf 포트 포워딩 룰 확인 하기 sudo pfctl -s nat 정적으로...

2016년 6월 3일 금요일

Pycharm에서 Golang 사용 환경 구성하기

파이참(PyCharm) 사용자가 맥에서 Go 언어에 대한 환경 구성하는 과정이다. 설치 홈페이지 주소 : https://golang.org 가. Golang을 다운로드 및 설치 한다.  => 기본 경로은 /usr/local/go 이다.  => 도구 설정 시 사용 될 “Go SDK 경로”가 된다. 도구 설정 ( Pycharm ) 가. “설정” / “플러그 인” 에서 “Go”를 추가한다.  => 재 시작 하면 “Go” 플러그인 관련 UI가 생성된다. 나. “설정”에서 “Go SDK 경로”를 설정 한다.  => Go가 있는 위치를 지정하면, “버전” 정보가...

2016년 5월 31일 화요일

구글 태그 매니저

구글의 태그 매니저 사용 하면서 정리한 내용 입니다. 주요 기능 실시간 디버깅이 가능한 미리보기 도구를 제공한다. 변경 사항에 대한 체계적인 버전 관리가 가능하다. 다양한 분석 제품군을 기본 지원하고, 사용자 맞춤 태그 또한 지원한다. 구글 계정 단위 협업 기능을 제공한다. 권장 사항 페이지에서 발생되는 변수들은 가능하다면 데이터 레이어(dataLayer)를 이용한다. 전역변수나 DOM의 경우 유지보수 하면서 변경 가능성이 높다. 스니펫(추적 코드)는 호환성을 높이기 위해서  <BODY>...

2016년 5월 27일 금요일

딥러닝 메모

딥러닝을 이해하기 위해 참조한 내용들을 정리한다. 역사  사람의 신경망을 본 뜬 인공신경망 기술이 핫 이슈가 된다. XOR 문제에서 좌절을 안긴다. (미래에서 온 인류 저항군인) 민스키 교수의 두 마디에 의해 암흑기로 들어간다. * 다계층 퍼셉트론 (MLP)를 사용하면 풀수 있다. * 지구상에 누구도 MLP 노드를 학습시킬 좋은 방법을 찾지 못했다. 폴의 오차역전파법 논문에서 MLP의 노드 학습 방법을 찾는다. 크게 관심을 끌지 못한다. 힌튼 교수에 의해서 재발견 되고...

2016년 4월 29일 금요일

맥북에서 Bootable CentOS USB 만들기

맥북에서 부팅되는 CentOS USB 드라이브 만드는 방법이다. 1. CentOS 홈페이지에서 원하는 IOS 이미지를 내려 받는다.  - https://www.centos.org/download/ 2. hdiutil을 이용해서 UDRW 형태 이미지로 변형한다. # hdiutil convert -format UDRW -o temporary.img CentOS-xxxx.iso ** UDRW - UDIF read/write image 3 dd를 통해서 이미지를 굽는다. 설치할 디스크 장치명 확인 # diskutier list 대상 디스크 언마운트 하기 # diskutil unmountDisk /dev/diskX 2번...

2016년 4월 1일 금요일

이미지에 자바스크립트 코드 삽입하기

BMP 이미지에 자바스크립트 코드를 삽입하는 과정이다. 1. 테스트로 사용할 이미지를 구한다. (sample.bmp) 2. BMP 포맷의 특징을 활용해서 자바스크립트 코드를 삽입한다. 3. HTML에서 이미지와 자바스크립트의 소스로 변경된 이미지를 가져온다. 구현된 파이썬 코드를 통해서 알아보자. # 구글 이미지 검색에서 찾은 BMP 이미지 파일을 sample.bmp로 명명하였다. original_file = "sample.bmp" cracked_file = "cracked.bmp" #...

2016년 3월 31일 목요일

구글 애널리틱스 플랫폼 활용

구글 애널리틱스 플랫폼을 탐색하는 데모와 도구들을 제공하는 페이지이다. https://ga-dev-tools.appspot.com 다음과 같이 흥미로운 기능들을 가이드 하고 있다. GA 측정기준 및 측정항목을 탐색할 수 있다. 질의 도구를 통해서 통계 데이터를 조회할 수 있다.  구글 문서(스프레드시트)에서 주기적으로 갱신 가능한 리포트를 생성할 수 있다. 강력한 내장 API들을 활용하여 손쉽게 사용자 솔루션을 만들 수 잇다. 사이트 외부에도 삽입할 수 있는 추적코드...

2016년 3월 18일 금요일

행렬 인수분해 3가지

인수분해는 노이즈 제거 및 데이터 압축 기법으로 유용하게 활용된다. 근래에는 기계학습 붐과 함께 패턴인식 분야에서도 유용하게 쓰인다. 본문은 일반적으로 사용하는 인수분해 기법(PCA, SVD, NMF)를 활용한 예제를 다룬다. 먼저 실험에 사용할 이미지 20개다.  위 이미지 중 하나는 45x40 이고, 일렬로 나열하면 1x1800 이 된다. 20개의 이미지를 합치면 다음과 같이 20x1800의 이미지로 만들수 있다. (20개 이미지로는 육안 상의 의미 전달이 약해서 출력을 5번을...

tensorflow 접근 퀵가이드

본문은 알파고로 유명세를 타고있는 tensorflow에 대한 접근 과정에 필요한 정보들을 요약한다. tensorflow를 편하게 사용하기 위해서 만들어진(wrapped) skflow를 통해서 tensorflow를 다루는 간략한 예제와 기존의 유명한 학습 기법과 성능을 비교해 본다. 1. skflow 소개 및 DNN 사용 예제 skflow는 파이썬의 대표적인 기계학습 라이브러리인 scikit-learn과 구글에서 공개한 딥러닝 도구 tensorflow를 조합한 라이브러리다. 익숙한 scikit-learn의...

주요 알고리즘 정리

자주 사용하는 알고리즘에 대한 정의 및 개인적인 포인트를 메모한다. 심층 신경망(Deep Neural Network, DNN) 입력 계층(input layer)과 출력 계층(output layer) 사이에 복수개의 은닉 계층(hidden layer)들로 이뤄진 인공신경망(Artificial Neural Network, ANN)이다.[17][18] 심층 신경망은 일반적인 인공신경망과 마찬가지로 복잡한 비선형 관계(non-linear relationship)들을 모델링할 수 있다. 예를 들어,...

2016년 3월 14일 월요일

파이썬 2.x 한글 에러

본문은 파이썬 버전 3.5로 작성된 코드를 2.7로 변형 할때, 간혹 생겼던 한글 문제를 해소하는 방법을 다룬다. 1. 코드에 한글이 들어 갔을 때 발생하는 문법 에러 에러 코드: SyntaxError: Non-ASCII character … 해결 방안: 스크립트 첫번째 줄에 사용할 코드 타입을 명시해 준다. #-*- coding: utf-8 -*- 2. 변수에 한글이 들어 갔을 때 간혹 발생하는 에러 에러코드: UnicodeDecodeError: 'ascii' codec can't decode byte … 해결 방안: 스크립트 서두에 기본 인코딩을 지정한다. import sys reload(sys) sys.setdefaultencoding('utf-8') ** 데이터에...

2016년 3월 10일 목요일

테이블 데이터 샘플링 방법

테이블에서 샘플을 추출하는 두 가지 쿼리를 다룬다. 가. ORDER BY random() LIMIT n 정확한 샘플 개수를 지정할 수 있다. 정렬(sort) 수행이 발생한다. 예상 비용 cook=> explain SELECT * FROM sample_1000 ORDER BY random() LIMIT 10;                                  QUERY PLAN            ...

2016년 3월 4일 금요일

파이썬 로그 관리하기

파이썬에서 기본적으로 제공하는 로깅(logging) 라이브러리의 퀵 가이드이다. 로그 이름 및 레벨을 정의 한다. import logging # create logger logger = logging.getLogger('simple_example') logger.setLevel(logging.DEBUG) 핸들러를 통해서 포맷을 명시한다. # create console handler and set level to debug ch = logging.StreamHandler() ch.setLevel(logging.DEBUG) #...

MySQL 참조 가이드

본문은 MySQL 참조를 위한 메모이다. 도움말 보기 help 아이템(item) 보기 help <item> ** 포그리(postgresql)에서는  pg_hba.conf 파일에서 하는 접근 제어를 메타 테이블을 통해서 설정한다. schema와 database를 혼용하여 사용한다. 테이블 명세서 뽑기 SELECT     table_name '테이블이름',     ordinal_position '속성순번',     column_name '속성명',     data_type '데이터타입',     column_type...

2016년 2월 29일 월요일

웹분석 - 방문자 식별 방법

웹분석에서 방문자를 정의 한다고 할때, IP나 쿠키를 생각할 수 있다. IP 방식은 구현이 간편하지만, IP의 유동성이나 NAT 환경에서 대표성으로 인해서 세밀하지 못하다. 일반적으로는 브라우저 단위로 세분화 가능한 쿠키 방식을 사용한다. 본문에서는 방문자 식별이 쓰이는 사례와 방법을 예시한다. 먼저 웹분석의 기본 요소를 통해서 방문자 식별 사례를 본다. 방문 최초 이벤트 발생을 시점으로 방문이 일어나고 특정 조건 하에서 방문은 유지 된다. IDLE이 특정 시간이 지나면 방문이 끊어진...