Ingerir dados em lote
Embora a principal maneira de ingerir dados no Manufacturing Data Engine (MDE) seja usando streaming pela borda do Manufacturing Connect (MCe) ou enviando mensagens ao Pub/Sub, também é possível ingerir arquivos em lote. Isso pode ser útil para reprocessar dados ou importar dados de sistemas externos.
O carregamento em lote funciona criando um IngestionSpecification usando a interface da Web ou a API e fazendo o upload de um ou mais arquivos para uma pasta em um bucket do Cloud Storage configurado pelo MDE, que, por padrão, tem o nome <project-id>-batch-ingestion. Quando um novo arquivo é enviado para esse bucket, ele é detectado pelo job do Dataflow do leitor do Cloud Storage. O job divide o arquivo em cada mensagem individual e envia cada uma delas para o tópico do Pub/Sub input-messages.
Formatos compatíveis
O carregamento em lote oferece suporte aos seguintes formatos de dados:
- JSON: delimitado por nova linha. Cada linha será enviada como uma nova mensagem.
- CSV: com ou sem cabeçalhos (podem ser definidos), oferece suporte a pular linhas e diferentes separadores. A mensagem é convertida em JSON usando cada coluna de cabeçalho como chave e a coluna de linha correspondente como valor.
- AVRO: mapeia cada linha do AVRO para JSON.
- AVRO_RAW_WRITER: lê as mensagens não processadas gravadas pelo gravador do Cloud Storage e grava cada mensagem de volta, preservando o ID da mensagem do Pub/Sub.
Configuração
Para que o leitor do Cloud Storage processe arquivos, ele precisa de uma File Ingestion Specification que defina o tipo de arquivo esperado, as opções e a pasta em que ele será enviado.
Todos os formatos exigem os seguintes parâmetros:
- name: nome para o
File Ingestion Specification. - folderName: Pasta em que os arquivos para este
File Ingestion Specificationserão enviados. - source: formato a ser usado (
JSON/CSV/AVRO/AVRO_RAW_WRITER).
Além disso, a origem CSV oferece suporte ao seguinte:
- separator: separador a ser usado (
,será usado se nenhum for fornecido). - skip_rows: se alguma linha deve ser ignorada antes de começar a ler o arquivo CSV.
- headers:
- infer_headers: se os cabeçalhos devem ser inferidos pela primeira linha lida.
- headerNames: fornece uma lista ordenada de nomes de cabeçalho a serem usados.
- insert_metadata: se os metadados relacionados ao arquivo
ingerido (
filePath,fileName,ingestionName) devem ser incluídos. Eles são adicionados como pares de chave-valor extras à mensagem enviada.
Exemplos de configurações
Esta seção contém alguns exemplos de configurações para carregamento em lote.
Ingerir arquivos JSON delimitados por nova linha
REST
POST configuration/v1/ingestions
{
"name": "json-simple",
"source": "JSON",
"folderName": "jsonFiles"
}
Console
- Acesse a configuração da File Ingestion Specification.
Abra a seção FILE INGESTION no menu superior da 'Cloud Management' seção.

As File Ingestion Specifications atuais estão listadas na seção FILE INGESTION . Elas podem ser modificadas, ativadas, desativadas ou excluídas usando o ícone 'Actions' ao lado de cada especificação de ingestão.

Para criar uma nova File Ingestion Specification clique em 'ADD NEW INGESTION SPECIFICATION'. Um novo menu lateral será exibido à direita da tela contendo todos os parâmetros necessários para definir a nova File Ingestion Specification:

Para criar uma nova especificação de ingestão de arquivos JSON delimitados por nova linha selecione JSON no menu 'Source Type' e forneça os dois parâmetros obrigatórios. Neste exemplo:
- name: nome da File Ingestion Specification.
- folderName: Pasta em que os arquivos dessa File Ingestion Specification serão enviados.

Depois que os parâmetros forem concluídos, clique em 'CREATE'. Se a nova especificação de ingestão de arquivos tiver sido criada, uma mensagem de confirmação será exibida.
Ingerir arquivos AVRO
REST
POST configuration/v1/ingestions
{
"name": "avro-simple",
"source": "AVRO",
"folderName": "avroFiles"
}
Console
- Acesse a configuração da File Ingestion Specification.
Abra a seção FILE INGESTION no menu superior da 'Cloud Management' seção.

As File Ingestion Specifications atuais estão listadas na seção FILE INGESTION . Elas podem ser modificadas, ativadas, desativadas ou excluídas usando o ícone 'Actions' ao lado de cada especificação de ingestão.

