BigQuery SELECT выдает «Нет данных для отображения», но предварительный просмотр показывает данные, которые я только что добавил

Когда я просматриваю таблицу в BigQuery, я вижу некоторые тестовые данные, которые я только что вставил с помощью .NET SDK.

Но когда я запускаю следующий SQL, я ничего не получаю.

SELECT workplaceKey FROM `acme-capricorn-sigma.abc_us_east1.SomeTable` WHERE DATE(_PARTITIONTIME) = "2023-02-20" LIMIT 1000

SQL — это «предлагаемый» шаблон SQL в веб-консоли GCP, я только что добавил имя одного столбца.

Я настроил разбиение на MONTH в _PARTITIONTIME и сделал фильтр разделов обязательным.

Я предполагаю, что фильтр раздела автоматически добавил правильный фильтр, и данные были вставлены в этом месяце (час назад).

Почему я не вижу никаких результатов, если предварительный просмотр показывает результаты?

Если вы удалите предложение where WHERE DATE(_PARTITIONTIME) = "2023-02-20", запрос вернет результат? БР

Roar S. 21.02.2023 01:26

К сожалению, таблица настроена на использование фильтра разделов для уменьшения количества операций чтения и стоимости запросов. Спасибо.

Luke Puplett 21.02.2023 10:55
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
0
2
53
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Я смог воспроизвести вашу проблему.

В основном вот что я сделал.

Создал таблицу с временем разделения на МЕСЯЦ, как и вы

   CREATE or replace TABLE
      myproject.mydataset.partition_datatest (transaction_id INT64, transaction_date DATE)
    PARTITION BY
      DATE_TRUNC(_PARTITIONTIME, MONTH)
      OPTIONS (
        partition_expiration_days = 3
        );

Вставил данные в таблицу

insert into myproject.mydataset.partition_datatest(transaction_id, transaction_date)  (
  select cast(rand() as int64),  transaction_date from (
select *
 from unnest(generate_date_array('2021-01-01','2023-02-21',INTERVAL 1 MONTH)) as transaction_date
  )
);

Запрошена разделенная таблица на сегодняшнюю дату - ПРИМЕЧАНИЕ, это показывает, что нет данных

select *, DATE(_PARTITIONTIME), _PARTITIONTIME
from  myproject.mydataset.partition_datatest
where DATE(_PARTITIONTIME) = "2023-02-21"

Затем я изменил предложение where на приведенное ниже, учитывая, что я разделил месяц, время раздела установлено на первый день каждого месяца - это возвращает мне данные

select *, DATE(_PARTITIONTIME), _PARTITIONTIME
from  myproject.mydataset.partition_datatest.partition_datatest
where DATE(_PARTITIONTIME) = "2023-02-01"

Пожалуйста, попробуйте поставить DATE(_PARTITIONTIME) = "2023-02-01" вместо DATE(_PARTITIONTIME) = "2023-02-20"

Невероятный. Молодец и спасибо. Я предположил, что а) пользовательский интерфейс Google выдаст правильный запрос для моей таблицы, учитывая, что он явно запускает правильный запрос предварительного просмотра, и б) механизм запросов будет использовать только месячную часть любой заданной даты, когда фильтр разделов по месяцам.

Luke Puplett 21.02.2023 10:54

Между предварительным просмотром таблицы в консоли GCP и запросом существует принципиальное несоответствие.

Я добавлю сюда больше, когда узнаю больше, но мое тестирование показало, что предварительный просмотр продолжает отображать строки после удаления содержимого таблицы.

Кроме того, полное удаление таблицы и ее воссоздание, а также вставка строк, по-видимому, вызывают обновление предварительного просмотра последними данными, в то время как запрос SELECT ничего не возвращает, независимо от того, какая дата раздела используется.

Он ничего не возвращает, даже когда я отключаю использование кэшированных результатов в настройках запроса.

Я зарегистрировал проблему с Google:

https://issuetracker.google.com/issues/270118631

Возможно, кеширование BigQuery, неправильная дата раздела и кешированные результаты, которые наверняка использует Preview, — все это сговорились, чтобы сбить меня с толку.

Другие вопросы по теме