본문 바로가기

Lang

(36)
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 기반의 양방향 스트리밍 높은 ..
[python]cx_oracle 설정, 사용 예 윈도우 환경에서 파이썬으로 오라클 DB 사용하려고 하니 다른 DB 들과는 달리 연결 설정이 그렇게 쉽지는 않군요. cx_oracle 을 보통 사용하는 듯 해서 우선 설치. pip install cx_oracle cx_oracle 8.0.0 이 별 문제없이 설치 되었다. 문제는 그 다음부터. cx_oracle 패키지를 소스에서 찾지 못하고 엉뚱한 sqlalchemy.dialects 에 있는 cx_oracle 패키지만 찾거나, 'DPI-1047: Cannot locate a 64-bit Oracle Client library' 에러만 내놓는다. 늘 그렇듯이 문제 생긴 후 매뉴얼 정독. cx_oracle 사용하려면 오라클 클라이언트 라이브러리를 별도로 설치해주어야 하는 듯. https://www.oracle...
[Python]두 DB 간 테이블 동기화 코딩 이기종 두 DB 간 테이블 동기화하는 프로그램을 간단하게 작성해보았습니다. 스케쥴러를 이용해서 정기적으로 postgresql 의 테이블 데이터를 읽어서 MariaDB 에 넣어줍니다. 작업 처리 결과를 소스 테이블의 sync_flag 컬럼에 일괄 업데이트합니다 (성공하면 'Y', 실패하면 'E') pip install mysqlclient pip install psycopg2 pip install sqlalchemy pip install pandas pip install apscheduler 중요한 몇 개 소스만 간추려 옮겨봅니다. DB 연결 구현. class Connection: def __init__(self): self.host = Config.DB['server'] self.user = Config..
[Java]여러 DB 환경에서 native query 쓸 때 orm.xml 문제 두 개 이상의 DB 환경에서 Spring Boot, JPA를 쓰려면 DB 별로 패키지를 분리해서 쓰는 방식이 일반적인 것 같아서 문서 읽으며 따라 하기 식으로 설정 끝냈습니다. 기본(적인) 설정으로는 querydsl 사용에 문제 있었지만 구조 바꾸면서 필요 없어진 부분들이라 querydsl 들어냈고 그러고는 잘 작동합니다. 그런데 개발 하는 과정에서 문제가 발생했습니다. 배치 처리할 부분을 native query 로 작성한 후 애리케이션을 실행하려고 하니 다음과 같은 에러 나면서 기동이 안되네요. ERROR o.h.internal.SessionFactoryImpl(SessionFactoryImpl.java:333) HHH000177: Error in named query: ... org.hibernate..