들어가며데이터 업무하다 보면 마주하는 케이스 (1) A님 갑자기 제 배치가 안돌아요- 아 alpha_omega 테이블 참조하셨죠? 그거 오늘부터 alpha_beta로 적재됩니다~(2) 뭐야 휴지는 없어도 휴지심은 있어야 되는데? (갑작스러운 null 출현) dbt공홈 문서를 보다보면 유독 자주 등장하는 단어가 있다. “software engineering” 한발 더 나아가서data analysts should adapt similar practices and tools to software developoers 이렇게 까지..! 얘기를 한다. 물론, 분석하기도 바쁜 상황이지만.. dbt를 사용하면Version Control - Analytic code는 반드시 버전 관리를 해야 함, 비즈니스 요구 ..
들어가며최근 들어, 팀 내에서도 그리고 글또에서도 새로운 환경에서 ETL 파이프라인을 구축해 볼 기회가 생김에 따라 Airflow를 이전보다는 조금 더 깊게 알아야 할 필요성이 생겼다. 이에 따라, Airflow를 공부하며 관련된 내용들을 정리해보는 중인데, 오늘은 나와 같은 초보자의 관점에서 Airflow를 테스트 환경을 구성하고 DAG을 만들고 실행하는 과정에서 몇 가지 기본적인 개념들을 다루어보고자 한다.DAG란?Airflow is a platform that lets you build and run workflows. A workflow is represented as a DAG (a Directed Acyclic Graph), and contains individual pieces ..
슬랙 무료 플랜의 경우, 90일 단위로 주기적으로 메시지 함을 비웁니다. 이에 따라 추후 백업 및 활용 용도로 메시지를 저장하는 프로젝트를 진행했었습니다. https://gibles-deepmind.tistory.com/entry/%EC%9A%B0%EB%8B%B9%ED%83%95%ED%83%95-%EC%8A%AC%EB%9E%99-%EB%A9%94%EC%8B%9C%EC%A7%80-%EC%A0%80%EC%9E%A5%EA%B8%B01-%EC%8A%AC%EB%9E%99-%EB%A9%94%EC%8B%9C%EC%A7%80-%EB%84%8C-%EB%88%84%EA%B5%AC%EB%83%90 우당탕탕 슬랙 메시지 저장기(1) - 슬랙 메시지 넌 누구냐? 슬랙 무료 플랜의 경우, 90일 단위로 주기적으로 메시지 함을 비..
슬랙 무료 플랜의 경우, 90일 단위로 주기적으로 메시지 함을 비웁니다. 이에 따라 추후 백업 및 활용 용도로 메시지를 저장하는 프로젝트를 진행했었습니다. ※음슴체주의※ - 슬랙에서 데이터를 저장하는 방법은 크게 두 가지가 있음 - 하나는 설정 및 관리 → 워크 스페이스 설정 → 데이터 가져오기/내보내기 → 데이터 내보내기 - 다른 하나는 API를 이용하는 방법. https://api.slack.com/methods/conversations.history - API를 이용해 슬랙 데이터를 저장하는 방법에 대해 시리즈 글로 남길 예정. (본 글은 성윤님께서 진행하신 genie 프로젝트를 기반으로 작성하였습니다.) https://github.com/geultto/genie GitHub - geultto/g..
들어가며 - Grab은 스마트폰 기반의 동남아시아 승차 공유 서비스이다(- 위키 백과 -). - 지금은 그랩페이, 익스프래스, 프레쉬... 등 다양한 사업 분야 진출해 있는 소위 말하는 "슈퍼앱"이다. - 지금은 처분했지만 한동안 그랩의 "주주"였다. - 그래서, 조금은 뜬금없지만 언젠가 재진입할 날을 고대하며, 그랩의 테크 블로그 글 들에 대해 번역해보려 한다. Grab Food - 오늘 번역하려고 하는 글을 Grab의 여러 서비스들 중 Grab Food를 대상으로 한다. https://www.grab.com/global/ko/food/ Grab Food | 동남아시아에서 간편한 음식 배달을 원하시면 다운로드하세요 동남아시아에서 여러분의 입맛을 사로잡을 음식을 GrabFood를 통해 모두 주문하세요. ..
자~데이터 담으러 가자(feat.안내상님, 송곳) - 들뜬 마음으로 마트에 방문한 A씨. - 어라? 그런데 구매하려고 했던 바나나가 없다. - 바나나 다 팔렸나요? 질문을 남긴 안씨. 직원C씨는 알아 보고 오겠다는 말을 남긴채.. 다시 돌아오지 않았다. - 왜 직원은 돌아 오지 않았을까? 1. 화장실이 급해서 2. 갑자기 관둠 고민에 빠진 직원 - 정답은 둘다 아니다. - C씨는 A씨의 질문을 받자 말자 곧장 마트 창고로 달려갔다. - 창고에도 남은 바나나가 없었다. - 하지만, C씨는 일전에 있는 재고를 없다고 하여 혼난 적이 있다 - 또 혼나기 싫었던 C씨 확실히 확인하기 위해 사내 데이터 베이스에 먼저 접속했다. 상품 상태 테이블 발주일자 상품명 발주물량 상태 업데이트일자 2023-03-10 Sup..
Interface 인터페이스란? 서로 다른 두 개의 시스템, 장치 사이에서 정보나 신호를 주고받는 경우의 접점이나 경계면. 즉 사용자가 기기를 쉽게 동작시키는데, 도움을 주는 시스템 - 위키백과 인터페이스의 정의는 "접점"/"경계면"이다. 그리고, 그 접점/경계면을 통해 정보나 신호를 주고 받는다. 대표적인 인터페이스의 예시로 컴퓨터 본체 뒷면을 들 수 있다. HDMI 포트는 HDMI 케이블을 연결하여 정보를 모니터로 송출하는 인터페이스다. 모니터는 HDMI 포트라는 인터페이스를 통해 본체와 상호작용(본체의 정보를 수신하여 출력)한다. 이처럼 인터페이스는 두 가지 기능을 한다. 1. 두 대상이 만날 수 있는 접점을 제공한다. 2. 두 대상이 상호작용(=정보교환) 할 수 있도록 한다. 그런데, 한 가지 중..
지난 며칠 간 빅쿼리를 파이썬과 연동해서 사용하였다. pip install google-cloud-bigquery 파이썬과 연동해서 사용하기 위해서는 Client 객체를 사용해야 한다. 공식 Documnet에서 Client 인스턴스에서 사용할 수 있는 method 목록을 확인할 수 있다. https://cloud.google.com/python/docs/reference/bigquery/latest/google.cloud.bigquery.client.Client#google_cloud_bigquery_client_Client_query Class Client (3.4.0) | Python client library | Google Cloud Send feedback Class Client (3.4.0) ..
핵심내용 도커 컨테이너를 정리하는 방법에 대해서 다루고자 한다. 일단 정지용 도커 컨테이너를 삭제하기 전에 우선, 도커를 먼저 정지해야 한다. 왜냐하면, stop후 삭제하는 과정을 통해 삭제하는데 필요한 충분한 시간을 벌 수 있기 때문이다. (다만, 정지를 하지 않고도 삭제를 강제할 수 있기는 하다.) 그래서, 컨테이너를 삭제하기 전에 도커를 먼저 정지해야 한다. 1. 하나의 컨테이너를 정지하는 경우 docker stop [OPTIONS] CONTAINER [CONTAINER...] 컨테이너 아이디나, 혹은 이름을 넣어준다. 2. 여러개의 컨테이너를 정지하는 경우 docker stop container1 container2 컨테이너 이름이나 아이디를 띄어쓰기로 입력해준다. 3. 특정 이미지와 연관된 모든..
핵심내용 pyspark의 데이터프레임과 pandas 데이터프레임의 type hint를 비교해봅니다. type hint 비교 아래와 같이 라이브러리를 생성해줍니다. from pyspark.sql import * from pyspark.sql.types import * from pyspark.sql.functions import * import pandas as pd 그리고, pandas의 DataFrame과 pyspark의 DataFrame의 type을 비교해봅시다. print(type(spark.sql("select 1"))) print(type(pd.DataFrame([]))) 시작은 다르지만, 끝은 모두 DataFrame으로 동일합니다. 여기서 주목할점은 다음과 같은 라이브러리 임포트 형식인데요. f..