Modelo do BigQuery para o MongoDB

O modelo do BigQuery para o MongoDB é um pipeline em lote que lê linhas de um BigQuery e as escreve no MongoDB como documentos. Atualmente, cada linha é armazenada como um documento.

Requisitos do pipeline

  • A tabela de origem do BigQuery tem de existir.
  • A instância do MongoDB de destino deve estar acessível a partir das máquinas de trabalho do Dataflow.

Parâmetros de modelos

Parâmetros obrigatórios

  • mongoDbUri: o URI de ligação do MongoDB no formato mongodb+srv://:@.
  • base de dados: base de dados no MongoDB para armazenar a coleção. Por exemplo, my-db.
  • collection: o nome da coleção na base de dados do MongoDB. Por exemplo, my-collection.
  • inputTableSpec: a tabela do BigQuery a partir da qual ler. Por exemplo, bigquery-project:dataset.input_table.

Execute o modelo

Consola

  1. Aceda à página Dataflow Criar tarefa a partir de um modelo.
  2. Aceda a Criar tarefa a partir de modelo
  3. No campo Nome da tarefa, introduza um nome exclusivo para a tarefa.
  4. Opcional: para Ponto final regional, selecione um valor no menu pendente. A região predefinida é us-central1.

    Para ver uma lista das regiões onde pode executar uma tarefa do Dataflow, consulte o artigo Localizações do Dataflow.

  5. No menu pendente Modelo do fluxo de dados, selecione the BigQuery to MongoDB template.
  6. Nos campos de parâmetros fornecidos, introduza os valores dos parâmetros.
  7. Clique em Executar tarefa.

gcloud

Na shell ou no terminal, execute o modelo:

  gcloud dataflow flex-template run JOB_NAME \
      --project=PROJECT_ID \
      --region=REGION_NAME \
      --template-file-gcs-location=gs://dataflow-templates-REGION_NAME/VERSION/flex/BigQuery_to_MongoDB \
      --parameters \
  inputTableSpec=INPUT_TABLE_SPEC,\
  mongoDbUri=MONGO_DB_URI,\
  database=DATABASE,\
  collection=COLLECTION
  

Substitua o seguinte:

  • PROJECT_ID: o ID do projeto onde quer executar a tarefa do Dataflow Google Cloud
  • JOB_NAME: um nome de tarefa exclusivo à sua escolha
  • REGION_NAME: a região onde quer implementar a tarefa do Dataflow, por exemplo, us-central1
  • VERSION: a versão do modelo que quer usar

    Pode usar os seguintes valores:

  • INPUT_TABLE_SPEC: o nome da tabela do BigQuery de origem.
  • MONGO_DB_URI: o seu URI do MongoDB.
  • DATABASE: a sua base de dados MongoDB.
  • COLLECTION: a sua coleção do MongoDB.

API

Para executar o modelo através da API REST, envie um pedido HTTP POST. Para mais informações sobre a API e os respetivos âmbitos de autorização, consulte projects.templates.launch.

  POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/flexTemplates:launch
  {
     "launch_parameter": {
        "jobName": "JOB_NAME",
        "parameters": {
            "inputTableSpec": "INPUT_TABLE_SPEC",
            "mongoDbUri": "MONGO_DB_URI",
            "database": "DATABASE",
            "collection": "COLLECTION"
        },
        "containerSpecGcsPath": "gs://dataflow-templates-LOCATION/VERSION/flex/BigQuery_to_MongoDB",
     }
  }

Substitua o seguinte:

  • PROJECT_ID: o ID do projeto onde quer executar a tarefa do Dataflow Google Cloud
  • JOB_NAME: um nome de tarefa exclusivo à sua escolha
  • LOCATION: a região onde quer implementar a tarefa do Dataflow, por exemplo, us-central1
  • VERSION: a versão do modelo que quer usar

    Pode usar os seguintes valores:

  • INPUT_TABLE_SPEC: o nome da tabela do BigQuery de origem.
  • MONGO_DB_URI: o seu URI do MongoDB.
  • DATABASE: a sua base de dados MongoDB.
  • COLLECTION: a sua coleção do MongoDB.

O que se segue?