본 번역은 검증되지 않았습니다. AIP를 통해 영문원문으로부터 번역되었습니다.

스트림에 데이터 푸시하기

Foundry에서 대부분의 데이터 적재는 원본 시스템에서 데이터를 가져와 데이터셋 또는 스트림에 동기화하는 데 초점을 맞추고 있습니다.

스트림을 사용하면 Foundry는 이벤트 기반 워크플로를 지원하기 위해 푸시 기반 적재를 지원합니다.

Foundry에서 푸시 기반 레코드 적재는 일반적인 REST 서비스와 동일한 원칙을 따릅니다. 일련의 REST 엔드포인트를 통해 레코드를 소비하고 스트림 및 데이터셋에 쓸 수 있는 푸시 기반 API를 제공합니다. 스트림에 푸시하려면 다음 하이레벨 정보가 필요합니다:

  • 스트림의 데이터셋 리소스 식별자.
  • 브랜치 이름.
  • 요청을 인증하는 토큰.

이미 Foundry 소스가 데이터에 대해 구성되어 있는 경우 해당 소스와 연결하는 것이 좋습니다. 기존 소스와 함께 스트리밍 동기화 설정을 하는 방법이나 카프카 소스 설정하는 방법을 알아보세요.

아래에서는 스트림에 데이터를 푸시하는 데 필요한 단계를 설명합니다:

  1. 설정을 통해 새 스트림 생성.
  2. 스트림에 레코드 푸시하기.
  3. 스트림 공유하기.
  4. 스트림 테스트하기.

Part 1. 초기 설정

먼저, 스트림 생성 워크플로를 시작합니다.

  1. Foundry에 로그인합니다.
  2. 프로젝트로 이동합니다.
  3. 오른쪽 상단에 있는 + New을 선택합니다.
  4. 아래로 스크롤하여 Stream을 선택합니다.
Create stream

다음으로 스트림의 스키마, 처리량 및 키를 정의해야 합니다.

  • 스키마는 스트림 데이터의 구조와 유형을 정의합니다.
  • 처리량은 데이터 처리 속도를 나타내며 스트림에서 사용하는 파티션 수에 영향을 줍니다. 처리량파티션 문서에서 더 알아보세요.
  • 는 여러 파티션을 사용할 때 고유 ID에 대한 순서를 보장하는 데 사용됩니다. 스트리밍 키 문서에서 더 알아보세요.

이 튜토리얼에서는 간단한 단일 파티션 스트림을 만듭니다.

  • 스키마를 sensor_id: String, temperature: Double, created_at: Timestamp로 설정합니다.
  • 처리량을 Normal로 설정합니다.

그런 다음 스트림을 구성합니다.

  • 기존 JSON 블롭에서 스키마를 자동으로 생성하려면 Generate from JSON sample... 버튼을 선택하고 기존 JSON 블롭을 붙여넣습니다.
  • 관계형 데이터베이스에서 실시간 업데이트를 스트리밍하는 경우 변경 데이터 캡처를 설정합니다.
  • 스트림의 병렬 처리 요구 사항을 고려하여 처리량 설정이 더 높아야 하는지 결정합니다. 자세한 내용은 파티션 문서를 참조하세요.
  • 여러 파티션 사용시 순서 보장을 위해 키 설정을 고려하세요.
Define stream

모든 검증 오류는 Create stream을 선택하기 전에 처리해야 합니다. 페이지 하단의 툴팁 위로 마우스를 올려 놓으면 오류에 대한 자세한 내용을 볼 수 있습니다.

오른쪽 하단에 있는 Create stream 버튼을 선택하여 Connect 페이지로 이동합니다. 여기에서 스트리밍 데이터에 연결하는 방법을 지정할 수 있습니다.

Part 2. 스트림에 레코드 푸시하기

