일괄 데이터 수집
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"
}
콘솔
- File Ingestion Specification 의 구성에 액세스합니다.
'Cloud Management' 섹션의 상단 메뉴에서 FILE INGESTION 섹션을 엽니다.

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

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

새 줄바꿈 JSON으로 구분된 파일 수집 사양을 만들려면 'Source Type' 메뉴에서 JSON을 선택하고 이 예시에서 다음 두 가지 필수 매개변수를 제공합니다.
- name: File Ingestion Specification의 이름입니다.
- folderName: 이 File Ingestion Specification의 파일이 업로드될 폴더입니다.

매개변수가 완료되면 'CREATE'를 클릭합니다. 새 파일 수집 사양이 생성되면 확인 메시지가 표시됩니다.
AVRO 파일 수집
REST
POST configuration/v1/ingestions
{
"name": "avro-simple",
"source": "AVRO",
"folderName": "avroFiles"
}
콘솔
- File Ingestion Specification 의 구성에 액세스합니다.
'Cloud Management' 섹션의 상단 메뉴에서 FILE INGESTION 섹션을 엽니다.

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

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

새 AVRO 파일 수집 사양을 만들려면 'Source Type' 메뉴에서 AVRO를 선택합니다.
이 예시에서 다음 두 가지 필수 매개변수를 제공합니다.
- name: File Ingestion Specification의 이름입니다.
- folderName: 이 File Ingestion Specification의 파일이 업로드될 폴더입니다.

매개변수가 완료되면 'CREATE'를 클릭합니다. 새 파일 수집 사양이 생성되면 확인 메시지가 표시됩니다.
헤더에서 열 이름을 추론하여 CSV 파일 수집
REST
POST configuration/v1/ingestions
{
"name": "csv-simple",
"source": "CSV",
"folderName": "csv-simple",
"separator": ",",
"headers": {
"inferHeaders": true
}
}
콘솔
- Manufacturing Connect 웹 인터페이스 로 이동합니다.
- File Ingestion Specification 의 구성에 액세스합니다.
'Cloud Management' 섹션의 상단 메뉴에서 FILE INGESTION 섹션을 엽니다.

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

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

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

헤더에서 열 이름을 추론하는 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)를 포함할지 여부입니다.

매개변수가 완료되면 'CREATE'를 클릭합니다.
새 파일 수집 사양이 생성되면 확인 메시지가 표시됩니다.
열 이름을 제공하고 수집 메타데이터를 추가하여 CSV 파일 수집
REST
POST configuration/v1/ingestions
{
"name": "csv-headers-metadata",
"source": "CSV",
"folderName": "csv-headers",
"separator": ",",
"insertMetadata": true,
"headers": {
"headerNames": {
"names": ["one", "two", "three"]
}
}
}
콘솔
- File Ingestion Specification 의 구성에 액세스합니다.
'Cloud Management' 섹션의 상단 메뉴에서 FILE INGESTION 섹션을 엽니다.

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

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

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

매개변수가 완료되면 'CREATE' 버튼을 클릭합니다. 새 파일 수집 사양이 생성되면 확인 메시지가 표시됩니다.
헤더 이름을 추론하고 파일을 읽기 전에 5개 행을 건너뛰어 CSV 파일 수집
REST
POST configuration/v1/ingestions
{
"name": "csv-skip-rows",
"source": "CSV",
"folderName": "csv-skip",
"skipRows": 5,
"separator": ",",
"headers": {
"inferHeaders": true
}
}
콘솔
- File Ingestion Specification 의 구성에 액세스합니다.
'Cloud Management' 섹션의 상단 메뉴에서 FILE INGESTION 섹션을 엽니다.

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

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

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

매개변수가 완료되면 'CREATE'를 클릭합니다.
새 파일 수집 사양이 생성되면 확인 메시지가 표시됩니다.
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/
콘솔
- File Ingestion Specification 의 구성에 액세스합니다.
'Cloud Management' 섹션의 상단 메뉴에서 FILE INGESTION 섹션을 엽니다.

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

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

Cloud Storage Writer 원시 경로로 생성된 AVRO 파일 수집 사양을 만들려면 AVRO Raw를 'Source Type' 메뉴에서 선택하고 이 예시에서 다음 두 가지 필수 매개변수를 제공합니다.
- name: File Ingestion Specification의 이름입니다.
- folderName: 이 File Ingestion Specification의 파일이 업로드될 폴더입니다.

매개변수가 완료되면 'CREATE'를 클릭합니다.
새 파일 수집 사양이 생성되면 확인 메시지가 표시됩니다.
이는 파일을 재처리해야 하는 경우 특히 유용합니다. 원시 파일 폴더의 날짜 파티션을 사용하여 필요한 시간 범위의 파일만 복사할 수 있습니다. 예를 들면 다음과 같습니다.
gcloud storage cp "gs://<project-id>-raw/v1/dt=2023-06-19/*" \
gs://<project-id>-batch-ingestion/avro-raw/