강좌Apache Doris 해커톤자기 주도 과제 · 언제든 시작 · 등록 불필요

트랙 B · 6 과제 중 하나 선택

문서에서 데모로

Apache Doris 기능 문서 하나를 골라 로컬 Doris에서 실행하고 단계별 데모로 만드세요. 풀 리퀘스트를 통해 doris.apache.org의 해당 페이지에 데모를 추가합니다.

  • 과제당 30~60분
  • 입문자 환영
  • SQL 및 브라우저
  • 문서 PR로 마무리

막히는 부분이 있나요? 질문할 곳: #dev 참여할 곳: Apache Doris Slack. 유지 관리자와 다른 참가자가 도와드립니다.

1

환경 준비

트랙 B 진행 방식, 실행 중인 클러스터 및 문서 포크를 준비합니다.

트랙 B 진행 방식

기능 페이지 하나, 데모 하나, 풀 리퀘스트 하나.

새로운 Doris 사용자는 이 페이지들에서 시작합니다. 처음부터 실행해 보면 빠진 내용을 가장 빨리 찾을 수 있고, 빈 클러스터에서 끝까지 실행되는 데모는 기능이 작동한다는 가장 확실한 증거입니다. 만든 데모는 페이지 본문에 실립니다.

  1. 문서 따라 하기. 과제 문서를 열고 로컬 Doris에서 모든 예제를 적힌 그대로 실행하세요. 실패, 다른 출력, 설명이 불명확한 부분을 기록하세요.

  2. 데모 만들기. 빈 클러스터에서 시작해 과제 체크리스트의 모든 항목을 검증하세요. 처음부터 끝까지 실행하고 각 문의 실제 출력을 보관하세요.

  3. 페이지에 추가하기. 다음 단계별 데모 섹션을 두 페이지 모두 Quick start 바로 뒤에 추가합니다. 발견한 문제도 같은 풀 리퀘스트에서 수정하세요.

  4. 풀 리퀘스트 만들기 대상: apache/doris-website. 이것이 제출물입니다. 참고: 제출하고 배지 받기.

패널에 현재 읽는 과제의 템플릿이 표시됩니다

시작하기 전에

  • docker pull apache/doris:all-in-one-4.1.3
  • docker run -d --name doris -p 9030:9030 -p 8030:8030 -p 8040:8040 apache/doris:all-in-one-4.1.3
  • docker exec -it doris mysql -uroot -h127.0.0.1 -P9030
  • git clone --depth 1 --filter=blob:none --sparse https://github.com/<your-github-id>/doris-website.git && cd doris-website && git sparse-checkout set docs/key-features versioned_docs/version-4.x/key-features
호스트
127.0.0.1
포트
9030
사용자
root비밀번호 없음
데이터베이스
본인의 값, 예: fts_demo
2

과제 선택

6 기능 페이지 중 하나를 고르세요. 일찍 끝났다면 다른 과제도 선택하세요. 과제마다 별도의 풀 리퀘스트를 만듭니다.

전문 검색 + BM25

30~45분 · 수정 대상 key-features/full-text-search.mdx

시작점전문 검색+ BM25

데모에서 입증할 내용

팁

페이지의 연산자 표에 다음의 모든 형식이 나와 있습니다: MATCH_* . 다음을 선택하고 score() 그대로 정렬하세요. 다음처럼 식으로 감싸 정렬하면 ROUND(score()), 거부됩니다.

벡터 검색

30~45분 · 수정 대상 key-features/vector-index.mdx

시작점벡터 인덱스

데모에서 입증할 내용

팁

모든 벡터에는 정확히 다음 개수의 dim 숫자가 필요합니다. 쿼리 벡터도 마찬가지이며 맞지 않으면 차원 오류로 실패합니다.

하이브리드 검색

30~45분 · 수정 대상 key-features/hybrid-search.mdx

시작점하이브리드 검색+ Reciprocal Rank Fusion

데모에서 입증할 내용

팁

score() 는 벡터 순위 쿼리에서 선택할 수 없고 다음 안에 넣을 수도 없습니다: ROW_NUMBER(): 가공하지 않은 다음 값을 정렬하고 score() 바깥 쿼리에서 처리하세요. RRF 페이지와 같은 방식입니다.

VARIANT

30~45분 · 수정 대상 key-features/variant-data-type.mdx

시작점VARIANT 데이터 타입

데모에서 입증할 내용

팁

