본문 바로가기
728x90

전체 글336

[AWS] IAM vs Lakeformation 권한 관리 차이 정리 1. 프로젝트를 하면서 생긴 이슈 + 해결 IAM user에 아래와 같이 athena 및 glue 권한을 다 받았는데 database 및 table list 조회 불가 1) 기존에 받은 IAM 권한 [권한 및 정책] lakeformation:GetDataAccess lakeformation:GetMetadataAccess athena:* "glue:CreateDatabase", "glue:UpdateDatabase", "glue:DeleteDatabase", "glue:GetDatabase", "glue:GetDatabases", "glue:CreateTable", "glue:UpdateTable", "glue:DeleteTable", "glue:GetTable", "glue:GetTables", "gl.. 2023. 1. 31.
[Spark Tuning] CSV vs Parquet(columnar format) in spark 성능비교하기 [File 크기] 컬럼 수: 21개의 컬럼 레코드 수: 총 3,647,595 rows(records) csv: 578MB parquet: 44.7MB (gz.parquet: 34.6MB) [비교 관점] spark에서의 성능이란 file을 스캔할 때 스캔한 양(읽어들인 양)과 스캔시간이 중요 [CSV vs Parquet 특징 비교] (json은 덤ㅎㅎ) 1. CSV csv는 일반적인 text, 즉 row단위로 읽는 file format 1) 1개의 column select df_csv.select(F.col("Exam_No")).show(100000) Physical plan == Physical Plan == CollectLimit (3) +- * Project (2) +- Scan csv (1) (1).. 2023. 1. 25.
[AWS] Athena 테이블 생성, 데이터 붓기 (CREATE Table, CTAS, INSERT INTO SELECT) 이번 포스트에는 Athena를 통해 Glue Catalog에 데이터베이스와 테이블을 생성하는 방법을 포스팅 하겠습니다. *IAM에서 S3, Athena, Glue에 대한 FullAccess 정책을 부여 받았다고 가정하고 실행 1. 일반적인 EXTERNAL TABLE 생성 1) 결과 파일 s3경로 지정 settings의 manage 클릭 manage settings의 browse s3로 결과가 담길 S3 URI를 지정 2) database 생성 문법 CREATE (DATABASE|SCHEMA) [IF NOT EXISTS] database_name [COMMENT 'database_comment'] [LOCATION 'S3_loc'] [WITH DBPROPERTIES ('property_name' = 'pr.. 2023. 1. 20.
[Network] SSH tunneling vs SSH port forwarding 포트 포워딩과 터널링을 같은 말로 인식되는 경우가 제법 있는데, 둘의 차이를 정리해 보겠습니다. 1. SSH Tunneling SSH 프로토콜 연결을 통해 생성된 암호화된 터널로 구성 암호화된 채널을 통해 네트워크를 통해 암호화되지 않은 트래픽을 전송하는 데 사용 예를 들어, SSH 터널을 사용하여 FTP 프로토콜 자체가 암호화되지 않은 경우에도 FTP 서버와 클라이언트 간에 파일을 안전하게 전송할 수 있음 특정 인터넷 서비스를 금지하거나 필터링하는 방화벽을 우회하는 수단을 제공 사용자가 다른 유형의 서버(HTTP 등)에 도달하기 위해 시스템의 로컬 호스트에 트래픽을 전달할 수 있는 서버로 터널링(일반적으로 이 작업을 수행하는 것은 일종의 터널링 또는 액세스 서버(예: SSH 서버, VPN 서버 등)) .. 2023. 1. 19.
[MySQL] 바이너리 로그(binlog)란? 1. binlog란? 빈로그 혹은 바이너리 로그는 MySQL 서버 인스턴스의 데이터 변경사항들에 대한 정보를 포함하는 로그 파일의 세트 에러코드, 바이너리 로그 자체에 대한 메타데이터 등 다양한 데이터가 같이 포함되게 됨 기본적으로 Transaction Commit 시에 기록되어지며, 데이터 변경 순서를 보장 주로 복제(Replication) 및 복구(Recovery)를 목적으로 binary log가 사용 됨 복제: Secondary Node 가 Primary Node 로부터 binlog 데이터를 전달받아서 로깅 함(릴레이 로그) 부하분산 기능을 제공, 바이너리 로그는 마스터라는 서버에서 생성되고 슬레이브란 서버는 마스터 서버에 접속하여 이 마스터의 바이너리 로그를 읽어와서 똑같이 그 이벤트를 실행시켜 .. 2023. 1. 19.
[MySQL] MySQL version 확인 방법 1. SQL로 확인 1) SELECT VERSION(); SELECT VERSION(); 2) SHOW VARIABLES LIKE 'VERSION'; SHOW VARIABLES LIKE 'VERSION'; SHOW VARIABLES LIKE '%VERSION%'; 2. shell로 확인 2023. 1. 11.
[SQL] MySQL의 Binding Variables, 바인딩 변수 사용법(mysql,python), 장점 1. 바인딩 변수 사용의 장점 바인딩 변수의 장점은 SQL문 처리과정 중 Parsing과정에서 드러나게 됩니다. 1) SQL문 처리 과정 사용자가 SQL문장(Select)을 실행 SQL 파싱(parsing) SQL 최적화(optimizer) 실행(Execution) 추출(Fetch) 2) Parsing 과정 서버프로세스는 Shared Pool의 LibraryCache를 조회해서 문자 하나하나 공백, 대소문자까지 비교하여 동일한 SQL문장이 있는지 확인 Soft Parsing: 동일한 SQL문장과 SQL구문을 보낸 사용자나 옵티마이저 MODE관련 설정까지 일치하는 SQL커서가 존재하고 있다면, Library Cache의 parse-tree와 Query Execution Plan을 가지고 와서 실행 opti.. 2023. 1. 10.
[Airflow] Airflow cluster, celery executor + flower + RabbitMQ 환경 구성하기 이번 포스트에는 AWS EC2 3대로 구성된 airflow cluster를 CeleryExecutor로 설치해보겠습니다. 서버 구성 스펙 OS - Amazon linux2 AMI (HVM) - Kernel 5.10, SSD Volume type instance type - t2.Large 2vCPUs, 8GiB Memory storage - 30GB gp2 node 1: postgresql, redis, airflow webserver, airflow scheduler, airflow flower, airflow worker(queue1) node 2: airflow worker(queue2) node 3: airflow worker(queue3) 네트워크 SG group inboud rules outb.. 2023. 1. 9.
[Linux] echo를 이용하여 파일 덮어쓰기, 추가하기 linux에서는 파일을 쓰는 방법에는 파일에 들어가 직접 편집하는 방법이 있고, echo를 통해 파일을 쓰는 방법이 있습니다. 그 중 echo를 이용해 파일을 쓰는 방법에 대해 알아보겠습니다. 1. 명령어 $ echo -e "쓸 내용" > 파일.형식 # > 는 덮어쓰기 $ echo -e "쓸 내용" >> 파일.형식 # >> 는 추가하기 2. 실습 1) test.txt 작성 2) 내용 추가하기 $ echo -e "add second text" >> test # txt 파일형식 3) 내용 덮어쓰기 echo -e "overwrite third text" > test # txt 파일형식 2023. 1. 9.
728x90