Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

변환 결과를 저장할지 선택하기

새 Workbook 변환은 기본적으로 데이터셋에 저장하지 않습니다. Logic 패널의 Save as dataset으로 결과를 Foundry 자산에 쓸지 정합니다.

저장하지 않던 변환을 다시 저장하도록 바꾸면 이전에 연결했던 데이터셋을 다시 사용합니다. 이전 저장 자산이 없으면 새 데이터셋을 만듭니다.

여러 노드의 저장 상태는 왼쪽 bulk editor에서 함께 바꿀 수 있습니다. 저장하는 변환은 가로 파란 막대로 표시됩니다.

저장 경계를 기준으로 실행

어떤 노드를 실행하면 그 위에 있는 저장되지 않은 노드의 최신 로직도 함께 실행합니다. 저장된 상위 노드를 만나면 그 Foundry 데이터셋을 읽습니다.

아래 예시에서 Saved Transform C를 실행하면 Unsaved Transform A의 로직도 실행합니다. A의 코드를 바꾸고 A를 따로 실행하지 않았더라도 C에는 새 로직이 반영됩니다.

Unsaved Transform D를 실행할 때는 저장된 C를 데이터셋에서 읽고, 저장하지 않은 B의 로직은 실행합니다.

C의 저장을 끄면 D를 실행할 때 상위의 A, B와 C 로직까지 함께 계산합니다. 이 경로의 결과를 보기 위해 상위 세 노드를 각각 미리 실행할 필요는 없습니다.

가져온 입력의 현재 선택 브랜치와 트랜잭션을 기준으로 최신 로직을 사용합니다. Workbook 브랜치 및 입력 선택 조건은 브랜치 안내를 따릅니다.

저장할 때 유리한 경우

  • 큰 Join처럼 계산이 비싸고 여러 하위 노드가 반복해서 사용하는 중간 결과입니다.
  • 다른 Workbook이나 Contour 등 Workbook 밖에서 사용할 출력입니다.
  • 현재 시각이나 비결정적인 대표 행 선택을 포함하여, 하위가 정확히 같은 중간 값을 읽어야 하는 결과입니다.
  • 저장하지 않은 노드가 길게 이어져 중간 checkpoint가 필요한 경우입니다.

저장된 결과를 하위에서 읽으면 그 데이터셋에 실제로 쓴 값을 공유할 수 있습니다. 단순히 row_number를 사용했다는 사실만으로 항상 비결정적인 것은 아니며, 정렬과 동률 처리의 조건을 함께 봅니다.

미리보기는 로직을 작성하며 올바른 결과인지 확인할 때 사용합니다. 경로가 정리되면 매번 모든 중간 노드를 수동으로 미리볼 필요는 없습니다.

Data Lineage에서 보이는 구조

저장하지 않은 노드는 프로젝트의 독립 자산이 아니라 Workbook 내부의 로직입니다. 따라서 Data Lineage에 개별 데이터셋으로 나타나지 않습니다.

Data Lineage에서 저장된 limiting 데이터셋을 열면 실제 실행할 코드에 상위 selection의 로직도 포함됩니다.

실행 비용과 저장량

선택적 persistence의 대화형 실행 모델에서 저장하지 않은 노드는 미리보기 계산을, 저장한 노드는 저장 계산을 수행합니다.

스케줄 빌드에서 불필요한 중간 저장을 줄이면 Foundry에 쓰고 다시 읽는 비용을 없애고 Spark가 여러 단계에 걸쳐 최적화할 수 있습니다. 그러나 같은 비싼 중간 계산을 여러 출력이 반복하게 되면 절감 효과가 줄거나 재계산 비용이 커질 수 있습니다. 실제 공유 관계에 맞춰 저장 경계를 고릅니다.

모든 노드를 기존처럼 저장하면 저장 경계도 유지됩니다. 저장을 끈 결과는 Foundry에 새로 쓰지 않으므로 그 출력에 필요한 추가 저장 공간을 줄일 수 있습니다.