Перейти к содержанию

Amazon Athena

Чтобы добавить подключение к базе данных, нажмите значок шестерёнки в правом верхнем углу и перейдите в Управление > Базы данных > Добавить базу данных.

Подключение к Athena

Чтобы подключить Glarus BI к Athena, вам необходимо ввести свои учётные данные IAM:

  • ключ доступа;
  • секретный ключ.

Glarus BI зашифрует эти учётные данные.

Если вы используете другие сервисы AWS, мы рекомендуем вам создать специальную учётную запись службы AWS, которая имеет только права, необходимые для запуска Athena, и ввести учётные данные IAM из этой учётной записи для подключения Glarus BI к Athena.

См. Управление идентификацией и доступом в Athena.

Подключение с использованием цепочки учётных данных AWS по умолчанию

Если вы используете Glarus BI на AWS и хотите использовать цепочку учётных данных AWS по умолчанию, оставьте поля «Доступ» и «Секретный ключ» пустыми.

В обоих случаях драйвер Athena автоматически извлечёт учётные данные сеанса в зависимости от настроенной роли IAM.

Настройки

Вы можете в любое время изменить эти настройки. Просто не забудьте сохранить ваши изменения.

Название

Название подключения, которое будет отображаться в интерфейсе Glarus BI.

Область

Область AWS, в которой размещена ваша база данных Athena, например, «us-east-1».

Рабочая группа

Рабочая группа AWS. Например: primary. См. документацию по рабочим группам, англ..

Промежуточный каталог S3

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

Ключ доступа

Часть учётных данных IAM для AWS. Glarus BI зашифрует эти учётные данные.

Если вы используете Glarus BI на AWS и хотите использовать цепочку учётных данных AWS по умолчанию, оставьте поля «Ключ доступа» и «Секретный ключ» пустыми.

Секретный ключ

Часть учётных данных IAM для AWS. Glarus BI зашифрует эти учётные данные.

Дополнительные параметры строки подключения Athena

Вы можете указать дополнительные параметры через строку, например, UseResultsetStreaming=0;LogLevel=6.

Перезапустить запрос для простых исследований

Выключите эту опцию (ВЫКЛ), если пользователи хотят нажимать Запустить (кнопку воспроизведения) перед применением любых выборов в меню Группировать или условий фильтрации.

По умолчанию Glarus BI выполнит запрос, как только вы выберете вариант группировки из меню Группировать или условие фильтра из контекстного меню (документация Metabase, англ.). Если ваша база данных работает медленно, вы можете отключить автоматический повторный запуск, чтобы избежать загрузки данных при каждом клике.

Выберите, когда будет выполняться синхронизация и сканирование

Включите эту опцию (ВКЛ), чтобы управлять запросами, которые Glarus BI использует для поддержания актуальной информации о вашей базе данных. Для получения дополнительной информации см. Синхронизация и сканирование баз данных.

Синхронизация базы данных

Если вы выбрали Выберите, когда будет выполняться синхронизация и сканирование > ВКЛ, вы сможете настроить:

  • Частоту синхронизации: каждый час или каждый день.
  • Время запуска синхронизации в часовом поясе сервера, на котором работает ваше приложение Glarus BI.

Сканирование значений фильтров

Glarus BI может сканировать значения, присутствующие в каждом поле этой базы данных, чтобы включить флажки фильтров на дашбордах и в запросах. Это может быть довольно ресурсоёмким процессом, особенно если у вас очень большая база данных.

Если вы включили синхронизацию и сканирование, вы увидите следующие параметры в разделе Сканирование значений фильтров:

  • Регулярно, по расписанию позволяет запускать запросы сканирования с частотой, соответствующей скорости изменения вашей базы данных. Время устанавливается в часовом поясе сервера, на котором работает ваше приложение Glarus BI. Это лучший вариант для небольшой базы данных или таблиц с уникальными значениями, которые часто обновляются.
  • Только при добавлении виджета фильтра — отличный вариант, если вы хотите запускать запросы сканирования по запросу. Включение этой опции (ВКЛ) означает, что Glarus BI будет сканировать и кэшировать значения поля (полей), которые используются только при добавлении нового фильтра на дашборд или в SQL-запрос.
  • Никогда, я сделаю это вручную, если потребуется — это опция для баз данных, которые либо слишком велики, либо в которых никогда не добавляются новые значения. Используйте кнопку Пересканировать значения полей, чтобы запустить сканирование вручную и обновить значения фильтров.

Периодический слепок таблиц

Предупреждение

Периодическое повторное снятие слепков таблиц увеличит нагрузку на вашу базу данных.

