전체 글 445

[ Python ] Python ORM sqlalchemy 이용한 DataFrame Data Insert

SQLAlchemy 은 대표적인 파이썬 ORM 이다. ORM이란 객체 관계 매핑(Object Relational Mapping)으로 데이터베이스 내의 테이블들을 객체화하여 각 DBMS에 대해서 CRUD (Create(생성), Read(읽기), Update(갱신), Delete(삭제)) 등 을 사용할 수 있다. 프로그램이 커지게 되면, SQL쿼리도 많아지게 되는 데, 반복되는 SQL 쿼리를 처리하기 유용하다. 1. 모듈설치 pip install pandas pip install SQLAlchemy 2. 접속 import pandas as pd from sqlalchemy import create_engine # DataFrame 생성 df = pd.DataFrame(rows,columns=['Col_A',..

[ AWS ] Python boto3를 이용한 RDS 변경 가능한 인스턴스 타입 확인하기

현재 Mysql 8.0.32에서 db.t3.medium 인스턴스를 운영하고 있고, AWS Graviton2 인스턴스로 변경 하려한다. rds의 client.describe_orderable_db_instance_options 메소드를 이용하여 확인 가능하다. import boto3 client = boto3.client('rds') def OrderableDBInstance(Engine,EngineVersion,dbInstanceclass): response = client.describe_orderable_db_instance_options( Engine=Engine, EngineVersion=EngineVersion, DBInstanceClass=dbInstanceclass, MaxRecords=12..

[ AWS ] Python boto3를 이용하여 ElastiCache Database 메모리 사용량 확인

from datetime import datetime from datetime import timedelta import boto3 cloudwatch = boto3.client('cloudwatch') def elastiCache_Database_Memory(): # 샘플 2023년 5월 1일 데이터 st = datetime(2023,5,1,0,0,0) - timedelta(hours=9) et = st + timedelta(days=1) response = cloudwatch.get_metric_statistics( Namespace='AWS/ElastiCache', MetricName='DatabaseMemoryUsagePercentage', Dimensions=[ { 'Name': 'CacheCl..

AWS Infra 2023.05.31

[ Python ] requests 모듈 다양한 이용

설치 : pip install requests 1. Response Text. (Text 출력) import requests with requests.Session() as s: r = s.get(site) print(r.text) 2. Response Status Code. (응답코드 출력) import requests with requests.Session() as s: r = s.get(site) print(r.status_code) 3. Response Encoding. (Encoding 출력) import requests with requests.Session() as s: r = s.get(site) print(r.encoding) 4. Response Hearders. (Hearders 출력..

[ Python ] 정규식 이용한 IP address 마스킹(감추기) 하기

정보보호를 목적으로 IP주소의 3번째 옥텟을 마스킹 처리해야 할 때, 정규식을 이용하여 마스킹 처리를 할 수 있다. import re ipaddress = ('172.168.10.12', '192.168.2.11','192.168.114.12','11.12.0.14') p1 = re.compile(r"(\d+)[.](\d+)[.](\d+)[.](\d+)") # 정규식 패턴과 추출할 그룹 지정. 3번째 옥텟 for i in ipaddress: m1 = p1.search(i) print(m1.group(1) + '.' + m1.group(2) + '.' + '***' + '.' + m1.group(4)) ----------------------------------------------------------..

[ Python ] 리눅스 iostat 결과값 DataFrame만들고, csv 저장

iostat : CPU통계와 디바이스와 IO통계를 출력해주는 유틸 tps 장치에서 초당 입출력 작업 수 kB_read/s 장치에서 초당 읽은(Read) 데이터 블록 (초당) kB_wrtn/s 장치에서 초당 쓴(Write) 데이터 블록 (초당) kB-read 장치에서 초당 읽은(Read) 데이터 블록 kB-wrtn 장치에서 초당 쓴(Write) 데이터 블록 [ 옵션 ] -m MB단위로 표현 iostats명령어의 결과를 DataFrame으로 만들고, csv 파일로 export import subprocess from datetime import datetime import time def iostat_data(): ps = subprocess.Popen(('iostat', '-m'), stdout=subpr..

[ Python ] Prometheus metric 값 가져오기

Python을이용하여 promQL 쿼리하여 값 가져오기 Sample Metric : jvm_memory_used_bytes import requests from datetime import datetime instance = '127.0.0.1:8080' job = 'spring' query = 'sum(jvm_memory_used_bytes{area="heap", instance="%s", job="%s"})' % (instance,job) def prometheus_data(instance,jop,query): response = requests.get('http://127.0.0.1:9090/api/v1/query', params={'query': query}) response = response...

[ Python ] Linux 파일 (스토리지) 연도별 개수와 총 용량 구하기

from os import walk from os.path import getsize from os.path import getmtime from datetime import datetime from os import chdir chdir(path) resultFile = 'result.csv' for (path, dir, files) in walk('.'): for filename in files: ext = filename.split('.')[-1] size = getsize(path + '\\' + filename) mtime = str(datetime.fromtimestamp(getmtime(path + '\\' + filename)))[:19] lst = '#'.join([ path, filen..