이제 스트림을 연결할 준비가 되었습니다.

  1. 푸시 기반 적재를 위해 Connect via API 섹션 아래의 옵션 중 하나를 선택합니다.

    HTTP 요청을 할 수 있는 모든 언어 또는 기술을 사용하여 레코드를 푸시할 수 있습니다. cURL, 파이썬, 노드를 통한 자바스크립트 및 자바 예제를 제공합니다. 데이터를 Foundry에 푸시하는 대신 Foundry 동기화를 통해 데이터를 적재하려면 스트리밍 동기화 설정하는 방법을 검토하세요.

    이 예제에서는 cURL을 선택합니다.

    Stream connection

    그러면 Push 데이터 워크플로 페이지로 이동합니다.

  2. 다음으로 인증 메커니즘을 선택합니다. 요청에 인증하기 위해 두 가지 방법을 지원합니다:

    • 제 3자 애플리케이션으로 푸시(권장): 이 방법은 OAuth2 워크플로를 사용하여 스트림에 레코드를 푸시하는 데 사용할 수 있는 안전한 토큰을 생성합니다.
    • 개인 토큰으로 푸시: 이 방법은 테스트 목적으로 사용자가 생성한 토큰을 사용합니다.
    Stream push options
  3. 이 튜토리얼에서는 제 3자 애플리케이션으로 푸시 방법을 선택합니다. 화면에 표시된 단계에 따라 제 3자 애플리케이션을 설정하고 클라이언트 시크릿을 생성합니다.

    Stream push third party auth
  4. 이제 Go to third-party applications을 선택하여 Foundry 플랫폼 설정에서 제 3자 애플리케이션 관리 페이지를 엽니다.

  5. 화면 오른쪽 상단에 있는 Register new application을 선택합니다.

    Third party new app
  6. 이름을 선택하고 클라이언트 유형을 Server application으로 설정합니다.

    Third party create app
  7. Create를 선택하면 클라이언트 ID와 시크릿이 표시됩니다.

    이 페이지를 떠난 후에는 클라이언트 시크릿에 접근할 수 없습니다. 안전한 위치에 저장하세요.

  8. 이제 Push 워크플로 페이지에 클라이언트 ID와 시크릿을 추가합니다.

    Add client secret
  9. 워크플로의 Configuring the Application 섹션 아래로 스크롤한 다음 Manage application을 선택하여 Foundry 플랫폼 설정에서 Third-party applications 관리 페이지를 엽니다.

    Configure third party app
  10. 다음으로 Client credentials grant 설정을 활성화합니다.

    Configure grant
  11. 마지막으로 오른쪽 상단에 있는 Save를 클릭합니다.

Part 3: 스트림 공유하기

이제 생성한 애플리케이션과 스트림을 공유해야 합니다.

  1. 먼저 Push 워크플로 페이지로 돌아갑니다. 워크플로의 Using Your New Application 섹션에서 생성한 클라이언트 ID를 찾습니다.

    Client ID
  2. 다음으로 오른쪽 상단에 있는 Share를 선택하여 스트림 Details 사이드바의 Roles 탭을 엽니다.

    Share third party app
  3. Roles 검색 필드에 클라이언트 ID를 복사하여 붙여넣어 생성한 애플리케이션을 찾습니다. **+**를 선택하여 Editor 역할을 검색하고 선택합니다.

  4. 사이드 패널 하단에 있는 Save를 선택하여 스트림을 공유합니다.

  5. 푸시 워크플로로 돌아가서 Next step을 선택합니다.

Part 4: 스트림 테스트하기

이제 스트림에 테스트 레코드를 푸시하는 데 사용할 수 있는 코드 예제가 제공됩니다. 코드 예제는 이전 단계에서 선택한 언어에 따라 다릅니다. 이 예제에서는 cURL을 사용합니다.

cURL 명령을 실행하기 전에 명령 줄 JSON 구문 분석을 위해 jQuery를 설치하세요.

  1. 먼저 첫 번째 상자에서 명령을 복사합니다. 이렇게 하면 Foundry의 OAuth2 엔드포인트를 호출하여 레코드를 푸시하는 데 사용할 수 있는 액세스 토큰이 제공됩니다.
Push records with cURL
  1. 맥, 윈도우 또는 리눅스 기계의 bash 터미널에서 명령을 실행합니다.

    명령이 실행되면 $ACCESS_TOKEN이라는 변수가 사용 가능해집니다. 이 변수는 다음 명령에서 레코드를 푸시하는 데 사용합니다.

    두 번째 명령은 cURL을 사용하여 Foundry 엔드포인트에 포스트 요청을 보내 스트림에 삽입하려는 레코드를 포함합니다. 명령은 스트림에 푸시할 더미 레코드로 자동 채워지지만 스트림의 스키마에 따라 HTTP 요청에서 사용할 수 있는 데이터를 제공할 수 있습니다.

  2. 두 번째 명령을 터미널에 붙여넣고 실행합니다.

    명령이 성공하면 스트림에 레코드가 표시됩니다.

    View records

스트림에 푸시하는 데이터를 변경하려면 포스트 요청의 데이터 매개 변수를 수정하세요.

[
  {
    "value": {
      "sensor_id": "sensor4",  // 센서 아이디
      "temperature": 4.132     // 온도
    }
  }
]

사용자 인터페이스에서 JSON으로 테스트 카드를 확장하여 스트림에 테스트 레코드를 보낼 수도 있습니다.

Test with JSON

다음 단계

이제 스트림에 데이터를 성공적으로 푸시했으므로, 데이터 변환을 시작할 준비가 되었습니다. 파이프라이닝 시작을 선택하여 Pipeline Builder 애플리케이션으로 이동하고 스트리밍 파이프라인을 빌드하십시오. 데이터 변환하는 방법을 배우고, Pipeline Builder에서 사용 가능한 다양한 변환에 대해 더 알아보기.