Para criar uma nova File Ingestion Specification , clique em ADD NEW INGESTION SPECIFICATION.
Um novo menu lateral será exibido à direita da tela contendo todos os parâmetros necessários para definir a nova File Ingestion Specification:

Para criar uma nova especificação de ingestão de arquivo AVRO , selecione AVRO em o menu 'Source Type'.
Forneça os dois parâmetros obrigatórios. Neste exemplo:
- name: nome da File Ingestion Specification.
- folderName: Pasta em que os arquivos dessa File Ingestion Specification serão enviados.

Depois que os parâmetros forem concluídos, clique em 'CREATE'. Se a nova especificação de ingestão de arquivos tiver sido criada, uma mensagem de confirmação será exibida.
Ingerir arquivos CSV inferindo nomes de colunas de cabeçalhos
REST
POST configuration/v1/ingestions
{
"name": "csv-simple",
"source": "CSV",
"folderName": "csv-simple",
"separator": ",",
"headers": {
"inferHeaders": true
}
}
Console
- Acesse a interface da Web do Manufacturing Connect.
- Acesse a configuração da File Ingestion Specification.
Abra a seção FILE INGESTION no menu superior da 'Cloud Management' seção.

As File Ingestion Specifications atuais estão listadas na seção FILE INGESTION . Elas podem ser modificadas, ativadas, desativadas ou excluídas usando o ícone 'Actions' ao lado de cada especificação de ingestão.

Para criar uma nova File Ingestion Specification , clique em ADD NEW INGESTION SPECIFICATION.
Um novo menu lateral será exibido à direita da tela contendo todos os parâmetros necessários para definir a nova File Ingestion Specification:

Para criar uma nova File Ingestion Specification clique no 'ADD NEW INGESTION SPECIFICATION'.
Um novo menu lateral será exibido à direita da tela contendo todos os parâmetros necessários para definir.
File Ingestion Specification:

Para criar uma nova especificação de ingestão de arquivos CSV inferindo nomes de colunas de cabeçalhos, selecione CSV no menu 'Source Type' e forneça os sete parâmetros obrigatórios. Neste exemplo:
- name: nome da File Ingestion Specification.
- folderName: Pasta em que os arquivos dessa File Ingestion Specification serão enviados.
- separator: separador a ser usado (
,será usado se nenhum for fornecido). - skip_rows: se alguma linha deve ser ignorada antes de começar a ler o arquivo CSV.
- headers:
- infer_headers: se os cabeçalhos devem ser inferidos pela primeira linha lida. Selecione 'YES' para inferir nomes de colunas de cabeçalhos.
- insert_metadata: se os metadados relacionados ao arquivo ingerido (filePath, fileName, ingestionName) devem ser incluídos.

Depois que os parâmetros forem concluídos, clique em 'CREATE'.
Se a nova especificação de ingestão de arquivos tiver sido criada, uma mensagem de confirmação será exibida.
Ingerir arquivos CSV fornecendo nomes de colunas e adicionando metadados de ingestão
REST
POST configuration/v1/ingestions
{
"name": "csv-headers-metadata",
"source": "CSV",
"folderName": "csv-headers",
"separator": ",",
"insertMetadata": true,
"headers": {
"headerNames": {
"names": ["one", "two", "three"]
}
}
}
Console
- Acesse a configuração da File Ingestion Specification.
Abra a seção FILE INGESTION no menu superior da 'Cloud Management' seção.

As File Ingestion Specifications atuais estão listadas na seção FILE INGESTION . Elas podem ser modificadas, ativadas, desativadas ou excluídas usando o ícone 'Actions' ao lado de cada especificação de ingestão.

Para criar uma nova File Ingestion Specification , clique em ADD NEW INGESTION SPECIFICATION.
Um novo menu lateral será exibido à direita da tela contendo todos os parâmetros necessários para definir a nova File Ingestion Specification:

Para criar uma nova especificação de ingestão de arquivos CSV fornecendo nomes de colunas e adicionando metadados de ingestão, selecione CSV no'Source Type'.
Forneça os oito parâmetros obrigatórios. Neste exemplo:
- name: nome da File Ingestion Specification.
- folderName: Pasta em que os arquivos dessa File Ingestion Specification serão enviados.
- separator: separador a ser usado (
,será usado se nenhum for fornecido). - skip_rows: se alguma linha deve ser ignorada antes de começar a ler o arquivo CSV.
- headers:
- infer_headers: se os cabeçalhos devem ser inferidos pela primeira linha lida. Selecione 'NO' para não inferir nomes de colunas de cabeçalhos.
- headerNames: fornece uma lista ordenada de nomes de cabeçalho a serem usados.
- insert_metadata: se os metadados relacionados ao arquivo ingerido (filePath, fileName, ingestionName) devem ser incluídos.