variant_type(payload) 는 한 행에서 Doris가 추론한 경로와 타입을 표시합니다. 다음 결과와 비교하세요: DESC 출력.

Unique Key + Sequence Column

30~45분 · 수정 대상 key-features/unique-key.mdx

시작점Unique Key

데모에서 입증할 내용

팁

세 번의 쓰기를 하나의 INSERT와 세 개의 별도 INSERT로 각각 실행하세요. 결과는 같아야 합니다.

Stream Load

30~60분 · 수정 대상 key-features/stream-load.mdx

시작점Stream Load

데모에서 입증할 내용

팁

다음 FE로 적재 요청을 보내세요: 127.0.0.1:8030 함께하는 curl --location-trusted: FE가 BE로 리디렉션하며 올인원 컨테이너가 두 포트 모두에서 응답합니다.

3

완성하기

풀 리퀘스트에 포함할 내용, 제출 방법 및 배지 안내.

풀 리퀘스트에 추가할 내용

다음 저장소에 풀 리퀘스트 하나를 만듭니다: apache/doris-website, 이것이 제출물입니다.

  • 데모 섹션## Step-by-step demo 을 Quick start 바로 뒤에 추가합니다. 체크리스트 항목마다 한 단계로 구성하고 SQL 블록 뒤에 다음을 적습니다: 예상 결과 에 실제 출력을 적습니다. 빈 클러스터에서 시작하므로 데모에서 데이터베이스도 생성합니다.
  • 두 페이지 모두동일한 변경을 다음 두 곳에 반영: docs/key-features/<page>.mdx 및 versioned_docs/version-4.x/key-features/<page>.mdx. 이 과제에서는 영문 페이지를 수정합니다. 번역은 별도로 유지 관리됩니다.
  • 수정 사항페이지의 다른 곳에서 발견한 오류도 같은 풀 리퀘스트에서 수정하세요. 오류인지 확실하지 않다면 설명에 적으세요.
  • 설명저장소의 풀 리퀘스트 템플릿(dev + 4.x, 영어)을 사용하고 과제 이름을 한 줄로 적으세요. 예: Apache Doris Hackathon · Track B · B1.

템플릿 대상:

B1 · 페이지 섹션full-text-search.mdx · 템플릿
## Step-by-step demo {#demo}One or two sentences: what this demo shows, from an empty cluster.### 1. A table with an inverted index (english parser, phrase support) on a text column```sqlCREATE DATABASE IF NOT EXISTS fts_demo;USE fts_demo;CREATE TABLE … ;```### 2. MATCH_ANY vs MATCH_ALL on the same words, with different row counts```sqlSELECT … ;```**Expected result**```+----+-------+| id | title |+----+-------+```### 3. A MATCH_PHRASE query that only matches when the words are adjacent```sqlSELECT … ;```**Expected result**```+----+-------+| id | title |+----+-------+```### 4. BM25 ranking: score() with ORDER BY … DESC LIMIT n, and why the top row wins```sqlSELECT … ;```**Expected result**```+----+-------+| id | title |+----+-------+```
B1 · 풀 리퀘스트제목 + 설명 · 템플릿
[docs] Add a step-by-step demo to the Full-text Search page## Versions- [x] dev- [x] 4.x- [ ] 3.x- [ ] 2.1 or older (not covered by version/language sync gate)## Languages- [ ] Chinese- [x] English(Keep the Docs Checklist from the template and tick what applies.)Apache Doris Hackathon · Track B · B1 Full-text Search + BM25This task updates the English source pages; both copies get the same change:- docs/key-features/full-text-search.mdx- versioned_docs/version-4.x/key-features/full-text-search.mdx## What this PR changes- Adds a "Step-by-step demo" section after Quick start that shows: …- Fixes on the page: … (or "none")## What I found in the docs- Where: … / The page says: … / What happened: … / What it should say: …## ValidationRan every statement from an empty cluster on apache/doris:all-in-one-4.1.3; every Expected result is the real output.

패널: 마지막으로 읽은 과제의 템플릿

완료 기준

체크리스트

제출하고 배지 받기

참여 → 제출 → 배지 받기.

  1. 풀 리퀘스트 만들기 대상: apache/doris-website, 본인 포크의 브랜치에서 만드세요. 풀 리퀘스트가 제출물이므로 별도로 작성할 것은 없습니다.

  2. 공유하기 공유할 곳: #dev 참여할 곳: Apache Doris Slack: 풀 리퀘스트 또는 저장소 링크와 함께 스크린샷이나 짧은 데모를 공유하세요. 질문, 제출, 배지 관련 안내는 모두 이곳에서 진행됩니다.

