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

Amazon Athena

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

Подключение и синхронизация

После подключения к базе данных вы увидите раздел «Подключение», где отображается текущий статус подключения и параметры управления соединением.

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

Изменение параметров подключения

Эти параметры можно изменить в любое время (не забудьте сохранить изменения).

Строка подключения

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

Отображаемое название

Отображаемое название базы данных в интерфейсе Glarus BI.

Регион

Регион AWS, в котором размещена ваша база данных (для Amazon Athena). Например: us-east-1.

Workgroup (рабочая группа)

Workgroup в AWS. Например: primary. См. документацию о workgroups (amazon.com, англ.).

Staging directory (промежуточный каталог) в S3

Staging directory в S3 должен находиться в том же регионе, который вы указали выше.

Ключ доступа

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

Если вы запускаете Glarus BI в AWS и хотите использовать AWS Default Credentials Chain (amazon.com, англ.), оставьте Access key и Secret key пустыми.

См. также заметки о подключении к Athena.

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

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

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

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

Добавлять ID пользователя и хэш запроса в запросы

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

Перезапускать запросы при простых изменениях

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

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

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

См. "Синхронизация и сканирование".

Периодически снимать слепки таблиц

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

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

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

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

Заметки о подключении к Athena

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

См. Identity and access management in Athena.

Подключение через AWS Default Credentials Chain

Если вы запускаете Glarus BI в AWS и хотите использовать AWS Default Credentials Chain, оставьте Access key и Secret key пустыми.

В обоих случаях драйвер Athena автоматически получит session credentials, исходя из того, какую IAM‑роль вы настроили.

Разрешения и IAM policies

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

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

Пример IAM policy

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

Для других возможностей Athena (например, federated queries) могут потребоваться дополнительные разрешения. Подробнее см. Athena docs.

{
  "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",
        "athena:GetTableMetadata"
      ],
      "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": "*" даст аккаунту разрешения Delete и Update для любых таблиц:

{
  "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": "*"
    }
  ]
}

Возможности моделей

Для Athena пока нет возможностей моделей.

Опасная зона (Danger zone)

См. опасную зону.

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