Kedro 노드(Node)
Kedro 노드(Node)
노드(node)는 Kedro 파이프라인을 이루는 기본 실행 단위예요. 입력을 받아 처리하고 출력을 만들어내는 함수이며, 함수에 입력·출력 이름을 명시해서 파이프라인 안에서 데이터 흐름을 정의해요. 노드가 곧 Kedro가 파이프라인을 실행하는 단위예요.
출처: Kedro Nodes
노드 정의
노드는 보통 node() 함수로 만들어요. 함수 하나를 가져와서 입력과 출력을 연결해요.
from kedro.pipeline import node
def normalize(value):
return value.upper()
normalize_node = node(
func=normalize,
inputs="raw_data",
outputs="normalized_data",
)
여기서 func는 실행할 함수, inputs와 outputs는 그 함수가 받고 내보내는 데이터의 이름이에요. 이 이름들은 데이터 카탈로그에 정의된 데이터셋과 연결돼요.
입출력 연결
노드의 inputs·outputs는 데이터셋 이름이자 파이프라인에서의 데이터 흐름 지점이에요. 한 노드의 출력이 다른 노드의 입력으로 이어지면 두 노드가 의존 관계가 생기고, Kedro가 실행 순서를 자동으로 정해요. 필요에 따라 여러 입력을 받거나 여러 출력을 내보내는 노드도 만들 수 있어요.
독립성과 재사용
노드는 함수 하나에 입력·출력 연결만 명시한 형태라 재사용성이 높아요. 같은 처리 로직이라도 입력·출력 데이터셋만 바꿔 다른 곳에서 다시 쓸 수 있어요. 이 구조 덕분에 파이프라인을 조립하기 쉽고 테스트하기도 좋아요.
더 알아보기
- 파이프라인으로 엮기: Pipelines
- 데이터 연결: Data Catalog