본문 바로가기

IT 개인학습/Memo25

Encoding 인코딩 인코딩(Encoding)이란? 파일에 저장된 정보의 형태나 형식을 데이터 표준화, 보안, 처리 속도 향상, 저장 공간 절약 등을 위해서 다른 형태로 변환하는 처리 혹은 그 처리 방식을 말한다. 에서 많이 사용되며, 반대말은 디코딩(decoding)이다. URL 인코딩이란? URL에서 URL로 사용할 수 없는 문자 혹은 URL로 사용할 수 있지만 의미가 왜곡될 수 있는 문자들을 '%XX'의 형태로 변환하는 것을 말한다. 즉, 컴퓨터가 이해할 수 있는 형식으로 바꿔주는것 왜 URL 인코딩을 사용할까? 인터넷을 통해 전송할 수 있는 문자는 오로지 ASCII 문자이기 때문이다. 따라서 ASCII 문자가 아닌 문자는 인터넷을 통해 전송할 수 있는 형태로 변환해줘야 한다. ASCII 문자라 하더라도 예약된 의미를 .. 2022. 5. 7.
Tempfile 사용 이유 프로그램 실행 중 일시적으로 데이터를 저장해야 하거나 많은 양의 데이터로 작업할 때 임시 파일이 필요할 수 있다. 이러한 종류의 파일은 데이터를 영구적으로 저장하고 싶지 않을 때 매우 유용 = 프로그램이 실행되는 동안 파일이나 디렉토리에 데이터를 임시로 쓰고 읽고 저장할 수 있다. 기본적으로 파일은 w+b 모드로 열린다. 즉, 열린 파일을 읽고 쓸 수 있다. 파일이 모든 유형의 데이터와 함께 작동할 수 있도록 바이너리 모드가 사용된다. import tempfile # TemporaryFile with tempfile.NamedTemporaryFile() as temp: print(temp.name) temp.write(...) # TemporaryDirectory with tempfile.Te.. 2022. 5. 7.
정규표현식 💡 위키백과 정규 표현식(正規表現式, 영어: regular expression, 간단히 regexp 또는 regex, rational expression) 또는 정규식(正規式)은 특정한 규칙을 가진 문자열의 집합을 표현하는 데 사용하는 형식 언어 이다. 문자열을 처리하는 방법 중의 하나로 특정한 조건의 문자를 '검색'하거나 '치환'하는 과정을 매우 간편하게 처리 할 수 있도록 하는 수단 https://regexr.com/ RegExr: Learn, Build, & Test RegEx RegExr is an online tool to learn, build, & test Regular Expressions (RegEx / RegExp). regexr.com https://regexper.com/ Regex.. 2022. 5. 7.
Deploy 1. 마트화 쿼리 작성(= Jupyter에서 제공할 테이블 코드 작성) 2. Github에 pyspark, DAG 코드 -> PR 리뷰어 설정 후 Slack PR확인 요청, 확인 후 Merge = 다른 배치 영향안주는지 확인해보는 것이 좋음 3. DAG에 추가 수정 있을 경우 Jenkins 배포(배포 전 release 최신버전 필요) Pyspark 쿼리만 변경 시 x DAG 란? 데이터파이프라인을 의미하는 하나의 단위 - 하나 이상의 Task를 가지고 있고, 각각의 task들은 실행 순서를 가지고 실행 Deploy 순서 1. S3에 pyspark script 업로드(= Airflow는 S3에 있는 pyspark 파일을 읽어서 작업) 경로 : Croquis-data-emr-da > application >.. 2022. 5. 7.
Jenkins 젠킨스 Jenkins - CI/CD 툴 CI/CD - 애플리케이션 개발 단계를 자동화하여 애플리케이션을 보다 짧은 주기로 고객에게 제공하는 방법 Continuous Integration(개발자를 위한 자동화 프로세스인 지속적인 통합하는 것) Continuous Delivery(지속적인 서비스 제공 및 지속적인 배포가능한 상태를 유지하는 것) 1. 자동화된 방식으로 연속적인 데이터 통합 작업을 실행할 수 있는 Java 기반 오픈 소스 서버입니다. 2. 데이터 통합을 촉진하고 소프트웨어 프로젝트를 위한 데이터의 안전한 전달을 보장합니다. 또한 프로젝트 구축, 테스트 및 배포와 관련된 다양한 작업을 자동화합니다. 다수의 개발자들이 하나의 프로그램을 개발할 때 버전 충돌을 방지하기 위해 각자 작업한 내용을 공유영역에 .. 2022. 5. 7.
SQL SQL 읽히는 순서 FROM : 각 테이블 확인 ON : 조인 조건 확인 JOIN : 테이블 조인 (병합) WHERE : 데이터 추출 조건 확인 GROUP BY : 특정 칼럼으로 데이터 그룹화 HAVING : 그룹화 이후 데이터 추출 조건 확인 SELECT : 데이터 추출 DISTINCT : 중복 제거 ORDER BY : 데이터 정렬 CASE조건 SELECT Price, IF (Price > 30, 'Expensive', 'Cheap'), CASE WHEN Price < 20 THEN '저가' WHEN Price BETWEEN 20 AND 30 THEN '일반' ELSE '고가' END FROM Products; ## switch 문 방식 ''' 조건을 부여할 수는 없고 컬럼의 값만 체크하여 값을 반환할.. 2022. 5. 7.
Airflow Airflow - workflow관리 툴 Airflow는 Python 코드로 워크플로우(workflow)를 작성하고, 스케쥴링, 모니터링 하는 플랫폼입니다. Airflow를 통해서 데이터엔지니어링의 ETL 작업을 자동화하고, DAG(Directed Acyclic Graph) 형태의 워크플로우 작성이 가능합니다. 이를 통해 더 정교한 dependency를 가진 파이프라인을 설정할 수 있습니다. 또한 AWS, GCP 모두 Airflow managed service를 제공할 정도로 전세계 데이터팀들에게 널리 사용되고 있으며 그만큼 넓은 커뮤니티를 형성하고 있습니다. Apache Airflow는 자동화된 워크플로를 예약하는 기능도 제공합니다. 즉, 사람의 개입 없이 워크플로가 지정된 시간에 실행됩니다. 따라서 .. 2022. 5. 7.
Train / Validation / Test Train / Test - > 답지를 보고 훈련을 하게되면 다른 학습데이터가 들어와도 제대로 맞출 수가 없다, train_test_split 함수는 데이터를 랜덤하게 섞은 후, 인덱스 기반으로 train set과 validation set으로 나누는 함수 - 배열의 형태가 들어갈 수 없음 * training set중 몇개를 따로 빼내서(hold out) test error를 직접적으로 추정하는 방법. hold-out은 데이터셋을 훈련셋과 테스트셋으로 분리 예를들어, 데이터셋의 80%를 훈련셋으로 삼아 모델을 훈련시키고, 나머지 20%를 테스트셋으로 이용해서 성능을 평가 그런데 훈련셋과 테스트셋으로만 나눠서 모델의 성능을 평가하다보면, 테스트셋이 모델의 파라미터 설정에 큰 영향 ==> 모델이 테스트셋에 오.. 2021. 7. 7.