Decoradores de tabela no SQL legado

Neste documento, detalhamos como usar decoradores de tabelas na sintaxe de consulta do SQL legado. A sintaxe de consulta preferida do BigQuery é SQL padrão. No momento, os decoradores de tabelas não são compatíveis no SQL padrão, mas é possível conseguir a semântica do decorador de tabelas no SQL padrão usando um filtro na pseudocoluna _TABLE_SUFFIX. Para mais informações, consulte Decoradores de tabela e funções de caractere curinga no guia de migração do SQL padrão.

Normalmente, o BigQuery realiza uma verificação completa de coluna ao executar uma consulta. Use decoradores de tabela no SQL legado para realizar uma consulta mais econômica de um subconjunto dos dados. É possível usar os decoradores sempre que uma tabela é lida, como acontece durante a cópia e exportação de uma tabela ou a listagem de dados usando tabledata.list.

Os decoradores de tabela são compatíveis com valores <time> relativos e absolutos. Os valores relativos são indicados por um número negativo, e os valores absolutos são indicados por um número positivo. Por exemplo, -3600000 indica uma hora atrás em milissegundos, em relação à hora atual, e 3600000 indica uma hora em milissegundos após 01/01/1970.

Decoradores de instantâneo

Sintaxe

@<time>
  • Refere-se a um instantâneo da tabela em <time>, em milissegundos, desde o período.
  • <time> precisa estar entre os últimos sete dias e ser maior ou igual à hora de criação da tabela.
  • @0 é um caso especial que referencia o instantâneo mais antigo possível da tabela: sete dias no passado ou a hora de criação da tabela, caso a tabela tenha menos de sete dias.

É possível usar os decoradores de instantâneo para cancelar a exclusão de uma tabela até dois dias depois da exclusão.

Exemplos

Para conseguir um instantâneo da tabela há uma hora:

Exemplo de valor relativo

#legacySQL
SELECT COUNT(*) FROM [PROJECT_ID:DATASET.TABLE@-3600000]

Exemplo de valor absoluto

  1. Veja <time> de uma hora atrás:

    #legacySQL
    SELECT INTEGER(DATE_ADD(USEC_TO_TIMESTAMP(NOW()), -1, 'HOUR')/1000)
    
  2. Em seguida, substitua <time> na seguinte consulta:

    #legacySQL
    SELECT COUNT(*) FROM [PROJECT_ID:DATASET.TABLE@time]
    

Decoradores de intervalo

Sintaxe

@<time1>-<time2>
  • Dados da tabela de referências adicionados entre <time1> e <time2>, em milissegundos desde o período.
  • <time1> e <time2> precisam estar nos últimos sete dias.
  • <time2> é opcional e assume como padrão "agora".

Exemplos

Exemplos de valor relativo

Para ver os dados da tabela adicionados entre uma hora e meia hora atrás:

#legacySQL
SELECT COUNT(*) FROM [PROJECT_ID:DATASET.TABLE@-3600000--1800000]

Para ver os dados dos últimos 10 minutos:

#legacySQL
SELECT COUNT(*) FROM [PROJECT_ID:DATASET.TABLE@-600000-]

Exemplo de valor absoluto

Para ver os dados da tabela adicionados entre uma hora e meia hora atrás:

  1. Veja <time1> de uma hora atrás:

    #legacySQL
    SELECT INTEGER(DATE_ADD(USEC_TO_TIMESTAMP(NOW()), -1, 'HOUR')/1000)
    
  2. Veja <time2> de meia hora atrás:

    #legacySQL
    SELECT INTEGER(DATE_ADD(USEC_TO_TIMESTAMP(NOW()), -30, 'MINUTE')/1000)
    
  3. Substitua <time1> e <time2> na consulta a seguir:

    #legacySQL
    SELECT COUNT(*) FROM [PROJECT_ID:DATASET.TABLE@time1-time2]
    
Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Precisa de ajuda? Acesse nossa página de suporte.