Включите эту опцию (ВКЛ), чтобы сканировать значения при каждом запуске синхронизации в Glarus BI.

Запрос на создание слепков исследует первые 10 000 строк из каждого столбца и использует эти данные для примерной оценки количества уникальных значений в каждом столбце, минимальных и максимальных значений для числовых столбцов и столбцов временных меток и т. д. Если вы оставите этот параметр ВЫКЛ, Glarus BI будет делать слепки столбцов только один раз во время настройки.

Разрешения и политики IAM

Большинство проблем, с которыми сталкиваются пользователи при попытках подключиться к AWS Athena, связаны с разрешениями. Для запроса к AWS Athena требуются разрешения на:

  • AWS Athena.
  • AWS Glue.
  • Сегмент S3, в котором хранятся результаты Athena.
  • Ресурсы, к которым обращается Athena (т. е. сегмент(ы) S3, к которым Athena обращается с запросами).
  • Если вы используете AWS Lake Formation, вам также необходимо предоставить разрешения AWS Lake Formation через консоль AWS (AWS Lake Formation > Разрешения > Разрешения Data Lake > Предоставить разрешения для data lake; роли, которую использует Glarus BI, необходимы разрешения SELECT и DESCRIBE для таблиц).

Пример политики IAM

Эта политика предоставляет разрешения только на чтение данных в S3. Вам нужно будет указать все сегменты S3, из которых Glarus BI сможет запрашивать данные, также как сегмент S3, предоставленный как часть конфигурации, куда записываются результаты.

Для других функций Athena, например федеративных запросов, могут потребоваться дополнительные разрешения. Подробности см. в документации Athena.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "Athena",
      "Effect": "Allow",
      "Action": [
        "athena:BatchGetNamedQuery",
        "athena:BatchGetQueryExecution",
        "athena:GetNamedQuery",
        "athena:GetQueryExecution",
        "athena:GetQueryResults",
        "athena:GetQueryResultsStream",
        "athena:GetWorkGroup",
        "athena:ListDatabases",
        "athena:ListDataCatalogs",
        "athena:ListNamedQueries",
        "athena:ListQueryExecutions",
        "athena:ListTagsForResource",
        "athena:ListWorkGroups",
        "athena:ListTableMetadata",
        "athena:StartQueryExecution",
        "athena:StopQueryExecution",
        "athena:CreatePreparedStatement",
        "athena:DeletePreparedStatement",
        "athena:GetPreparedStatement"
      ],
      "Resource": "*"
    },
    {
      "Sid": "Glue",
      "Effect": "Allow",
      "Action": [
        "glue:BatchGetPartition",
        "glue:GetDatabase",
        "glue:GetDatabases",
        "glue:GetPartition",
        "glue:GetPartitions",
        "glue:GetTable",
        "glue:GetTables",
        "glue:GetTableVersion",
        "glue:GetTableVersions"
      ],
      "Resource": "*"
    },
    {
      "Sid": "S3ReadAccess",
      "Effect": "Allow",
      "Action": ["s3:GetObject", "s3:ListBucket", "s3:GetBucketLocation"],
      "Resource": [
        "arn:aws:s3:::bucket1",
        "arn:aws:s3:::bucket1/*",
        "arn:aws:s3:::bucket2",
        "arn:aws:s3:::bucket2/*"
      ]
    },
    {
      "Sid": "AthenaResultsBucket",
      "Effect": "Allow",
      "Action": [
        "s3:PutObject",
        "s3:GetObject",
        "s3:AbortMultipartUpload",
        "s3:ListBucket",
        "s3:GetBucketLocation"
      ],
      "Resource": ["arn:aws:s3:::bucket2", "arn:aws:s3:::bucket2/*"]
    }
  ]
}

Если Glarus BI также необходимо создавать таблицы, вам потребуются дополнительные разрешения AWS Glue. Пара ключ-значение "Resource": "*" даёт учётной записи разрешения на удаление и обновление любой таблицы:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "VisualEditor0",
      "Effect": "Allow",
      "Action": [
        "glue:BatchCreatePartition",
        "glue:UpdateDatabase",
        "glue:DeleteDatabase",
        "glue:CreateTable",
        "glue:CreateDatabase",
        "glue:UpdateTable",
        "glue:BatchDeletePartition",
        "glue:BatchDeleteTable",
        "glue:DeleteTable",
        "glue:CreatePartition",
        "glue:DeletePartition",
        "glue:UpdatePartition",
        "glue:GetCatalogImportStatus"
      ],
      "Resource": "*"
    }
  ]
}

Дополнительная информация