[AWS] RDS(MYSQL)에서 DMS를 사용하여 Databricks로 Migration하기
·
데이터 엔지니어링/AWS
데이터의 변경된 내용을 자동으로 식별하기 위해서 Change Data Capture(CDC)의 기술을 접목할 것이다. 데이터 브릭스로 CDC를 진행할때는 어떤 방식으로 이루어지는 알아보자. 사용한 서비스 : AWS의 DMS, AWS RDS(MYSQL),Databricks(Spark) 1. RDS 생성 DB는 Mysql을 생성해서 사용했다. 비용효율적으로 EC2에 mysql을 설치해서 사용해도 되지만, RDS를 사용해본 적이 없기에, CDC를 통해서 겸사겸사 진행했다. 또한 프리티어를 사용해서 Amazon RDS 단일 AZ(개발자용) db.t2 micro 인스턴스는 750시간 무료로 사용할 수 있다고 하니 클라우드 환경에서 DB를 사용할때 생성하면 좋을 듯 싶다. 주의 : 버스터블 클래스인 t로 선택을 ..
[Spark/Databricks] Change data capture (CDC) Option
·
데이터 엔지니어링
CDC란? 데이터 베이스 즉 DB에 대한 변경 내용을 식별하여 데이터에서 일어난 변경된 사실을 자동화로 적용해주는 기술이자 실시간으로 데이터 웨어하우스 및 기타 데이터 저장소에서 일어나는 데이터에 대해서 변경 부분을 캡쳐하는 식을 이야기한다. Databricks에서 Auto Loader를 사용 Databricks와 S3 Mount 1. Iam에 s3 mount 권한 부여 { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::migration" ] }, { "Effect": "Allow", "Action": [ "s3:PutObject", "s..
[Algorithm] 인프런 자릿수의 합
·
코딩테스트/Python
문제 출처N개의 자연수가 입력되면 각 자연수의 자릿수의 합을 구하고, 그 합이 최대인 자연수를 출력하는 프로그램을 작성하세요. 각 자연수의 자릿수의 합을 구하는 함수를 def digit_sum(x)를 꼭 작성해서 프로그래밍 하세요풀이코드n = int(input())a = list(map(int, input().split()))def digit_sum(x): sum = 0 while x>0: sum += x%10 x = x//10 return summax = 0for x in a: tot = digit_sum(x) if tot > max: max = tot res = xprint(res)코드설명sum에 몫이 아닌 나머지로 넣어..
[Algorithm] 인프런 정다면체
·
코딩테스트/Python
문제 출처두 개의 정 N면체와 정 M면체의 두 개의 주사위를 던져서나올 수 있는 눈의 합 중 가장 확률이 높은 숫자를 출력하는 프로그램을 작성하세요.정답이 여러 개일 경우 오름차순으로 출력합니다풀이 코드n, m = map(int, input().split())cnt = [0]*100for i in range(1, n+1): for j in range(1, m+1): cnt[i+j]+=1max = 0for a, b in enumerate(cnt): if b > max: max = bfor a, b in enumerate(cnt): if max == cnt[a]: print(a, end=' ')코드 설명cnt를 리스트로 만듬i와 j 주사위 조합으로 눈의 ..
[TIL] Git error issue & 명령어 정리
·
알쓸신잡
Git 명령어들을 모아 정리해서 까먹을때마다 두고두고 뽑아 쓰기 위해 블로그에 기록용으로 남겨두기1. 소스트리에서 맥 키체인에 접근했던 적이 있어 오류가 발생했음..mac 키체인 접근에서 github.com 은 모두 삭제 진행username : git 주소 뒤에 nameuser git token : personal access tokens2. github 예전에 repo 복제 에러났을때 문구github repository already existsgit remote rm origingit remote add origin https://주소.git# 새롭게 연결할 깃 레포 주소 입력git push origin master# 소스코드 업로드 3. rebase errormerge가 불가능하고, merge가 필..
[AWS] EC2(ubuntu)에서 postgreSQL 설치하기
·
데이터 엔지니어링/AWS
다음 프로젝트에서 쓰이고 있는 DB가 PostgreSQL이라고 해서 EC2 우분투에 postgresql을 설치했던 경험을 정리하였습니다. 개발 환경 - Ubuntu 22.04.2 LTS ver - Postgresql 14 ver 설치 $ sudo apt-get update $ sudo apt-get install postgresql postgresql-contrib # 패키지 등록 sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list. d/pgdg.list' # GPG Key add wget --quiet -O - https://www.postgresq..
[TIL] github shields.io badge 사용방법
·
알쓸신잡
깃허브를 돌아다니다 보면 여러 뱃지로 리드미를 꾸밀 수 있다.Tech Stack을 쌓다보면 다양한 색상과 다양한 로고로 깃허브 리포지토리를 꾸밀 수 있는데, 아래와 같이 사용하면 된다.https://simpleicons.org/?q=python Simple Icons2794 Free SVG icons for popular brandssimpleicons.orgTEXT : 쓰고싶은 텍스트 (아래와 같이 로고를 사용하려면 Python을 작성하면 됨)COLOR : 3776AB는 Color 이름 (# 들어가지 않게 주의)LOGO : 쓰고싶은 로고 (아래와 같이 로고를 사용하려면 Python을 작성하면 됨)
[AWS] Claude2 token counting
·
데이터 엔지니어링/AWS
Langchain의 callbacks으로 묶으려고 하니까 OpenAI의 자연어 처리 API를 사용하는 것으로 확인이 되어 token을 count할 수 없었다 현재 사용하고 있는 llm은 aws의 claude2기 때문에, open ai와 맞지 않아 구글링 해본 결과 여러 개를 테스트해볼 수 있었다 1토큰 당 처리되는 글자가 언어에 따라 달라진다는 점. 영어의 경우 4글자당 1개 토큰을 사용하는 반면 한글은 1글자당 2~3개의 토큰을 사용한다. 챗GPT 최대 입력 글자 수로 계산했을 때 영어는 1만 5384자이나 한글은 1365자에 불과하다라고 한다. callback을 시도하려했으나 오류발생 ImportError: cannot import name 'ChainManagerMixin' from 'langcha..