Depois que os parâmetros forem concluídos, clique no botão 'CREATE'. Se a nova especificação de ingestão de arquivos tiver sido criada, uma mensagem de confirmação será exibida.
Ingerir arquivos CSV inferindo nomes de cabeçalho e ignorando 5 linhas antes de começar a ler o arquivo
REST
POST configuration/v1/ingestions
{
"name": "csv-skip-rows",
"source": "CSV",
"folderName": "csv-skip",
"skipRows": 5,
"separator": ",",
"headers": {
"inferHeaders": true
}
}
Console
- Acesse a configuração da File Ingestion Specification.
Abra a seção FILE INGESTION no menu superior da 'Cloud Management' seção.

As File Ingestion Specifications atuais estão listadas na seção FILE INGESTION . Elas podem ser modificadas, ativadas, desativadas ou excluídas usando o ícone 'Actions' ao lado de cada especificação de ingestão.

Para criar uma nova File Ingestion Specification , clique em ADD NEW INGESTION SPECIFICATION.
Um novo menu lateral será exibido à direita da tela contendo todos os parâmetros necessários para definir a nova File Ingestion Specification:

Para criar uma nova especificação de ingestão de arquivos CSV inferindo nomes de cabeçalho e ignorando 5 linhas , selecione CSV no menu 'Source Type'.
Forneça os sete parâmetros obrigatórios. Neste exemplo:
- name: nome da File Ingestion Specification.
- folderName: Pasta em que os arquivos dessa File Ingestion Specification serão enviados.
- separator: separador a ser usado (
,será usado se nenhum for fornecido). - skip_rows: selecione o número de linhas a serem ignoradas. Neste caso, 5.
- headers:
- infer_headers: se os cabeçalhos devem ser inferidos pela primeira linha lida. Selecione 'YES' para inferir nomes de colunas de cabeçalhos.
- insert_metadata: se os metadados relacionados ao arquivo ingerido (filePath, fileName, ingestionName) devem ser incluídos.

Depois que os parâmetros forem concluídos, clique em 'CREATE'.
Se a nova especificação de ingestão de arquivos tiver sido criada, uma mensagem de confirmação será exibida.
Ingerir arquivos AVRO gerados pelo caminho bruto do gravador do Cloud Storage
REST
POST configuration/v1/ingestions
{
"name": "avro-reprocess",
"source": "AVRO_RAW_WRITER",
"folderName": "avro-raw"
}
Isso é especialmente útil se você precisar reprocessar arquivos. É possível usar a partição de data na pasta de arquivos brutos para copiar apenas os arquivos do período necessário. Exemplo:
gcloud storage cp "gs://<project-id>-raw/v1/dt=2023-06-19/*" \
gs://<project-id>-batch-ingestion/avro-raw/
Console
- Acesse a configuração da File Ingestion Specification.
Abra a seção FILE INGESTION no menu superior da 'Cloud Management' seção.

As File Ingestion Specifications atuais estão listadas na seção FILE INGESTION . Elas podem ser modificadas, ativadas, desativadas ou excluídas usando o ícone 'Actions' ao lado de cada especificação de ingestão.

Para criar uma nova File Ingestion Specification , clique em ADD NEW INGESTION SPECIFICATION.
Um novo menu lateral será exibido à direita da tela contendo todos os parâmetros necessários para definir a nova File Ingestion Specification:

Para criar uma nova especificação de ingestão de arquivos AVRO gerados pelos caminhos brutos do gravador do Cloud Storage, selecione AVRO Raw no menu 'Source Type' e forneça os dois parâmetros obrigatórios. Neste exemplo:
- name: nome da File Ingestion Specification.
- folderName: Pasta em que os arquivos dessa File Ingestion Specification serão enviados.

Depois que os parâmetros forem concluídos, clique em 'CREATE'.
Se a nova especificação de ingestão de arquivos tiver sido criada, uma mensagem de confirmação será exibida.
Isso é especialmente útil se você precisar reprocessar arquivos. É possível usar a partição de data na pasta de arquivos brutos para copiar apenas os arquivos do período necessário. Por exemplo:
gcloud storage cp "gs://<project-id>-raw/v1/dt=2023-06-19/*" \
gs://<project-id>-batch-ingestion/avro-raw/