일괄 데이터 수집

Manufacturing Data Engine (MDE)에 데이터를 수집하는 기본 방법은 Manufacturing Connect edge (MCe)를 통해 스트리밍하거나 Pub/Sub에 메시지를 전송하는 것이지만 파일을 일괄로 수집할 수도 있습니다. 이는 데이터를 재처리하거나 외부 시스템에서 데이터를 가져오는 데 유용할 수 있습니다.

일괄 로드는 웹 인터페이스 또는 API를 사용하여 IngestionSpecification을 만든 다음 MDE에서 설정한 Cloud Storage 버킷의 폴더에 하나 이상의 파일을 업로드하는 방식으로 작동합니다. 이 버킷은 기본적으로 <project-id>-batch-ingestion이라는 이름을 갖습니다. 새 파일이 이 버킷에 업로드되면 Cloud Storage Reader Dataflow 작업에서 이를 감지하고, 작업은 파일을 개별 메시지로 분할한 후 각 메시지를 input-messages Pub/Sub 주제로 전송합니다.

지원되는 형식

일괄 로드는 다음 데이터 형식을 지원합니다.

  • JSON: 줄바꿈으로 구분됩니다. 각 줄은 새 메시지로 전송됩니다.
  • CSV: 헤더가 있거나 없는 경우 (정의 가능), 행 건너뛰기 및 다양한 구분 기호를 지원합니다. 메시지는 각 헤더 열을 키로, 해당 행 열을 값으로 사용하여 JSON으로 변환됩니다.
  • AVRO: AVRO의 각 행을 JSON에 매핑합니다.
  • AVRO_RAW_WRITER: Cloud Storage Writer에서 작성한 처리되지 않은 메시지를 읽고 Pub/Sub 메시지 ID를 유지하면서 각 메시지를 다시 작성합니다.

구성

Cloud Storage Reader가 파일을 처리하려면 예상되는 파일 유형, 옵션, 업로드될 폴더를 정의하는 File Ingestion Specification이 필요합니다.

모든 형식에는 다음 매개변수가 필요합니다.

  • name: File Ingestion Specification의 이름입니다.
  • folderName: 이 File Ingestion Specification 의 파일이 업로드될 폴더입니다.
  • source: 사용할 형식 (JSON/CSV/AVRO/AVRO_RAW_WRITER)입니다.

또한 CSV 소스는 다음을 지원합니다.

  • separator: 사용할 구분 기호입니다 (제공되지 않은 경우 ,가 사용됨).
  • skip_rows: CSV 파일 읽기를 시작하기 전에 행을 건너뛸지 여부입니다.
  • headers:
    • infer_headers: 읽은 첫 번째 행에서 헤더를 추론해야 하는지 여부입니다.
    • headerNames: 사용할 헤더 이름의 정렬된 목록을 제공합니다.
  • insert_metadata: 수집된 파일과 관련된 메타데이터 (filePath, fileName, ingestionName)를 포함할지 여부입니다. 이러한 메타데이터는 전송된 메시지에 추가 키-값 쌍으로 추가됩니다.

구성 예시

이 섹션에는 일괄 로드를 위한 몇 가지 구성 예시가 포함되어 있습니다.

줄바꿈 JSON으로 구분된 파일 수집

REST

POST configuration/v1/ingestions

{
  "name": "json-simple",
  "source": "JSON",
  "folderName": "jsonFiles"
}

콘솔

  1. File Ingestion Specification 의 구성에 액세스합니다.
  2. 'Cloud Management' 섹션의 상단 메뉴에서 FILE INGESTION 섹션을 엽니다.

    파일 수집 - 파일 수집 사양 나열

  3. 기존 File Ingestion SpecificationsFILE INGESTION 섹션에 나열됩니다 . 각 수집 사양 측면에 있는 'Actions' 아이콘을 사용하여 수정, 사용 설정, 사용 중지 또는 삭제할 수 있습니다.

    파일 수집 - 수집 사양에서 사용할 수 있는 작업

  4. File Ingestion Specification 을 만들려면 'ADD NEW INGESTION SPECIFICATION' 을 클릭합니다. 새 **File Ingestion Specification**을 정의하는 데 필요한 모든 매개변수가 포함된 새 사이드 메뉴가 화면 오른쪽에 표시됩니다.

    파일 처리 - 새로운 파일 처리 사양

  5. 줄바꿈 JSON으로 구분된 파일 수집 사양을 만들려면 'Source Type' 메뉴에서 JSON을 선택하고 이 예시에서 다음 두 가지 필수 매개변수를 제공합니다.

    • name: File Ingestion Specification의 이름입니다.
    • folderName: 이 File Ingestion Specification의 파일이 업로드될 폴더입니다.

    파일 수집 - 새로운 JSON 파일 수집 사양

  6. 매개변수가 완료되면 'CREATE'를 클릭합니다. 새 파일 수집 사양이 생성되면 확인 메시지가 표시됩니다.

