Professional Field

SQL(ORACLE) | AI | BI | 통계분석

Engineer 5

[MSSQL] 다른 DB 연동하는 방법 OPENQUERY

OPENQUERY는 Linked Server에서 데이터를 가져올 때 전체 데이터를 가져오지 못하게 하여 성능 저하 이슈를 없애기 위해 사용하는 쿼리이다.  Linked Server는 SQL server에서 제공하는 기능이며, 외부의 DB에 접근해 명령을 실행할 수 있도록 연결된 서버를 구성할 수 있다. Linked Server는 데이블에 있는 모든 데이터를 가져온 후 조건을 던지기 때문에 쿼리비용이 많이 발생하여 OPENQUERY를 사용한다. 선행되기 위해서는 Linked Server 권한이 필요하다.   SELECT * FROM OPENQUERY(접속 DB명, 조회 쿼리{'SELECT * FROM 접속 Table명 A WHERE 1 = 1'}) B  https://learn.microsoft.com/k..

Engineer/SQL 2024.12.18

[ETL] Airflow를 이용한 Naver(API)_to_Snowflake(DW)

네이버 API에 있는 데이터를 Airflow를 이용해 데이터웨어하우스(dw)인 snowflake에 넣어보는 실습을 진행해보자. 1. 먼저 네이버 API 권한을 받는다.사전 준비 : 네이버 API 어플리케이션 등록 네이버 API 사용 가이드 네이버 API를 사용하려면 네이버 개발자 센터에서 애플리케이션을 등록하고 클라이언트 아이디와 클라이언트 시크릿을 발급받아야 한다. (test 이기때문에 서비스 환경은 모두 http://localhost 로 해주었다.) 2. airflow 설치할 때 만든 airflow-docker/dags 폴더안에 naver_to_snow.py 를 만들어준다.airflow에는 Operator 로 파이프라인을 구성해주어야 한다. from airflow import DAGfrom airfl..

Engineer/Pipeline 2024.08.01

[Pipeline] 파이프라인 Apache Airflow 설치방법 (Docker)

저번 포스팅에서는 WSL 우분투를 이용한 Airflow 설치방법을 진행했었는데 이번에는 Docker를 이용해 설치를 해보려고 한다. 그 이유는 몇 가지가 있는데 Docker를 이용한 컨테이너 가상 환경에서 독립적으로 실행이 되어 다른 프로그램과 충돌을 하지 않고, 다양한 환경 조성이 가능하다. 또한 compose를 사용해서 빠른 설치가 가능하다. 이번 포스팅에서는 compose를 이용한 설치를 진행한다.   Docker는 wsl가 있어야 활용가능하다.wsl 최신버전 업데이트  1. 먼저 Docker Desktop 을 설치하고 실행해준다. 2. CMD 창에서 관리자권한으로 실행한 뒤 디렉터리를 만들어준 다음 경로를 찾아준다. 사용자 PC에 맞게 YourUsername 을 변경해준다. mkdir C:\Use..

Engineer/Pipeline 2024.08.01

[Pipeline] 파이프라인 Apache Airflow 설치방법

먼저 운영체제가 Windows인지 Linux인지 Mac인지 OS 확인을 해야한다.  나는 컴퓨터가 Windows이기 때문에 WSL을 이용하여 Airflow를 설치해보고자 한다. ( Docker방법은 추후 포스팅 ) 먼저 Windows PowerShell을 관리자 권한으로 열어 해당 명령어를 실행한다.(관리자 권한 미실행 시 db init 데이터베이스 초기화 오류발생)wsl --install 이는 리눅스 Ubuntn(우분투)를 사용하기 위해 WSL를 설치하는 과정이다.이미 설치를 했기때문에 Ubuntu가 자동으로 실행됨.  처음에는 아래화면과 같이 User ID와 PW를 생성해야한다.sudo apt install python3-venvUbuntu 가상환경venv 설치python3 -m venv env새 e..

Engineer/Pipeline 2024.07.05

[SQL] 특정 컬럼을 포함한 테이블 찾기

특정 컬럼이 포함된 테이블명을 찾을 때 쓰는 쿼리문이다.키값이 되는 컬럼을 기준으로 찾는 것을 필요로 할 때 사용하는 것이 대다수이다.SELECT TABLE_SCHEMA, TABLE_NAME, COLUMN_NAMEFROM INFORMATION_SCHEMA.COLUMNSWHERE COLUMN_NAME='필드명'; 필드명을 가지고 있는 테이블이 나열된다.TABLE_SCHEMA : 데이터베이스 이름TABLE_NAME : WHERE에 입력한 필드를 가지고 있는 테이블COLUMN_NAME : 특정 컬럼

Engineer/SQL 2021.05.18