Извлечение данных из Athena и разрешения glue

#amazon-web-services #amazon-s3 #amazon-athena #aws-glue

#amazon-веб-сервисы #amazon-s3 #amazon-athena #aws-glue

Вопрос:

Я использую приведенный здесь код для запроса данных с помощью Athenahttps://gist.github.com/schledererj/b2e2a800998d61af2bbdd1cd50e08b76

Для этого требуется приведенная ниже политика для работы —

 {
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "BroadAccess",
      "Action": [
        "glue:GetTable",
        "glue:GetPartitions"
      ],
      "Effect": "Allow",
      "Resource": "*"
    }
  ]
}
  

Почему для работы с ресурсами Glue требуется разрешение?

Ответ №1:

Athena использует каталог Glue для хранения всей информации о базах данных и таблицах. Athena сама по себе является всего лишь механизмом выполнения. Когда вы запускаете запрос в Athena, он начинается с синтаксического анализа SQL, затем запрашивает Glue о таблицах, включенных в запрос, какие столбцы в них есть и где расположены их данные. Он использует эту информацию для проверки запроса (например, существуют ли все столбцы, упомянутые в запросе), а затем использует расположение данных для планирования выполнения запроса.

Вы можете прочитать все о том, как Athena и Glue работают вместе, в документе «Интеграция с AWS Glue«.

Ответ №2:

Я бы не советовал использовать BroadAccess операции так, как вы хотите. Взгляните на эту страницу «Детализированный доступ к базам данных и таблицам в каталоге данных AWS Glue» и узнайте, какие разрешения необходимы вашему приложению. Затем добавьте "Action": [] свойство array вашей конфигурации.