SQL

파이썬의 객체는 _로 시작하는 속성을 가리는 은닉화의 속성을 가지고 있다. 그렇기 때문에 SQLModel에서도 _를 포함한 필드를 가져올 수 없는 이슈가 있다. 필자는 작업 중에 사용한 테이블에 _TIMESTAMP 와 같은 필드가 있어 이런 이슈를 직면하게 되었다. 이 이슈를 해결하기 위해 디렉터분께 질문을 드렸고, SQLModel은 기존의 SQLAlchemy의 컬럼을 사용할 수 있는 sa_column이란 프로퍼티를 찾아주셨다. sa_column은 SQLAlchemy Column의 줄임말이다. 아래는 일반적인 Post 모델이다. class Post(Base, table=True): id: int = Field(primary_key=True, index=True) name: str = Field() aut..
PostgreSQL에선 카탈로그도 시스템 테이블로 구성되어서 사용자도 SQL을 통해 카탈로그를 조회할 수 있다. 해당 카탈로그 테이블의 이름은 pg_catalog 이다. 이 카탈로그 안의 pg_stat_activity 테이블은 세션 정보, 세션 PID, 세션 설명 등의 정보를 담고 있다. 해당 테이블의 로우의 갯수는 커넥션의 갯수이며 제공된 PID를 이용해 세션을 종료할 수 있다. pg_stat_activity 테이블 조회 SELECT * from pg_catalog.pg_stat_activity; 세션의 쿼리 종료 SELECT pg_cancel_backend(PID); 세션 종료 SELECT pg_terminate_backend(PID);
해당 쿼리는 매우 위험하므로 주의해서 사용해야 한다. curruent_schemas() 함수로 가져온 모든 테이블 명을 프로시저에서 반복문을 이용해 drop table if exists 쿼리로 삭제한다. DO $$ DECLARE r RECORD; BEGIN -- if the schema you operate on is not "current", you will want to -- replace current_schema() in query with 'schematodeletetablesfrom' -- *and* update the generate 'DROP...' accordingly. FOR r IN (SELECT tablename FROM pg_tables WHERE schemaname = curre..
· SRE/ELK
Kafka Sink Connector + Elasticsearch + Kibana를 Docker-compose를 이용해 Xpack이 적용된 형태로 구축했다. 아래 스크립트는 카프카 싱크 커넥터를 설치하는 스크립트이다. #!/bin/bash FILE="./connect-plugins/confluentinc-kafka-connect-elasticsearch-14.0.3" curl -X DELETE http://localhost:8083/connectors/elasticsearch-sink if [ ! -e $FILE ]; then curl -o ./connect-plugins/confluentinc-kafka-connect-elasticsearch-14.0.3.zip https://d1i4a15mxbxib1..
검색 기록을 만들 일이 있어서 코틀린으로 sqlite를 쓸 일이 생겼다. 일단 코드부터 보면 package com.connple.weat.sqlite import android.content.Context import android.database.sqlite.SQLiteDatabase import android.database.sqlite.SQLiteOpenHelper import android.provider.BaseColumns // sql 헬퍼 생성 class SearchSQLiteHelper(context: Context) : SQLiteOpenHelper(context, DATABASE_NAME, null, DATABASE_VERSION) { override fun onCreate(db: SQ..
Say simple
'SQL' 태그의 글 목록