본문 바로가기

전체 글

(170)
[Python] jsonbender를 이용한 json 포맷 변환 DB 데이터를 Json 포맷으로 전환할 일이 생겨서 pandas 라이브러리로 간단하게 처리해봤다. df = pd.read_sql_query(...) if df.empty: return '' else: return df.to_json(orient='records') 회사 일이란게 이렇게 쉽게 끝나는 경우가 있던가. 역시나 json 포맷이 플랫한 형태가 아니라 서브 노드가 있는 형태로 변경 되었다. 가령 SQL 로 추출한 DataFrame 을 to_json 으로 직접 변환하면 아래와 같은 형태로 변환된다. [{"No": 1, "MakerCd": "abc", "Lat"": 10, "Lng": 20, "Contact": null}, ...] 이걸 아래처럼 변경(null 로 표시된 건 ""로 변환까지 포함)해달라..
Pandas DataFrame 의 특정 컬럼 값 변환하는 방법 map 함수 이용하여 DataFrame 특정 컬럼 값 변환하는 방법. from pandas import DataFrame data = { 'maker': ['apple.com', 'google.com', 'apple.com', 'oralce.com', 'ibm.com'], 't_val': [200, 150, 130, 300, 230] } df = DataFrame(data) df['t_val2'] = df['t_val'].map(lambda x: x * 2) print(df) 특정 컬럼의 값을 조건에 의해 변환하는 몇 가지 방법. 1. numpy 의 select 함수를 이용. import numpy as np from pandas import DataFrame data = { 'maker': ['appl..
APScheduler 스케쥴링을 동적으로 제어하는 방법 APScheduler 의 스케쥴링을 동적으로 제어하기 위해 사용한 방법을 간단히 정리해보자. hydra(A framework for elegantly configuring complex applications)를 사용 중인데 이 프레임워크는 OmegaConf 로 설정값을 관리한다. 이 설정값으로 APScheduler의 스케쥴링을 동적으로 제어하고자 한다. 간단하므로 코드 부터 우선. #config.yaml ... queries: test0: trigger: interval time: seconds: 5 test1: trigger: cron time: second: '*/5' test2: trigger: cron time: minute: '*' second: '5' def start_scheduler(cf..
MS Azure Blob Storage 에 json 데이터 업로드 DB 데이터를 추출해서 MS Azure Blob Storage 에 json 파일로 저장하는 방법. from sqlalchemy import create_engine import pandas as pd from azure.storage.blob import BlobClient url = 'YOUR_DB_URL_STR' engine = create_engine(url) str_qry = 'SELECT ... FROM ...' df = pd.read_sql_query(str_qry, engine) json_data = df.to_json(orient='records') try: conn_str = container_name = 'YOUR_CONTAINER_NAME' blob_name = 'folder1/dat..
[python]pandas, mongoDB, odo 간단한 테스트 우선 csv 파일 읽어서 mongoDB 에 insert 하는 것부터. 기본(?) 방식 import pandas as pd from pymongo import MongoClient data = pd.read_csv('movie_data.csv') data.reset_index(inplace=True) data_dict = data.to_dict("records") client = MongoClient() db = client['testdb'] collection = db['movies'] collection.insert_many(data_dict) odo 이용 from pymongo import MongoClient from odo import odo import pandas as pd data = pd...
Armeria, gRPC, JPA 간단한 샘플 라인 엔지니어가 올려놓은 샘플 응용해서 Armeria, JPA 이용한 간단한 gRPC API 만들어본거 정리(아직 webflux + R2DBC 를 시도해보진 못했다) Armeria https://armeria.dev/ https://github.com/line/armeria : 사용자 친화적인 Java microservice framework. asynchronous, reactive model 기반. Netty, gRPC, Thrift에 기반한 오픈소스 비동기 HTTP/2 RPC/REST 클라이언트/서버 라이브러리. gRPC 서버 높은 생산성과 효율적인 유지보수 다양한 언어와 플랫폼 지원 : C/C++, go, java, C#, python, node.js 등 HTTP/2 기반의 양방향 스트리밍 높은 ..
Oracle DB에서 주기적으로 데이터를 정확하게 5초 간격으로 추출 가령 스케줄러에서 5초 주기로 5초 전부터의 데이터를 가져오려고 한다고 해보자. 스케줄러 프로그램 실행 5초전 원하는 추출 시점 17:40:20 17:40:21 17:40:16 17:40:15 17:40:25 17:40:25 17:40:20 17:40:20 17:40:30 17:40:32 17:40:27 17:40:25 스케줄러에 등록된 프로그램 기동 시간 지연 등의 이유로 추출 기준시점이 틀어지는 문제를 예상해볼 수 있을 듯 하다. trunc 와 NUMTODSINTERVAL을 조합해서 만들어 본 꽁수. SELECT sysdate, trunc(sysdate, 'MI'), sysdate - INTERVAL '5' SECOND, trunc(sysdate, 'MI') + NUMTODSINTERVAL(floor..
Kafka 모니터링 - burrow 설치 Kafka Lag 모니터링을 위해 윈도우 머쉰에 burrow 설치한 절차, 간략하게 팀 내 공유했던거 옮겨봅니다. 설치용 바이너리 파일 제공되지 않고 소스를 다운 받아 빌드를 해야 함. 빌드를 위해서는 go 언어 설치 및 기본 환경 설정되어 있어야 하는데 이에 대한 설명은 온라인에서 참고 바람. 이하는 go 언어 설치가 되어 있다는 전제 하에 Windows 용 실행 파일 생성하는 절차임. burrow 빌드 및 인스톨. https://github.com/linkedin/Burrow에서 소스 다운로드 다운로드한 디렉토리로 이동 후 다음 명령 실행. $ go mod tidy $ go install 에러 발생하지 않는다면 %GOPATH%\bin 디렉토리에 Burrow.exe 생성 됨. burrow 설정 burr..