Я пытался выполнить этот SQL-запрос:
CREATE EXTERNAL TABLE IF NOT EXISTS appReporting.reports (
`instanceid` string,
`userid` string,
`hasheduserid` string
)
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
WITH SERDEPROPERTIES (
"separatorChar" = ",",
"escapeChar" = "\\",
"quoteChar" = '"'
)
LOCATION 's3://bucket-reporting/history/'
TBLPROPERTIES ('has_encrypted_data'='false', 'skip.header.line.count'='1');
Я могу создать его непосредственно в консоли AWS, но по команде CLI AWS я получаю все сортировки или ошибки, такие как:
- Нет закрывающей кавычки (из-за
"quoteChar" = '"'
) - ВНЕШНЕЕ слово не принято
- идентификаторы в кавычках не поддерживаются
- несоответствующий ввод 'ROW' ожидающий {,'WITH'}
- посторонний ввод 'SERDEPROPERTIES' ожидающий '('
Пожалуйста, помогите с этим. Это сводит меня с ума, потому что он отлично работает в консоли.
Это команда, которую я делаю (AWS CLI в Ansible playbook)
- name: Start Query Execution
sudo: yes
command: >
aws athena start-query-execution
--query-string "{{ lookup('file', '/tmp/create_table_1.sql') }}"
После удаления всех нежелательных символов у меня было: Only external table creation is supported
Как правильно передать запрос какСтрока в команду? Может кто-нибудь помочь с этим?