요청 예제
cURL
curl --fail-with-body -H "Authorization: Bearer YOUR_API_KEY" "https://api.redditdataapi.com/v1/posts?subreddit=python&limit=3"테이블 설계를 시작하는 게시물 세 개
연결이 성공했다고 분석에 쓸 테이블이 완성되는 것은 아닙니다. 각 컬럼의 의미, 빠진 값의 처리 규칙, 적재할 수 없는 행을 보관할 위치가 필요합니다. Reddit Data API는 이런 결정을 작은 입력에서 시험할 수 있도록 과거의 평면 레코드를 제공합니다. 데이터 엔지니어는 먼저 어떤 값을 받아들일지 정하고 그 규칙을 실제로 받은 객체와 비교할 수 있습니다.
첫 요청은 https://api.redditdataapi.com/v1/posts?subreddit=python&limit=3입니다. python 커뮤니티의 게시물을 최대 세 개 요청하며 무작위 표본이나 전체 조사를 제공하지 않습니다. 이 서비스는 Reddit과 공식적인 관계가 없는 독립적인 과거 아카이브이며 실시간 업데이트를 전달하지 않습니다. 예상한 공통 스키마 대신 실제 응답을 설계의 출발점으로 삼으세요. 처음부터 모든 게시물의 필드가 같다고 판단할 근거는 없습니다.
원본 필드와 대상 컬럼을 연결하세요
관찰한 속성마다 대상 컬럼, 허용하는 자료형, 값이 없을 때의 처리를 적으세요. 존재하는 id를 직접 정한 source_record_id 컬럼에 문자열로 보존할 수 있습니다. created_utc는 값과 단위를 확인한 뒤 웨어하우스의 시간 자료형으로 변환하세요. 컬럼 이름과 변환은 자신의 설계이며 API가 대상 테이블에 맞는 내보내기 스키마를 생성하는 기능은 아닙니다.
score가 없는 상황과 점수가 0인 상황을 같게 처리하지 마세요. 속성 생략, 명시적인 null, 빈 문자열도 서로 다른 정보일 수 있습니다. 편한 기본값으로 차이를 지우기 전에 매핑 문서에 의미를 정하세요. 변환 규칙을 바꿀 때 다시 확인할 로컬 예제를 함께 두면 원본에 없던 값이 만들어지는 일을 발견하는 데 도움이 됩니다.
원본을 보관하고 행의 수락을 결정하세요
정규화하기 전에 받은 JSON을 보관하세요. 중간 단계에는 로컬 배치 식별자와 변환 버전을 붙이고 검사를 통과하지 못한 객체를 별도로 둘 수 있습니다. 거부 사유와 원본 객체를 함께 남기면 같은 페이지를 다시 요청하지 않고도 수정한 변환을 시험할 수 있습니다. 적재에 성공한 행만 보관하면 실패한 입력을 나중에 설명하기 어렵습니다.
저장한 파일의 재처리는 로컬 코드를 시험하는 방법이며 원격 아카이브를 고정하지 않습니다. 다음 응답이나 기록의 가용성, 전체 수집은 보장되지 않습니다. parent_id 또는 link_id가 있으면 로컬 관계를 만들 수 있지만 완전한 대화를 증명하지는 못합니다. 계산한 관계와 원본 필드를 분리해 테이블의 값이 어디서 나온 것인지 설명할 수 있게 하세요.
설명할 수 있는 배치만 적재하세요
수신 객체 수를 수락한 행, 거부한 행, 의도적으로 제외한 행과 대조하세요. 실제 키가 컬럼이나 공유 명세에 섞이지 않았는지 점검합니다. 결과물은 다른 엔지니어가 검토할 수 있는 필드 매핑과 적재 수락 절차입니다. 아카이브 전체의 형식에 대한 인증이나 커뮤니티 전체를 빠짐없이 모았다는 선언은 아닙니다. 검토자는 거부된 한 행에서 원본 객체로 이동하고 어떤 규칙이 적용되었는지 확인할 수 있어야 합니다. 원본을 지우지 않은 채 규칙의 변경 이유를 남기면 다음 배치와의 차이를 설명하기도 쉬워집니다.
가이드는 이 과정을 순서대로 다루며 문서는 조회 필터를 설명합니다. 성공한 조회는 빈 결과도 1크레딧이고 성공 1000회는 $1입니다. 결제 전에 이 도메인의 키를 받고 실제 잔액을 확인하세요. 다음 작업의 예산은 가격 페이지에서 검토하되 테이블에 들어간 행 수가 아니라 성공한 요청 수를 기준으로 잡으세요.