Я новичок в Афинах и S3 в целом.Мы настроили Athena для доступа к сегментам S3, прикрепленным к базам данных, каждая из которых содержит одну и ту же таблицу в день данных.Например:
database-name - "sales"
tables: ["19.02.2019", "18.02.2019",..."01.02.2019"]
Для запроса таблицы мне нужно выполнить в качестве примера следующее:
SELECT
a.creation_date,
a.number,
pa.customer_number,
a.customer_type,
a.name,
a.city,
a.country,
a.type,
a.business,
b.industry,
cu.group,
cu.closing_date,
cu.interest_flag,
FROM
(SELECT a.creation_date,
a.type,
a.number,
a.customer_type,
a.business,
a.id,
b.industry,
customer.id,
concat (p.first_name, ' ' ,p.last_name) AS name, p.address, p.country
FROM "accounts"."2019_02_19_01_32_18" AS a
LEFT JOIN "customers"."2019_02_19_02_31_03" AS c
ON a.id=c.id
LEFT JOIN "people"."2019_02_19_06_05_10" AS p
ON c.person_id=p.id
LEFT JOIN "strategic_partners"."2019_02_18_05_57_59" AS par
ON par.uid=p.strapartner_uid
WHERE a.number is NOT null and a.customer_type = (1)
UNION
SELECT a.creation_date,
a.type,
a.number,
a.customer_type,
a.business_name,
a.id,
b.industry,
customer.id,
concat (p.first_name, ' ',p.last_name) AS name, p.address, p.country
FROM "accounts"."2019_02_19_01_32_18" AS a
LEFT JOIN "customers"."2019_02_19_02_31_03" AS c
ON a.id=c.id
LEFT JOIN "people"."2019_02_19_06_05_10" AS p
ON c.person_id=p.id
LEFT JOIN "strategic_partners"."2019_02_18_05_57_59" AS par
ON par.uid=p.strapartner_uid
WHERE a.number is NOT null and a.customer_type IN (4,8)
) AS a
LEFT JOIN "progressive_accounts"."2019_02_18_18_15_28" AS pa
ON pa.credit_number = a.credit_number
LEFT JOIN "progressive_customer"."2019_02_18_18_15_01" AS cu
ON pa.prog_number=cu.prog_number
WHERE a.creation_date>='2018-10-01' AND a.creation_date<='2018-12-31'
ORDER BY a.creation_date desc, a.business_name asc
Я пытаюсь выяснить, существует ли способ динамического запросапоследний доступный стол?Можно ли использовать функцию в запросе или какое-то альтернативное решение?
Последующий вопрос заключается в том, почему я не могу использовать CREATE VIEW для этого запроса.Я получаю сообщение об ошибке: Ваш запрос содержит следующие ошибки:
Access denied when writing to location: s3://dp-jupyterlabXXXXXXXXXXXXXX/notebooks/<username>/athena/Unsaved/2019/02/25/<unique reference id>.txt
This query ran against the "database name" database, unless qualified by the query. Please post the error message on our forum or contact customer support with Query Id: xxxxxx-xxxx-xxxxx-xxxx-xxxxxxxxxxx.
Когда я выполняю инструкцию SELECT, запрос выполняется успешно, и результаты генерируются, как и ожидалось.
Я не могу понятьпочему возвращается ошибка - пытаясь проверить, является ли это проблемой с правами доступа, я добавил в свою роль следующие политики:
- glue access to the bucket
- all glue policies to the user
Я также не могу понять, почему Афина пытается создатьПРОСМОТРЕТЬ базу данных, которая выбрана в раскрывающемся меню Athena справа, а не в «общедоступной» базе данных (например, в PostgreSQL или аналогичной).
Любое руководство будет отличным!