공부/데이터
-
데이터 메시(Data Mesh)란?공부/데이터 2023. 7. 16. 16:38
데이터 메시는 왜 나오게 됐는가? 데이터 메시는 기존의 중앙 집중식 데이터 아키텍처의 한계와 어려움을 극복하기 위해 등장했습니다. 이는 기업이 다양한 소스에서 대량의 데이터를 다루고 분석해야 하는 상황에서 유연성과 효율성을 높이기 위한 것입니다. 기존 중앙 집중식 데이터의 어려움은 다음과 같습니다. 사일로화된 데이터 팀: 중앙의 데이터 팀에 있는 전문 데이터 사이언티스트와 엔지니어는 비즈니스와 도메인에 대한 지식이 부족합니다. 이러한 사실로 인해, 데이터 팀은 목적을 명확하게 이해하지 못한 채로 어쨌든 다양한 운영 및 분석 요구 사항에 맞는 데이터를 제공해야 합니다. 이는 데이터의 정확성과 유용성에 부정적인 영향을 미칠 수 있습니다. 느린 변경 응답성: 데이터 엔지니어는 일반적으로 데이터를 수집하여 중앙..
-
데이터 패브릭(Data Fabric)이란?공부/데이터 2023. 7. 14. 01:55
데이터 패브릭은 왜 나오게 됐는가? 데이터 레이크는 모든 정형 및 비정형 데이터를 중앙 저장소에 저장할 수 있게 해주고, 실시간 스트리밍 기능과 데이터 처리 기능을 제공합니다. 이러한 기능으로 인해 데이터 레이크는 데이터 웨어하우스보다 더 유연한 성능을 제공하지만, 여전히 기업 내의 데이터 팀은 서로 다른 요구사항을 가진 비즈니스 내 여러 부서로부터 받은 임시 요청을 처리하는 데 어려움을 겪고 있습니다. 데이터 팀은 데이터 레이크에서 다양한 도메인을 위한 분석 파이프라인을 준비하여 도메인 팀의 사용자가 데이터를 사용할 수 있도록 해야 합니다. 그러나 데이터를 수집하고 정제하는 것은 부담스러울 수 있습니다. 또한 다양한 도메인에서 제공되는 데이터의 특징을 이해하기 위해 광범위한 분석이 필요하며, 조직적으로..
-
[Airflow] Sensor의 reschedule과 poke 실행 모드 동작 원리공부/데이터 2023. 4. 16. 23:17
airflow 공식 블로그에서도 각 모드에 대해 어떻게 동작이 달라지는지 설명이 나와 있지 않아 실제 코드를 보며 설명을 해보겠습니다 Sensor operator의 설명은 https://brownbears.tistory.com/587 에서 확인할 수 있습니다. airflow 2.3.4버전 poke 모드 sensor에서 poke을 설정하고 해당 sensor가 실행되면 airflow UI에서 다음과 같은 로그를 볼 수 있습니다. [2023-04-10, 11:22:17 UTC] {external_task.py:184} INFO - Poking for tasks None in dag on 2023-04-10T10:00:00+00:00 ... [2023-04-10, 11:23:17 UTC] {external_ta..
-
[Kubernetes] 권장 레이블공부/데이터 2023. 4. 16. 22:22
kubectl, 대시보드 등의 도구로 쿠버네티스 오브젝트를 시각화하고 관리할 수 있습니다. 공통 레이블 셋은 오브젝트를 식별하고 도구들이 상호 운용할 수 있도록 지원합니다. 권장 레이블은 쿼리하여 애플리케이션을 식별하는 데에 도움이 됩니다. 메타데이터는 애플리케이션 개념을 중심으로 정리됩니다. 쿠버네티스는 PaaS가 아니며 공식적인 애플리케이션 개념을 강요하지 않습니다. 대신, 애플리케이션은 비공식적으로 메타데이터로 설명됩니다. 애플리케이션의 정의는 유연합니다. 💡 메타데이터는 애플리케이션 관리를 쉽게하기 위해 권장되는 레이블이지만, 코어 도구에는 필요하지 않습니다. app.kubernetes.io는 공유 레이블과 주석에서 사용되는 공통 접두사입니다. 사용자 정의 레이블에는 이 접두사가 없으며, 공유 접..
-
[Airflow] SLAs 사용하기공부/데이터 2023. 4. 10. 00:22
airflow의 DAG에서 각 task 단계는 일정 시간 내에 실행되어야 합니다. 이 때, SLA(Service Level Agreement)를 사용하여 작업 단계가 제때 실행되는지 확인할 수 있습니다. 아래에서 SLA가 무엇인지, 어떻게 사용하는지와 현재 airflow에서 SLA의 한계까지 설명합니다. 여기서 airflow 2.3.4 버전 기준으로 설명합니다. SLA란? Service Level Agreement (SLA)는 서비스 수준 협약으로, 서비스 제공자와 이용자 간에 서비스 제공에 대한 약속 내용을 명시한 문서입니다. 이를 통해 서비스 제공자는 이용자에게 최소한의 서비스 수준을 보장하며, 이용자는 이에 대한 보상을 받을 수 있습니다. Airflow SLA 사용하기 SLA는 task 단위로 설정..
-
[Kubernetes] Owners 와 Dependents공부/데이터 2023. 4. 9. 23:38
Kubernetes는 컨테이너 오케스트레이션 플랫폼으로, 여러 개의 컨테이너를 관리하고 배포하는 데 사용됩니다. 이러한 환경에서는 여러 사용자가 동시에 작업을 수행할 수 있으며, 이러한 사용자를 owner 또는 dependent로 나눌 수 있습니다. Owner(소유자): Kubernetes에서 소유자는 특정 리소스를 만들고 관리하는 사용자를 의미합니다. 이러한 사용자는 해당 리소스에 대한 모든 권한을 가지며, 다른 사용자를 추가하거나 삭제할 수 있습니다. 또한, 소유자는 다른 사용자와 공유하지 않고 해당 리소스를 사용할 수 있습니다. Dependent(부양가족?): Kubernetes에서 부양가족은 소유자가 만든 리소스를 공유하는 사용자 그룹을 의미합니다. 부양가족은 소유자와 동일한 권한으로 해당 리소스..
-
[Kubernetes] 필드 셀렉터공부/데이터 2023. 3. 6. 15:36
Kubernetes 필드 셀렉터는 레이블 셀렉터와 유사하지만, 필드 셀렉터는 레이블이 아닌 오브젝트의 필드를 사용하여 셀렉션을 수행합니다. Kubernetes에서는 많은 오브젝트를 사용합니다. 예를 들어, Pod, Service, Node, Namespace 등이 있습니다. 이러한 오브젝트들은 다양한 필드를 가지고 있습니다. 필드 셀렉터는 이러한 오브젝트들의 필드를 사용하여 셀렉션을 수행합니다. 필드 셀렉터는 쿠버네티스 리소스에서 한 개 이상의 필드 값을 기준으로 선택하는 데 사용됩니다. 예를 들어, Pod 오브젝트의 경우에는 Pod의 이름, IP 주소, 레이블 등이 있습니다. 이러한 필드들을 사용하여 특정한 Pod를 선택할 수 있습니다. 다른 예로는 Node 오브젝트의 경우에는 Node의 이름, IP ..
-
[Kubernetes] 파이널라이저공부/데이터 2023. 3. 6. 15:27
Kubernetes API 객체를 삭제할 때, 파이널라이저는 해당 객체와 관련된 다른 리소스들도 함께 삭제되도록 합니다. 이를 위해 파이널라이저는 해당 객체가 삭제될 때 모든 관련 리소스들이 함께 삭제되도록 보장하는 메커니즘입니다. 파이널라이저는 오브젝트가 삭제되기 전에 특정 조건이 충족될 때까지 대기하기 위한 네임스페이스에 있는 키(namespaced key)입니다. 이를 통해 삭제가 완료된 오브젝트의 리소스를 정리할 수 있도록 컨트롤러에게 알립니다. 파이널라이저는 Kubernetes API 객체의 metadata 필드에 정의됩니다. 해당 객체를 삭제하도록 지시하면, 쿠버네티스 API는 .metadata.delationTimestamp을 추가하여 객체를 삭제하고 202 상태 코드(HTTP "Accept..
-
[Kubernetes] 어노테이션공부/데이터 2023. 3. 5. 12:37
Kubernetes 어노테이션은 리소스의 부가정보를 제공합니다. 레이블과 유사하지만 더 많은 메타데이터를 저장하고 비식별 메타데이터를 오브젝트에 첨부할 수 있습니다. 클라이언트는 이 메타데이터를 검색할 수 있습니다. 어노테이션에는 다음과 같은 정보가 포함될 수 있습니다. 리소스 구성에 대한 추가 정보 인증 정보 클러스터 또는 네임스페이스 수준의 설정 정보 빌드 또는 배포에 대한 버전 정보 어노테이션은 일반적으로 클러스터 관리자 또는 개발자가 사용합니다. 어노테이션을 사용하여 리소스를 더 잘 추적하고, 리소스 간의 관계를 더 잘 이해하며, 리소스를 더 효과적으로 관리할 수 있습니다. 오브젝트에 메타데이터 첨부 쿠버네티스 오브젝트에는 메타데이터를 첨부할 수 있습니다. 레이블을 사용하여 오브젝트를 선택하고, ..
-
[Kubernetes] 레이블과 셀렉터공부/데이터 2023. 3. 5. 12:22
레이블 레이블은 파드와 같은 오브젝트에 첨부된 키-값 쌍으로, 오브젝트의 특성을 식별하는 데 사용됩니다. 이는 사용자에게 중요하지만, 코어 시스템에 직접적인 의미는 없습니다. 레이블은 오브젝트의 하위 집합을 선택하고 구성하는 데 사용될 수 있습니다. 레이블은 오브젝트 생성 또는 생성 이후에 붙일 수 있으며, 각 오브젝트마다 키와 값으로 정의할 수 있습니다. Kubernetes에서는 리소스에 레이블(Label)을 달아, 리소스에 대한 여러 가지 정보를 기반으로 선택하거나 그룹화할 수 있습니다. "metadata": { "labels": { "key1" : "value1", "key2" : "value2" } } 레이블은 UI와 CLI에서 쿼리 및 검색에 효율적이며, 식별되지 않는 정보는 어노테이션으로 기록..