-
Python - HTTP
Start: HTTP(HyperTextTransperProtocol) 개발자는 http:// 에 // 가 멋있어보여서 그냥 넣었다고 했다. 밀림의 왕자인 호랑이가 하는 거짓말은 아무리 간사한 여우라도 따라야 하는 법이다. 인터넷이라고 하는 멋진 곳에서 서버와 클라이이언트가 정보를 주고 받는 데에는 http, 프로토콜 등에 대한 배경 지식이 필요하다. python에서도 인터넷과 마찬가지로 built-in 으로 내장된 socket을 통해 데이터를 주고 받으면서 인터넷의 데이터를 쉽게 parse하고 이용할 수 있다. 사용될 application의 각 앞에 socket이 있는데, 이를 통해 네트워크간 통신이 가능하... Read More
-
Oracle - NLS와 Character Set
Situation Oracle8 Oracle11 Error SELECT to_date('07-JUN-16','DD-MON-RR') FROM DUAL ; 위 sql을 사용할 경우 아래와 같은 에러가 발생. Not a valid month : 지정한 월이 부족합니다 ‘DD-MON-RR’은 day, 축약된 문자 월, 2자리로 표현되는 년도수 이다. 그런데 왜 위 같은 에러가 보일까? 찾아보니 language에 대한 DB 셋팅에서 display 되는 문자와 실제 저장되는 데이터 문자가 다르게 설정되어 있을 경우 dd-mon-rr 에서 오류가 발생한다고 한다. mon 으로 축약된 문자를 읽어들이는... Read More
-
Airflow Documentation 요약
HOME 원칙: 사용적 역동성, 유연성, 확장성 파이썬 코드로 작성하여 스케줄 내용을 다양하게 사용할 수 있음. 나만의 오퍼레이터(operator)와 실행자(executor)를 쉽게 정의하고, 업무 환경의 추상화 레벨에 맞추어 라이브러리를 확장할 수 있다. 스크립트를 파라미터화하여 활용하려면 Jinja 템플릿 엔진을 이용하라. 메세지 큐를 이용해서 추상적인 작업자 수를 조정 지휘할 수 있다. spark streaming 처럼 데이터를 직접 옮기는 것으로 착각하기 쉽습니다. 하지만 실제로는 meta data를 넘기는 것이므로 데이터를 변화시키지 않음. Read More
-
AWS Comprehend - NOT_ENOUGH_ACCESS_TO_VPC
Error NOT_ENOUGH_ACCESS_TO_VPC: The provided data access role does not have ec2:DescribeSecurityGroups permission. Solution { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:DescribeInstances", "ec2:DescribeImages", "ec2:Desc... Read More
-
AWS Comprehend - INCORRECT_SETTINGS
Error INCORRECT_SETTINGS: One or more settings are incorrect. Please verify the VPC settings, S3 URIs, service limits, data access role and its permissions. Solutions Analysis jobs - Sentiment 로 잡을 생성하였다. 서비스 내 limits 확인 Read More
-
Jekyll Blog - can't find gem bundler
Error >> bundle exec jekyll serve --trace Traceback (most recent call last): 2: from /usr/bin/bundle:23:in `<main>' 1: from /Library/Ruby/Site/2.6.0/rubygems.rb:284:in `activate_bin_path' /Library/Ruby/Site/2.6.0/rubygems.rb:265:in `find_spec_for_exe': can't find gem bundler (>= 0.a) w Solutions rm Gemfile.lock ... Read More
-
Jekyll Blog - You don't have write permissions for the /Library/Ruby/.. directory
Error >> gem install bundler:2.2.31 ERROR: While executing gem ... (Gem::FilePermissionError) You don't have write permissions for the /Library/Ruby/Gems/2.6.0 directory. Solutions sudo gem install bundler:2.2.31 gem install bundler vim ~/.zshrc [[ -d ~/.rbenv ]] && export PATH=${HOME}/.rbenv/bin:${PATH} && eval... Read More
-
Jekyll Blog - Could not find 'bundler', GemNotFoundException
Error >> bundle exec jekyll serve --trace Traceback (most recent call last): 2: from /usr/bin/bundle:23:in `<main>' 1: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems.rb:302:in `activate_bin_path' /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems.rb:283:in `f... Read More
-
ML - 머신러닝 테스트를 위한 준비과정
Chapter 2. 머신러닝 처음부터 끝까지 환경 세팅하기 목표: AWS EC2에 주피터노트북을 설치하고 웹화면으로 접속하여 테스트환경을 구축함 1-1. EC2 system: ubuntu 20.04 Instance: t2.2xlarge/ 8 CPU / 32 RAM 1-2. python install sudo apt update sudo apt install software-properties-common sudo add-apt-repository ppa:deadsnakes/ppa sudo apt install python3.7 ubuntu 18.04 버전에서 install software-prop... Read More
-
ML - 이론/기술적 목차를 만들기 위한 정리
머신러닝(Machine Learning)은 컴퓨터로 하여금 데이터를 삽입하여 사용자가 원하는 출력물이 나오게 하는 전 과정을 일컫는다. 데이터라는 입력을 정밀히 하는 것이 전처리 과정이고, 출력물이 나오는 블랙박스를 모델링하거나 기계학습을 할 수 있다. 출력결과물은 예측 혹은 분류결과물이 될 수 있다. 입력, 블랙박스, 출력에 대하여 다양한 기술옵션과 경우의 수가 있기 때문에 머신러닝을 단 몇 가지의 기술로 다 말할 수는 없다. 쉽게 이해해보자면 머신러닝에 대한 입력, 블랙박스, 출력에 대한 경우를 이해해보는 것이다. 예를 들어, 다량의 데이터를 주고 해당 데이터에 대한 사례를 기반으로 새로운 데이터에 대한 판... Read More
-
Docker - 명령어 정리
컨테이너 docker Hub 에서 이미지 검색하기 docker search [검색어] 이미지 pull 받기 docker pull [image name]:[image tag] 이미지 목록화 docker images 구동중인 컨테이너의 리스트 반환 docker ps 구동/종료된 컨테이너의 모든 리스트 반환 docker ps -a 새 컨테이너에서 run 명령어 실행 docker run -i -t --rm -i: interactive -t: tty –name: 이름 지정, 없으면 자동 생성 -d: 백그라운드 모드로 실행 컨테이너 중지/ 시작/ 재시작 docker stop/ start/ re... Read More
-
EC2 - no space left on device
Error Code failed to register layer: Error processing tar file(exit status 1): write /usr/local/lib/python3.5/dist-packages/tensorflow/python/_pywrap_tensorflow_internal.so: no space left on device 도커를 pull 하는 도중에 에러가 났다. 용량이 부족했던 것 같다 Solution 현재 볼륨 상태를 확인했다 Elastic Volume 에서 Modify 기능으로 볼륨 사이즈를 100 G 올려서 수정했다. 증설한 볼륨을 파... Read More
-
Jekyll Blog - 'bind' address already in use eaddrinuse
Error 'bind' address already in use eaddrinuse 블로그 서버를 로컬로 실행하고 Ctrl + C 로 정상종료되지 않았을 때, 서버를 재실행하면 위 에러가 발생한다. Solution lsof -i TCP:4000 해당 포트로 연결되어 있는 프로세스를 리스트화하여 ruby 로 실행되고 있고, 확실하게 종료되지 않은 프로세스를 제대로 종료한다. kill -9 (PID) 재실행하면 서버가 잘 구동된다 bundle exec jekyll serve --trace 4. Error >> bundle exec jekyll serve --trace bundler: co... Read More
-
CodeCommit - Slack App Alarm
ci-cd 파이프라인을 사용하여 코드관리와 배포를 한 번에 처리하면서, 알람을 설정하여 여러 사람에게 공유될 수 있도록 설정합니다. Codecommit 에서 branch 상태변화에 대하여 알람하는 방법을 알아봅니다. AWS Chatbot 에서 APP으로 연결된 슬랙용 클라이언트를 구성합니다. 알람을 받을 슬랙에 로그인하면 권한 요청을 위한 액세스 질문이 나오고 이를 허용합니다. 슬랙 워크스페이스의 이름으로 챗봇에 클라이언트가 구성되고 알람을 받을 채널을 설정해줍니다. 코드커밋 서비스에서 사용하는 repository 하단에 setting - notification, Create notification... Read More
-
Lambda - lambda_function, index.handler error
Error Code **Unable to import module 'lambda_function': No module names lambda_function** Runtime.HandlerNotFound: idnex.handler is undefined or not exported Solutions Lambda Runtime settings Handler 를 Edit fileName.handlerName 으로 수정한다 Read More
-
Snowflake - How to Use
Web UI partner connect partner 사의 데이터를 연동하고자 할 때 사용 Help command line tool download community 연결 technical support role change 데이터 로드 정형/반정형 데이터의 압축률은 조금 다르고 json 은 10배 압축, csv는 4배 압축됨. 압축된 데이터를 기준으로 비용 청구 Create Warehouse Auto Suspend: 아무 activity가 없을 경우 해당 초/ 분 기다린 후, 자동으로 ... Read More
-
EMR - BigData 처리에 대하여
Architecture computing layer 와 storage layer 의 완벽한 분리. EMR, DataBrick, Snowflake 가 같은 아키텍처. Read More
-
Codebuild - AWS CI/CD 구축하기
내용 codepipeline을 구축하여 repository에 code를 형상관리, 빌드 시 아티팩트를 S3에 저장한다. 1. CodeCommit 소스코드를 이용, codecommit 에 repository를 생성한다. 소스코드를 형상관리하던 branch 에 push 가 발생하면 자동으로 codecommit repository 로 push 되도록 연결한다. 2. CodeBuild codebuild.json 빌드 프로젝트의 속성을 설정하는 파일이다. json 파일을 이용하여 CLI로 업데이트 가능하다. example code { "name": "... Read More
-
DW - Snowflake
Key capabilities 전통DB에서 처리하는 Relational DB, 관계형DB가 아니다. PK/FK (Primary Key/Foreign Key) 제약이 없습니다. No indexing / No performance tuninig / no partitioning / no physical storage design Architecture Cloud service layer 메타데이터를 관리, 자동성능최적화, 보안, 트랜잭션관리, 동시확장성 관리 query 의 que 부하에 따라 scale up/down 을 결정한다 snowflake 의 brai... Read More
-
DW - Snowflake vs Redshift
데이터베이스 성능 비교의 중점은 Computing, Storage, 기능, 가격 반구조데이터 처리 반구조화 데이터(semi-structured data); 중첩된 데이터 구조와 고정된 스키마가 없다는 점이 특징. 같은 클래스 내의 엔터티는 함께 그룹화되어도 속성이 다를 수 있으며, 속성의 순서도 중요하지 않다 flat 테이블, 스프레드시트 등의 구현이 가능한 구조화 데이터와 달리 반구조화 데이터는 중첩된 정보를 n 수준의 계층으로 다양하게 표현될 수 있다 snowflake 에서 지원되는 반구조 데이터 json, avro, ORC, Parquet, XML redsh... Read More
-
사용자에 맞는 DBMS 선택하기
역사 데이터베이스: 컴퓨터 시스템에 저장되는 구조화된 데이터의 조직적 모음을 데이터베이스, 또는 그 관리시스템인 데이터베이스 관리 시스템(DataBase Management System, DBMS)를 줄여서 데이터베이스라고 한다. 객체지향데이터베이스 -> NoSQL 데이터베이스 (비정형 데이터 처리에 대한 요구) -> 클라우드 데이터베이스 데이터베이스의 중요과제 대용량 데이터 수용, 처리, 저장 데이터 보안 보장 빠른 비즈니스 환경의 수요에 부응 여부 인프라 관리 및 유지 확장성 ... Read More
-
Redshift - Datawarehouse로서의 역할에 대해
요약 보안 종단 간 암호화: Secured with end-to-end encryption 성능 multiple caches optimized query 아키텍처 대규모 병렬처리: Massively parallel processing (MPP) 클러스터의 각 노드가 전체 데이터 세트의 일부를 로컬로 저장한다 수많은 독립 노드가 고속 네트워크로 연결 된 하나의 분산 메모리 컴퓨터 시스템 프로세서끼리 메모리,디스크를 공유하지 않고 특정 인터페이스로 메시지 통신한다 ... Read More
-
MySQL - Connect to Custom Driver
Situation: 서버 접속시 필요한 드라이버 환경을 인터넷으로 자동 다운로드하여 접속하게 되는 경우가 많다. 인터넷이 안 되는 환경일 때, jar 파일을 이용해서 손수 드라이버 셋팅을 한다. 환경: MySQL Server 8.0 JAR File: mysql-connector-java-8.0.17.jar, protobuf-java-3.6.1.jar Solution: 드라이버 필요파일을 C:Users > Username > AppData > Roaming > DBeaverData > drivers > maven > maven-central > mysq... Read More
-
MySQL - Communication Link Failure
Error Code: Connection timed out connect: Communications link failure The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server. Connection timed out: connect Solution: 연결하려는 서버 정보가 올바르게 기재되어있는지 다시 확인. db endpoint, pot, user, pw, connection driver settings .. 연결 서버에 pi... Read More
-
Redshift - Pause/Resume Schedule
Situation: 클러스터 운영 시간에 따라 자동 시작/중지 시간을 설정하고자 한다. Stop: 20시 Start: 6시 30분 Solution: redshift-pause: 0 19 ? * MON-FRI * redshift-resume: 30 21 ? * MON-FRI * Cron식으로 KST 에서 -9 하여 UTC 로 표현. Read More
-
S3 버킷 내 폴더 별 최근변경일자 확인
Situation: S3 버킷 내에 폴더를 조회하였을 때, 폴더 내 파일들의 최근변경일자에 따라서 폴더 전체의 마지막 변경일자를 확인하고 싶음. Solution: S3 는 전통적인 directory hierarchy를 따르지 않는 분산 구조. 버킷 별 생성일자, 각 오브젝트 각각의 최근변경일시는 기록되어도 폴더 구조 단위로 파일의 마지막 수정일자를 수집/기록하지 않음. 버킷 내 파일에 대한 Event pusblish로 SNS, SQS, Lambda 를 이용한 오브젝트 생성/삭제에 대한 API 설정을 해야함. Reference: https://stackoverflow.com/questions/3283042... Read More
-
No route to any external sources dextected in Route Table for Subnet
Situation: AWS EMR을 띄우는 도중 에러 코드 발생하여 네트워크 세팅 전반을 다시 살펴봄 Error Code: No route to any external sources detected in Route Table for Subnet 오류로 종료 상태 The VPC/subnet configuration was invalid: No route to any external sources detected in Route Table for Subnet: subnet-xxxxxxx for VPC: vpc-xxxxxxx Solution: 라우팅 테이블에 인터넷 게이트웨이 연결 라우팅 편집에서 대상을 인터넷 게... Read More
-
AWS EMR - Provisioning
Error Code: The requested instance type c4.large is not supported in the requested availability zone. Learn more at https://docs.aws.amazon.com/console/elasticmapreduce/ERROR_noinstancetype Solution: 가용영역을 ap-northeast-2a 로 지정한 subnet 생성 후 재연결 성공함 Read More
-
The provided token has expired
Error Code: raise error_class(parsed_response, operation_name) botocore.exceptions.ClientError: An error occurred (ExpiredToken) when calling the ListObjects operation: The provided token has expired. Situation: 역할전환을 위해 사용한 assume_role 은 계정에 1시간에 해당하는 temporary token을 발급한다. 때문에 1시간이 넘는 시간 동안 boto3로 연결하여 스크립트가 실행될 경우, 에러 발생. Reference: https:... Read More