AVRO 파일 수집

REST

POST configuration/v1/ingestions

{
  "name": "avro-simple",
  "source": "AVRO",
  "folderName": "avroFiles"
}

콘솔

  1. File Ingestion Specification 의 구성에 액세스합니다.
  2. 'Cloud Management' 섹션의 상단 메뉴에서 FILE INGESTION 섹션을 엽니다.

    파일 수집 - 파일 수집 사양 나열

  3. 기존 File Ingestion SpecificationsFILE INGESTION 섹션에 나열됩니다 . 각 수집 사양 측면에 있는 'Actions' 아이콘을 사용하여 수정, 사용 설정, 사용 중지 또는 삭제할 수 있습니다.

    파일 수집 - 수집 사양에서 사용할 수 있는 작업

  4. File Ingestion Specification 을 만들려면 ADD NEW INGESTION SPECIFICATION 을 클릭합니다.

  5. 새 **File Ingestion Specification**을 정의하는 데 필요한 모든 매개변수가 포함된 새 사이드 메뉴가 화면 오른쪽에 표시됩니다.

    파일 처리 - 새로운 파일 처리 사양

  6. AVRO 파일 수집 사양을 만들려면 'Source Type' 메뉴에서 AVRO를 선택합니다.

  7. 이 예시에서 다음 두 가지 필수 매개변수를 제공합니다.

    • name: File Ingestion Specification의 이름입니다.
    • folderName: 이 File Ingestion Specification의 파일이 업로드될 폴더입니다.

    파일 처리 - 새로운 AVRO 파일 처리 사양

  8. 매개변수가 완료되면 'CREATE'를 클릭합니다. 새 파일 수집 사양이 생성되면 확인 메시지가 표시됩니다.

헤더에서 열 이름을 추론하여 CSV 파일 수집

REST

POST configuration/v1/ingestions

{
  "name": "csv-simple",
  "source": "CSV",
  "folderName": "csv-simple",
  "separator": ",",
  "headers": {
    "inferHeaders": true
  }
}

콘솔

  1. Manufacturing Connect 웹 인터페이스 로 이동합니다.
  2. File Ingestion Specification 의 구성에 액세스합니다.
  3. 'Cloud Management' 섹션의 상단 메뉴에서 FILE INGESTION 섹션을 엽니다.

    파일 수집 - 파일 수집 사양 나열

  4. 기존 File Ingestion SpecificationsFILE INGESTION 섹션에 나열됩니다 . 각 수집 사양 측면에 있는 'Actions' 아이콘을 사용하여 수정, 사용 설정, 사용 중지 또는 삭제할 수 있습니다.

    파일 수집 - 수집 사양에서 사용할 수 있는 작업

  5. File Ingestion Specification 을 만들려면 ADD NEW INGESTION SPECIFICATION 을 클릭합니다.

  6. 새 **File Ingestion Specification**을 정의하는 데 필요한 모든 매개변수가 포함된 새 사이드 메뉴가 화면 오른쪽에 표시됩니다.

    파일 처리 - 새로운 파일 처리 사양

  7. File Ingestion Specification 을 만들려면 'ADD NEW INGESTION SPECIFICATION' 을 클릭합니다.

  8. 새 사이드 메뉴가 화면 오른쪽에 표시되며 정의하는 데 필요한 모든 매개변수가 포함됩니다.

    File Ingestion Specification:

    파일 처리 - 새로운 파일 처리 사양

  9. 헤더에서 열 이름을 추론하는 CSV 파일 수집 사양을 만들려면 'Source Type' 메뉴에서 CSV 를 선택하고 이 예시에서 다음 7가지 필수 매개변수를 제공합니다.

    • name: File Ingestion Specification의 이름입니다.
    • folderName: 이 File Ingestion Specification의 파일이 업로드될 폴더입니다.
    • separator: 사용할 구분 기호입니다 (제공되지 않은 경우 ,가 사용됨).
    • skip_rows: CSV 파일 읽기를 시작하기 전에 행을 건너뛸지 여부입니다.
    • headers:
    • infer_headers: 읽은 첫 번째 행에서 헤더를 추론해야 하는지 여부입니다. 헤더에서 열 이름을 추론하려면 'YES'를 선택합니다.
    • insert_metadata: 수집된 파일 과 관련된 메타데이터 (filePath, fileName, ingestionName)를 포함할지 여부입니다.

    파일 수집 - 새로운 CSV 파일 수집 사양

  10. 매개변수가 완료되면 'CREATE'를 클릭합니다.

  11. 새 파일 수집 사양이 생성되면 확인 메시지가 표시됩니다.

