Amazon Athena

Amazon Athena 是一種互動式查詢服務,它使您能夠使用標準 SQL 輕鬆分析 Amazon Simple Storage Service (S3) 中的資料。Athena 是無伺服器的,因此無需設定或管理基礎設施,並且您只需為您執行的查詢付費。要開始使用,只需指向您在 S3 中的資料,定義模式,然後使用標準 SQL 開始查詢。

先決條件任務

要使用這些 Operator,您必須完成一些事情

通用引數

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,
)

參考

此條目有幫助嗎?