Criar réplicas de visualizações materializadas

Neste documento, descrevemos como criar réplicas de visualização materializadas no BigQuery. Uma réplica de visualização materializada é uma replicação de dados externos do Amazon Simple Storage Service (Amazon S3), do Apache Iceberg ou do Salesforce Data Cloud em um conjunto de dados do BigQuery para que eles fiquem disponíveis localmente no BigQuery. Isso pode ajudar a evitar custos de saída de dados e melhorar a performance da consulta.

Antes de começar

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  5. Make sure that billing is enabled for your Google Cloud project.

  6. Verifique se você tem as permissões necessárias do Identity and Access Management (IAM) para realizar as tarefas neste documento.

Funções exigidas

Para receber as permissões necessárias para realizar as tarefas neste documento, peça ao administrador para conceder a você o papel do IAM de Administrador do BigQuery (roles/bigquery.admin). Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Esse papel predefinido contém as permissões necessárias para executar as tarefas neste documento. Para conferir as permissões exatas necessárias, expanda a seção Permissões necessárias:

Permissões necessárias

As permissões a seguir são necessárias para executar as tarefas neste documento:

  • bigquery.tables.create
  • bigquery.tables.get
  • bigquery.tables.getData
  • bigquery.tables.replicateData
  • bigquery.jobs.create

Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.

Para mais informações sobre o IAM do BigQuery, consulte Introdução ao IAM no BigQuery.

Preparar um conjunto de dados para réplicas de visualização materializadas

Antes de criar uma réplica de visualização materializada, conclua as seguintes tarefas:

  1. Crie um conjunto de dados em uma região compatível com o Amazon S3.
  2. Crie uma tabela de origem no conjunto de dados que você criou na etapa anterior. A tabela de origem pode ser de qualquer um destes tipos:

Criar réplicas de visualizações materializadas

Selecione uma das seguintes opções:

Console

  1. No Console do Google Cloud, acesse a página BigQuery.

    Ir para o BigQuery

  2. No painel Explorer, navegue até o projeto e o conjunto de dados em que você quer criar a réplica da visualização materializada e clique em Ver ações > Criar tabela.

  3. Na seção Origem da caixa de diálogo Criar tabela, faça o seguinte:

    1. Em Criar tabela de, selecione Tabela/visualização existente.
    2. Em Project, insira o projeto em que a tabela ou visualização de origem está localizada.
    3. Em Dataset, insira o conjunto de dados em que a tabela ou visualização de origem está localizada.
    4. Em Visualização, insira a tabela ou visualização de origem que você está replicando. Se você escolher uma visualização, ela precisa ser uma visualização autorizada. Caso contrário, todas as tabelas usadas para gerar essa visualização precisam estar localizadas no conjunto de dados da visualização.
  4. Opcional: para Inatividade máxima da visualização materializada local, insira um valor max_staleness para sua visualização materializada local.

  5. Na seção Destino da caixa de diálogo Criar tabela, faça o seguinte:

    1. Em Project, insira o projeto em que você quer criar a réplica de visualização materializada.
    2. Em Conjunto de dados, insira o conjunto de dados em que você quer criar a réplica de visualização materializada.
    3. Em Nome da visualização materializada da réplica, insira um nome para a réplica.
  6. Opcional: especifique tags e opções avançadas para a réplica da visualização materializada. Se você não especificar um conjunto de dados para o Conjunto de dados da visualização materializada local, um será criado automaticamente no mesmo projeto e região dos dados de origem e nomeado bq_auto_generated_local_mv_dataset. Se você não especificar um nome para o nome da visualização materializada local, ele será criado automaticamente no mesmo projeto e região dos dados de origem e receberá o prefixo bq_auto_generated_local_mv_.

  7. Clique em Criar tabela.

Uma nova visualização materializada local é criada (se não tiver sido especificada) e autorizada no conjunto de dados de origem. Em seguida, a réplica de visualização materializada é criada no conjunto de dados de destino.

SQL

  1. Crie uma visualização materializada na tabela base do conjunto de dados que você criou. Também é possível criar a visualização materializada em um conjunto de dados diferente que esteja em uma região do Amazon S3.
  2. Autorize a visualização materializada nos conjuntos de dados que contêm as tabelas de origem usadas na consulta que criou a visualização materializada.
  3. Se você tiver configurado a atualização manual do cache de metadados para a tabela de origem, execute o procedimento do sistema BQ.REFRESH_EXTERNAL_METADATA_CACHE para atualizar o cache de metadados.
  4. Execute o procedimento do sistema BQ.REFRESH_MATERIALIZED_VIEW para atualizar a visualização materializada.
  5. Crie réplicas de visualização materializadas usando a instrução CREATE MATERIALIZED VIEW AS REPLICA OF:

    CREATE MATERIALIZED VIEW PROJECT_ID.BQ_DATASET.REPLICA_NAME
    OPTIONS(replication_interval_seconds=REPLICATION_INTERVAL)
    AS REPLICA OF PROJECT_ID.S3_DATASET.MATERIALIZED_VIEW_NAME;

    Substitua:

    • PROJECT_ID: o nome do projeto em que você quer criar a réplica de visualização materializada, por exemplo, myproject.
    • BQ_DATASET: o nome do conjunto de dados do BigQuery em que você quer criar a réplica de visualização materializada. Por exemplo, bq_dataset. O conjunto de dados precisa estar na região do BigQuery que é mapeada para a região da visualização materializada da origem.
    • REPLICA_NAME: o nome da réplica de visualização materializada que você quer criar. Por exemplo, my_mv_replica.
    • REPLICATION_INTERVAL: especifica a frequência de replicação dos dados da visualização materializada de origem para a réplica, em segundos. Precisa ser um valor entre -60 e 3.600 incluindo estes dois valores. O padrão é 300 (5 minutos).
    • S3_DATASET: o nome do conjunto de dados que contém a visualização materializada de origem, por exemplo, s3_dataset.
    • MATERIALIZED_VIEW_NAME: o nome da visualização materializada a ser replicada, por exemplo, my_mv.

    O exemplo a seguir cria uma réplica de visualização materializada denominada mv_replica em bq_dataset:

    CREATE MATERIALIZED VIEW `myproject.bq_dataset.mv_replica`
    OPTIONS(
    replication_interval_seconds=600
    )
    AS REPLICA OF `myproject.s3_dataset.my_s3_mv`

Depois de criar a réplica de visualização materializada, o processo de replicação pesquisa a visualização materializada de origem em busca de mudanças e replica os dados para a réplica da visualização materializada, atualizando os dados no intervalo especificado na opção replication_interval_seconds ou max_staleness. Se você consultar a réplica antes da conclusão do primeiro preenchimento, receberá um erro backfill in progress. É possível consultar os dados na réplica de visualização materializada após a conclusão da primeira replicação.