열 이름을 제공하고 수집 메타데이터를 추가하여 CSV 파일 수집

REST

POST configuration/v1/ingestions

{
  "name": "csv-headers-metadata",
  "source": "CSV",
  "folderName": "csv-headers",
  "separator": ",",
  "insertMetadata": true,
  "headers": {
    "headerNames": {
      "names": ["one", "two", "three"]
    }
  }
}

콘솔

  1. File Ingestion Specification 의 구성에 액세스합니다.
  2. 'Cloud Management' 섹션의 상단 메뉴에서 FILE INGESTION 섹션을 엽니다.

    파일 수집 - 파일 수집 사양 나열

  3. 기존 File Ingestion SpecificationsFILE INGESTION 섹션에 나열됩니다 . 각 수집 사양 측면에 있는 'Actions' 아이콘을 사용하여 수정, 사용 설정, 사용 중지 또는 삭제할 수 있습니다.

    파일 수집 - 수집 사양에서 사용할 수 있는 작업

  4. File Ingestion Specification 을 만들려면 ADD NEW INGESTION SPECIFICATION 을 클릭합니다.

  5. 새 **File Ingestion Specification**을 정의하는 데 필요한 모든 매개변수가 포함된 새 사이드 메뉴가 화면 오른쪽에 표시됩니다.

    파일 처리 - 새로운 파일 처리 사양

  6. 열 이름을 제공하고 수집 메타데이터를 추가하는 CSV 파일 수집 사양을 만들려면 'Source Type' 에서 CSV 를 선택합니다.

  7. 이 예시에서 다음 8가지 필수 매개변수를 제공합니다.

    • name: File Ingestion Specification의 이름입니다.
    • folderName: 이 File Ingestion Specification의 파일이 업로드될 폴더입니다.
    • separator: 사용할 구분 기호입니다 (제공되지 않은 경우 ,가 사용됨).
    • skip_rows: CSV 파일 읽기를 시작하기 전에 행을 건너뛸지 여부입니다.
    • headers:
      • infer_headers: 읽은 첫 번째 행에서 헤더를 추론해야 하는지 여부입니다. 헤더에서 열 이름을 추론하지 않으려면 'NO'를 선택합니다.
      • headerNames: 사용할 헤더 이름의 정렬된 목록을 제공합니다.
    • insert_metadata: 수집된 파일 과 관련된 메타데이터 (filePath, fileName, ingestionName)를 포함할지 여부입니다.

    파일 수집 - 새로운 고급 CSV 파일 수집 사양

  8. 매개변수가 완료되면 'CREATE' 버튼을 클릭합니다. 새 파일 수집 사양이 생성되면 확인 메시지가 표시됩니다.

헤더 이름을 추론하고 파일을 읽기 전에 5개 행을 건너뛰어 CSV 파일 수집

REST

POST configuration/v1/ingestions

{
  "name": "csv-skip-rows",
  "source": "CSV",
  "folderName": "csv-skip",
  "skipRows": 5,
  "separator": ",",
  "headers": {
    "inferHeaders": true
  }
}

