Amazon Athena¶
Amazon Athena 是一種互動式查詢服務,它使您能夠使用標準 SQL 輕鬆分析 Amazon Simple Storage Service (S3) 中的資料。Athena 是無伺服器的,因此無需設定或管理基礎設施,並且您只需為您執行的查詢付費。要開始使用,只需指向您在 S3 中的資料,定義模式,然後使用標準 SQL 開始查詢。
先決條件任務¶
要使用這些 Operator,您必須完成一些事情
透過 pip 安裝 API 庫。
pip install 'apache-airflow[amazon]'詳細資訊可在 安裝 Apache Airflow® 中獲取
設定連線.
通用引數¶
- aws_conn_id
引用 Amazon Web Services 連線 ID。如果此引數設定為
None,則使用預設的 boto3 行為,不進行連線查詢。否則使用儲存在連線中的憑據。預設值:aws_default- region_name
AWS 區域名稱。如果此引數設定為
None或省略,則將使用 AWS 連線額外引數 中的 region_name。否則使用指定的值代替連線值。預設值:None- verify
是否驗證 SSL 證書。
False- 不驗證 SSL 證書。path/to/cert/bundle.pem - 要使用的 CA 證書捆綁包檔名。如果要使用與 botocore 使用的不同的 CA 證書捆綁包,可以指定此引數。
如果此引數設定為
None或省略,則將使用 AWS 連線額外引數 中的 verify。否則使用指定的值代替連線值。預設值:None- botocore_config
提供的字典用於構建 botocore.config.Config。此配置可用於配置 避免限流異常、超時等。
示例,有關引數的更多詳細資訊,請參閱 botocore.config.Config¶{ "signature_version": "unsigned", "s3": { "us_east_1_regional_endpoint": True, }, "retries": { "mode": "standard", "max_attempts": 10, }, "connect_timeout": 300, "read_timeout": 300, "tcp_keepalive": True, }
如果此引數設定為
None或省略,則將使用 AWS 連線額外引數 中的 config_kwargs。否則使用指定的值代替連線值。預設值:None注意
指定一個空字典,
{},將覆蓋 botocore.config.Config 的連線配置。
Operator¶
在 Amazon Athena 中執行查詢¶
使用 AthenaOperator 在 Amazon Athena 中執行查詢。
在以下示例中,我們查詢現有的 Athena 表並將結果傳送到現有的 Amazon S3 儲存桶。有關如何使用此 Operator 的更多示例,請參閱示例 DAG。
tests/system/amazon/aws/example_athena.py
read_table = AthenaOperator(
task_id="read_table",
query=query_read_table,
database=athena_database,
output_location=f"s3://{s3_bucket}/",
)
Sensor¶
等待 Amazon Athena 查詢結果¶
使用 AthenaSensor 等待 Amazon Athena 中的查詢結果。
tests/system/amazon/aws/example_athena.py
await_query = AthenaSensor(
task_id="await_query",
query_execution_id=read_table.output,
)