플랫폼에 연결하기
외부 소스 등록 → 연결 확인 → 외부 소스로 새 데이터셋 → 동기화 결과와 경고 보기
필요 권한: 데이터셋 쓰기DEVELOPER · OPERATOR · ADMIN
DataOps 서버가 준비됐으면 플랫폼 쪽에서 소스를 한 번 등록하고, 그 소스에서 데이터셋을 만듭니다. 소스 등록·연결 확인·데이터셋 만들기·동기화는 데이터셋 쓰기DEVELOPER · OPERATOR · ADMIN 권한(DEVELOPER 이상)이 필요합니다. 목록 보기는 누구나 됩니다.
이 페이지의 화면은 플랫폼 내장 mock DataOps 서버(참조 구현 참고)에 실제로 연결해 찍었습니다.
1. 소스 등록
- 왼쪽 메뉴 데이터셋 에서 위쪽 외부 소스 를 누르고, 창 아래의 소스 등록 을 누릅니다.
- 이름과 ① 기준 URL(API 3개 경로 앞에 붙는 주소, 예:
https://dataops.example.com/api), ② Bearer 토큰을 적고 ③ 등록 을 누릅니다.외부 소스 등록: ① 기준 URL(API 3개 경로 앞에 붙는 주소) ② Bearer 토큰 ③ 등록
- 토큰은 저장한 뒤 다시 볼 수 없습니다(끝 네 글자만 보입니다). 수정할 때 토큰 칸을 비워 두면 그대로 두고, 값을 넣으면 바꿉니다.
- 활성 을 끄면 연결은 그대로 둔 채 새 동기화만 막습니다.
2. 연결 확인
등록한 소스 줄의 ② 연결 확인 아이콘을 누르면 원격 목록을 1건만 조회해 ③ 결과를 알려 줍니다. ① 기준 URL 이 맞는지도 여기서 봅니다.
실패하면 원인을 셋 중 하나로 구분해 보여 줍니다: 연결 불가(주소·방화벽), HTTP 상태(401 이면 토큰), 응답 형식(JSON 객체가 아님, 목록이 배열이 아님 등).
3. 외부 소스로 새 데이터셋 만들기
- 데이터셋 화면의 새 데이터셋 을 누르고 ① 외부 소스에서 동기화 를 고릅니다.
- 소스를 고르면 원격 데이터셋 목록이 나옵니다. ② 받아올 데이터셋을 고릅니다. 이미 다른 데이터셋에 연결된 원격 데이터셋에는 "이미 연결됨" 이 붙습니다. 원격 데이터셋 하나는 플랫폼 데이터셋 하나에만 연결됩니다.
- 이름과 모달리티는 비워 두면 원격 값을 씁니다. 표 형식 CSV/Parquet 인데 원격이 모달리티를 알려 주지 않으면 표 형식을 직접 고르세요(안 고르면 시계열로 처리됩니다). ③ 만들고 동기화 를 누르면 데이터셋이 생기고 첫 동기화가 바로 시작됩니다.
새 데이터셋: ① 공급 방식 '외부 소스에서 동기화' ② 받아올 원격 데이터셋 ③ 만들고 동기화
4. 이미 있는 데이터셋에 연결하기
직접 올려 쓰던 데이터셋에도 나중에 소스를 연결할 수 있습니다. 데이터셋 상세의 개요 탭 → 외부 소스 카드 → 외부 소스 연결. 올려 둔 파일은 그대로 남고, 원격 파일과 이름이 겹치면 원격 파일 쪽을 건너뜁니다.
- 연결한 뒤 카드의 동기화 를 누르면, 먼저 무엇을 할지 미리 보여 줍니다. 받을 파일 · 바꿀 파일 · 그대로 둘 파일, 그리고 직접 올린 파일과 이름이 겹쳐 건너뛸 파일 수입니다. 원격에서 빠진 파일이 있으면 "이 데이터셋에서도 지워집니다" 가 빨간 글씨로 나옵니다.
동기화 확인: 받을 파일·그대로 둘 파일과, 직접 올린 파일과 이름이 겹쳐 건너뛸 파일을 먼저 보여 준다 - 동기화 를 누르면 진행률이 표시됩니다. 매니페스트를 읽기 전에는 받을 양을 모르므로 막대 대신 "원격 매니페스트를 읽는 중입니다" 가 먼저 나옵니다. 취소 는 파일 경계에서 멈춥니다.
5. 결과와 경고 보기
동기화가 끝나면 외부 소스 카드에 결과가 남습니다. ① 연결된 소스 · 원격 데이터셋 · 마지막 동기화 시각, ② 이번 실행의 받음 · 지움 · 유지, ③ 경고입니다.
위 화면은 업로드해 둔 20260721_line3_0002.png 와 이름이 같은 원격 파일이 있어서 그 파일을 건너뛴 결과입니다. 상태는 완료지만 경고가 1건 남았습니다. 이 원격 파일을 동기화로 관리하게 하려면 업로드한 파일을 지우고 다시 동기화합니다. "유지" 에는 그대로 둔 파일과 이름이 겹쳐 건너뛴 파일이 함께 들어갑니다.
같은 결과를 API 로 보면 이렇습니다.
curl -b cookies.txt -H "X-Tenant: DEMO" \
"http://localhost:10000/api/v1/datasets/<데이터셋 id>/syncs"
{"items": [{"status": "SUCCEEDED", "files_done": 0, "files_skipped": 3, "files_deleted": 0,
"warnings": ["'20260721_line3_0002.png' is already held by an uploaded file; delete it to let the sync manage this file"], "…": "…"}]}
연결을 바꾸거나 끊으면
| 동작 | 받아 둔 파일 | 다음에 |
|---|---|---|
| 연결 해제 | 남는다 | 같은 원격에 다시 연결하면 전부 다시 받지 않고 이어받는다 |
| 다른 원격으로 연결 변경 | 남지만 다음 동기화에서 지워진다(새 매니페스트에 없으므로) | 없음 |
| 소스 삭제 | 남는다 | 연결만 끊긴다 |
| 데이터셋 삭제 | 모두 지워진다 | 없음 |
직접 올린 파일은 어느 경우에도 지워지지 않습니다.