Использование Looker SDK для запроса информационной панели Looker, передачи фильтров информационной панели плиткам и возврата элемента информационной панели в виде файла .png.
Решения бизнес-аналитики, такие как Looker, должны быть динамичными и интерактивными. Однако бизнес-пользователям часто необходимо создать статическую версию всей информационной панели или определенных элементов информационной панели. В этом примере я покажу, как использовать Looker SDK для запроса информационной панели Looker, передачи фильтров информационной панели плиткам (то есть элементам информационной панели) и возврата элемента информационной панели в виде файла .png. Затем эти файлы можно использовать для создания отчетов в других приложениях. Я буду создавать следующую статью, в которой я расскажу, как использовать Python для вставки этих изображений в файл PowerPoint.
В этом гипотетическом сценарии предполагается, что мы хотим создавать пакетные отчеты с информационной панели Looker, не устанавливая фильтры информационной панели и не запуская отчет с информационной панели. С некоторыми незначительными изменениями можно было бы применить тот же процесс для запуска отчета с панели инструментов.
Интерактивную версию этого пошагового руководства также можно найти в созданном мной файле Google Colab: ImagesFromLookerSDK.
Подключиться к Looker SDK
Сначала установите Looker SDK с помощью pip install looker-sdk
. Затем соберите информацию, которая потребуется для подключения к Looker API.
Базовый URL-адрес Looker: https://your.looker.com:port (не добавляйте порт, если используете Looker онлайн)
идентификатор клиента и секрет клиента: Получите это у администратора своего поискового устройства. Если вы являетесь администратором, найдите свою информацию о пользователе и выберите «Создать API», чтобы сгенерировать идентификатор клиента и секрет.
Информация о подключении может быть сохранена в файле looker.ini или назначена переменным среды. Полная инструкция по установке и настройке Looker SDK доступна здесь.
Создайте скрипт для просмотра элементов панели
Импорт необходимых библиотек
import looker_sdk #access looker objects from looker_sdk import models import base64 #encode looker image into .png file import os #only necessary if assigning Looker SDK connection information to environment variables
Создайте подключение Looker SDK
sdk = looker_sdk.init31()
Откройте информационную панель, из которой вы хотите извлечь изображения информационной панели. Идентификатор информационной панели можно найти в URL-адресе информационной панели в формате https://your.looker.com/dashboards/dashboard_id?‹dashboard_filters›. Это будет целое число, если только это не панель мониторинга LookML, которая будет представлена строкой.
Используйте идентификатор панели управления, чтобы подключиться к панели управления и изучить доступные параметры.
dashboard_id = 216 dashboard = sdk.dashboard(dashboard_id) for key in dashboard.keys(): print(key)
Я рекомендую рассмотреть все возможные способы взаимодействия с панелью мониторинга, но в этом примере мы сосредоточимся на элементах_панели и фильтрах_панели.
Получить список элементов панели
Взгляните на элементы панели мониторинга, чтобы убедиться, что все плитки, которые вы ожидаете увидеть, присутствуют.
Передайте фильтры информационной панели в запрос элемента
Теперь взгляните на фильтры приборной панели. В этом примере я создам словарь фильтров панели мониторинга, который будет применяться к элементам панели мониторинга по мере их запуска. Значения измерений фильтра будут использоваться для создания словаря фильтров.
for filter in dashboard.dashboard_filters: print(filter.name, filter.dimension)
Теперь создайте словарь значений фильтров для фильтров, которые вы хотите применить.
filter_dict = {'model_name.city_name': 'ABC Town', 'model_name.year': '2021, 2022'}
Отобразить запрос как изображение
Теперь давайте соберем все это вместе, чтобы просмотреть каждый элемент на панели инструментов, применить фильтры панели и создать файл .png.
dashboard_id = 216 sdk = looker_sdk.init31() dashboard = sdk.dashboard(dashboard_id) #run each element in the dashboard and apply the dashboard filters. Then, save the file in .png format. for element in dashboard.dashboard_elements: #create a copy of the tile query to apply filters to altered_query = element.query title = element.title #if the query has existing filters, append the dashboard filters if 'filters' in altered_query: altered_query.filters.update(filter_dict) if 'filters' not in altered_query: altered_query['filters']=filter_dict #remove the client id and id from the query to create a new query altered_query.client_id = None altered_query.id = None #run the query with applied filters inline (doesn't create a new query object) and save as .png file query_image = sdk.run_inline_query(body=altered_query, result_format='png') image_string = base64.b64encode(query_image) image_file = '.'.join([title, 'png']) with open(image_file, "wb") as fh: fh.write(base64.decodebytes(image_string)
Это сохранит файл .png в рабочем каталоге для каждой плитки на панели инструментов, названный в честь названия плитки. Есть много форматов, в которые можно вставлять изображения для полированного статического отчета. В моем примере я буду использовать эти изображения для автоматического создания файла PowerPoint с помощью Python. Затем, на последнем этапе, я объединю шаги Looker SDK и PowerPoint для создания пакетных отчетов из информационных панелей Looker.
Дополнительные материалы на PlainEnglish.io. Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Подпишитесь на нас в Twitter и LinkedIn. Присоединяйтесь к нашему сообществу Discord.