콘솔

  1. File Ingestion Specification 의 구성에 액세스합니다.
  2. 'Cloud Management' 섹션의 상단 메뉴에서 FILE INGESTION 섹션을 엽니다.

    파일 수집 - 파일 수집 사양 나열

  3. 기존 File Ingestion SpecificationsFILE INGESTION 섹션에 나열됩니다 . 각 수집 사양 측면에 있는 'Actions' 아이콘을 사용하여 수정, 사용 설정, 사용 중지 또는 삭제할 수 있습니다.

    파일 수집 - 수집 사양에서 사용할 수 있는 작업

  4. File Ingestion Specification 을 만들려면 ADD NEW INGESTION SPECIFICATION 을 클릭합니다.

  5. 새 **File Ingestion Specification**을 정의하는 데 필요한 모든 매개변수가 포함된 새 사이드 메뉴가 화면 오른쪽에 표시됩니다.

    파일 처리 - 새로운 파일 처리 사양

  6. 헤더 이름을 추론하고 5개 행을 건너뛰는 CSV 파일 수집 사양을 만들려면 'Source Type' 메뉴에서 CSV를 선택합니다.

  7. 이 예시에서 다음 7가지 필수 매개변수를 제공합니다.

    • name: File Ingestion Specification의 이름입니다.
    • folderName: 이 File Ingestion Specification의 파일이 업로드될 폴더입니다.
    • separator: 사용할 구분 기호입니다 (제공되지 않은 경우 ,가 사용됨).
    • skip_rows: 건너뛸 행 수를 선택합니다(이 경우 5).
    • headers:
      • infer_headers: 읽은 첫 번째 행에서 헤더를 추론해야 하는지 여부입니다. 헤더에서 열 이름을 추론하려면 'YES'를 선택합니다.
    • insert_metadata: 수집된 파일 과 관련된 메타데이터 (filePath, fileName, ingestionName)를 포함할지 여부입니다.

    파일 수집 - 새로운 행 건너뛰기 CSV 파일 수집 사양

  8. 매개변수가 완료되면 'CREATE'를 클릭합니다.

  9. 새 파일 수집 사양이 생성되면 확인 메시지가 표시됩니다.

Cloud Storage Writer 원시 경로로 생성된 AVRO 파일 수집

REST

POST configuration/v1/ingestions

{
  "name": "avro-reprocess",
  "source": "AVRO_RAW_WRITER",
  "folderName": "avro-raw"
}

이는 파일을 재처리해야 하는 경우 특히 유용합니다. 원시 파일 폴더의 날짜 파티션을 사용하여 필요한 시간 범위의 파일만 복사할 수 있습니다. 예를 들면 다음과 같습니다.

gcloud storage cp "gs://<project-id>-raw/v1/dt=2023-06-19/*" \
gs://<project-id>-batch-ingestion/avro-raw/

콘솔

  1. File Ingestion Specification 의 구성에 액세스합니다.
  2. 'Cloud Management' 섹션의 상단 메뉴에서 FILE INGESTION 섹션을 엽니다.

    파일 수집 - 파일 수집 사양 나열

  3. 기존 File Ingestion SpecificationsFILE INGESTION 섹션에 나열됩니다 . 각 수집 사양 측면에 있는 'Actions' 아이콘을 사용하여 수정, 사용 설정, 사용 중지 또는 삭제할 수 있습니다.

    파일 수집 - 수집 사양에서 사용할 수 있는 작업

  4. File Ingestion Specification 을 만들려면 ADD NEW INGESTION SPECIFICATION 을 클릭합니다.

  5. 새 **File Ingestion Specification**을 정의하는 데 필요한 모든 매개변수가 포함된 새 사이드 메뉴가 화면 오른쪽에 표시됩니다.

    파일 처리 - 새로운 파일 처리 사양

  6. Cloud Storage Writer 원시 경로로 생성된 AVRO 파일 수집 사양을 만들려면 AVRO Raw'Source Type' 메뉴에서 선택하고 이 예시에서 다음 두 가지 필수 매개변수를 제공합니다.

    • name: File Ingestion Specification의 이름입니다.
    • folderName: 이 File Ingestion Specification의 파일이 업로드될 폴더입니다.

    파일 수집 - 새로운 AVRO 원시 파일 수집 사양

  7. 매개변수가 완료되면 'CREATE'를 클릭합니다.

  8. 새 파일 수집 사양이 생성되면 확인 메시지가 표시됩니다.

이는 파일을 재처리해야 하는 경우 특히 유용합니다. 원시 파일 폴더의 날짜 파티션을 사용하여 필요한 시간 범위의 파일만 복사할 수 있습니다. 예를 들면 다음과 같습니다.

  gcloud storage cp "gs://<project-id>-raw/v1/dt=2023-06-19/*" \
  gs://<project-id>-batch-ingestion/avro-raw/