У меня есть таблица в Big Query, используемая для целей мониторинга. В этой таблице указана по крайней мере следующая информация (поля):
+--------------------------------+-----------+-----------+--------+----------------+
| timestamp | data_type | file_name | status | loaded records |
+--------------------------------+-----------+-----------+--------+----------------+
| 2020-04-02 19:51:11.822674 UTC | aa | e.gz | OK | 2293 |
| 2020-04-02 20:00:06.261044 UTC | bb | g.gz | OK | 25 |
| 2020-04-02 20:02:07.304114 UTC | cc | cd.csv | OK | 298 |
| 2020-04-02 20:09:26.708910 UTC | dd | ab.csv | OK | 49448 |
| 2020-04-02 20:31:00.662977 UTC | ee | ad.csv | OK | 4805 |
| 2020-04-02 20:37:41.459875 UTC | ff | f.bz | OK | 245 |
+--------------------------------+-----------+-----------+--------+----------------+
Метка времени - это метка времени при получении файла системой
Тип_данных указывает, из какого типа данных и источника информации система собирает данные. источник данных. Тип данных также указывает количество файлов, ожидаемых от каждого источника данных, и они варьируются от источника к источнику. Ожидается, что некоторые источники будут генерировать данные ежечасно, некоторые ежедневно, некоторые каждые 15 минут, а некоторые каждые 5 минут.
Давайте предположим, что в приведенной выше таблице data_type aa и bb создаются каждые 5 минут; следовательно, ожидаемое вхождение - 12 файлов в час. Тип данных cc и dd создаются каждый час, а data_type ee и ff создаются ежедневно.
Filename - это имя файла, связанного с типом данных. Поэтому частота появления этого файла в отчете ежечасно или ежедневно зависит от типа данных. Если быть точным, если он связан с типом данных aa и bb, то для этого типа данных будет отображаться 12 файлов в час или 288 в день. Для почасовых типов данных, таких как cc и dd, ожидается один раз в час или 12 вхождений в день и т. Д.
По разным причинам время от времени наблюдаются пропущенные файлы, что влияет на качество данных.
Я бы хотел посчитать недостающие файлы каждого типа данных за желаемый период времени; возможно, ежечасно (относится к почасовому типу данных), ежедневно (для всех типов данных)) и ежемесячно (для всех типов данных). Это будет визуализироваться с использованием таких инструментов визуализации, как Google DataStudio или tableau.
Ожидаемый результат (таблица) будет
Date (или dateTime) Data_type count_missing_files
Как мне это сделать? новая таблица в bq и какой будет запрос для этого? Могу ли я просто сделать это напрямую с визуализацией с добавленной логи c вместо создания новой таблицы? Если да, как это сделать?
Любая помощь будет принята с благодарностью.