과제에 참여하는 모든 분께 다음 배지를 드립니다: Apache Doris Contributor 배지. Doris 프로젝트에 병합된 풀 리퀘스트가 없어도 됩니다. 마감일이 없으니 필요한 만큼 시간을 쓰세요. 팀 참여도 가능하지만 필수는 아닙니다. 모든 팀원의 GitHub ID를 다음에 적어주세요: 풀 리퀘스트 설명.

추가 도전 과제

  • 두 번째 과제 선택하기. 완료한 과제마다 별도의 풀 리퀘스트를 만드세요.

  • 빠른 시작을 넘어 도전하기. 테이블 설계, SQL 매뉴얼 등 페이지에서 연결된 긴 예제도 실행하세요. 이 부분은 검증 빈도가 낮습니다.

  • 다른 트랙 B 풀 리퀘스트 검토하기. 본인의 Doris에서 데모를 실행하고 결과를 댓글로 남기세요.

문제 해결 및 참고 자료

SymptomFix
docker: command not found (macOS)Docker Desktop을 시작하세요. 이미 실행 중이면 CLI 링크를 연결하세요: sudo ln -s /Applications/Docker.app/Contents/Resources/bin/docker /usr/local/bin/docker
error getting credentials 이미지를 내려받을 때삭제할 항목: credsStore 필드가 있는 파일: ~/.docker/config.json (로컬 개발 환경에서만)
port is already allocated다른 프로세스(주로 다른 Doris)가 9030, 8030 또는 8040 포트를 사용 중입니다. 실행 중인 컨테이너를 확인하세요(docker ps), 또는 다른 호스트 포트를 노출하세요. 예: -p 19030:9030, 이 경우 19030에 연결하세요
The container name "/doris" is already in use이전에 실행한 적이 있습니다: docker start doris. 처음부터 다시 시작하려면 docker rm -f doris (데이터가 삭제됩니다)
컨테이너가 종료되거나 다음 상태로 바뀌지 않음: (healthy)확인: docker logs doris. 대개 메모리 문제입니다. Docker Desktop에 6 GB 이상을 할당하세요(Settings → Resources). Apple Silicon에서는 다음을 추가하지 마세요: --platform linux/amd64
permission denied: ./doris.sh압축 해제 도구가 실행 권한을 제거했습니다: chmod +x doris.sh, 또는 다음 실행: bash doris.sh start
Current database is not set실행: USE hackathon; 를 먼저 실행하거나 다음으로 연결하세요: -Dhackathon
score() function requires WHERE clause with MATCH function, ORDER BY and LIMIT다음 추가: MATCH_* 조건자, ORDER BY score() DESC 및 LIMIT그리고 다음을 유지하세요: score() 를 다른 식으로 감싸지 마세요(위의 함정 참고)
풀 리퀘스트의 Build Check 실패검사 로그를 여세요. 보통 MDX 문제입니다. 닫히지 않은 태그나 본문에 그대로 쓴 { 또는 < 를 확인하세요. 코드 블록 안에서는 문제없습니다.
B6: curl 가 아무것도 출력하지 않거나 다음을 출력함: 307추가: --location-trusted: FE가 적재를 BE로 리디렉션하므로 curl이 인증 정보를 유지한 채 따라가야 합니다
B6: Label Already Exists재실행 시 정상 동작입니다. 같은 레이블로는 한 번만 적재됩니다. 파일을 다시 적재하려면 새 레이블을 사용하세요
10분 이상 해결하지 못한 경우게시할 곳: #dev 참여할 곳: Apache Doris Slack

참고 자료

전문 검색벡터 인덱스하이브리드 검색VARIANT 데이터 타입Unique KeyStream LoadReciprocal Rank Fusion문서 기여 가이드문서 형식 명세풀 리퀘스트 가이드

Apache Doris 해커톤

전체 과제

강좌로 돌아가기
  1. A160~120분하이브리드 검색 앱과제 개요 열기
  2. A245~90분MCP로 Doris에 질문하기과제 개요 열기
  3. A360~120분로그 검색 탐색기과제 개요 열기
  4. A460~120분에이전트 트레이스 탐색기과제 개요 열기
  5. B30~60분트랙 B · 문서에서 데모로현재 위치