Amazon Redshift(集群)

Amazon Redshift管理设置、操作和扩展数据仓库的所有工作:配置容量、监控和备份集群,以及对 Amazon Redshift 引擎应用修补程序和升级。您可以专注于使用数据为您的业务和客户获取新的见解。

先决条件任务

要使用这些操作符,您必须执行以下操作

操作符

创建 Amazon Redshift 集群

要使用指定参数创建 Amazon Redshift 集群,您可以使用 RedshiftCreateClusterOperator

tests/system/providers/amazon/aws/example_redshift.py[源代码]

create_cluster = RedshiftCreateClusterOperator(
    task_id="create_cluster",
    cluster_identifier=redshift_cluster_identifier,
    vpc_security_group_ids=[security_group_id],
    cluster_subnet_group_name=cluster_subnet_group_name,
    publicly_accessible=False,
    cluster_type="single-node",
    node_type="dc2.large",
    master_username=DB_LOGIN,
    master_user_password=DB_PASS,
)

恢复 Amazon Redshift 集群

要恢复“已暂停”的 Amazon Redshift 集群,可以使用 RedshiftResumeClusterOperator 还可以通过将 deferrable 参数设置为 True 来以可延迟模式运行此操作员。这将确保任务从 Airflow 工作槽延迟,并且在触发器上轮询任务状态。

tests/system/providers/amazon/aws/example_redshift.py[源代码]

resume_cluster = RedshiftResumeClusterOperator(
    task_id="resume_cluster",
    cluster_identifier=redshift_cluster_identifier,
)

暂停 Amazon Redshift 集群

要暂停 available Amazon Redshift 集群,可以使用 RedshiftPauseClusterOperator。还可以通过将 deferrable 参数设置为 True 来以可延迟模式运行此操作员。

tests/system/providers/amazon/aws/example_redshift.py[源代码]

pause_cluster = RedshiftPauseClusterOperator(
    task_id="pause_cluster",
    cluster_identifier=redshift_cluster_identifier,
)

创建 Amazon Redshift 集群快照

要创建 Amazon Redshift 集群快照,可以使用 RedshiftCreateClusterSnapshotOperator

tests/system/providers/amazon/aws/example_redshift.py[源代码]

create_cluster_snapshot = RedshiftCreateClusterSnapshotOperator(
    task_id="create_cluster_snapshot",
    cluster_identifier=redshift_cluster_identifier,
    snapshot_identifier=redshift_cluster_snapshot_identifier,
    poll_interval=30,
    max_attempt=100,
    retention_period=1,
    wait_for_completion=True,
)

删除 Amazon Redshift 集群快照

要删除 Amazon Redshift 集群快照,可以使用 RedshiftDeleteClusterSnapshotOperator

tests/system/providers/amazon/aws/example_redshift.py[源代码]

delete_cluster_snapshot = RedshiftDeleteClusterSnapshotOperator(
    task_id="delete_cluster_snapshot",
    cluster_identifier=redshift_cluster_identifier,
    snapshot_identifier=redshift_cluster_snapshot_identifier,
)

删除 Amazon Redshift 集群

要删除 Amazon Redshift 集群,可以使用 RedshiftDeleteClusterOperator。还可以通过将 deferrable 参数设置为 True 来以可延迟模式运行此操作员

tests/system/providers/amazon/aws/example_redshift.py[源代码]

delete_cluster = RedshiftDeleteClusterOperator(
    task_id="delete_cluster",
    cluster_identifier=redshift_cluster_identifier,
)

传感器

等待 Amazon Redshift 集群状态

要检查 Amazon Redshift 集群的状态,直到其达到目标状态或其他终端状态,可以使用 RedshiftClusterSensor

tests/system/providers/amazon/aws/example_redshift.py[源代码]

wait_cluster_available = RedshiftClusterSensor(
    task_id="wait_cluster_available",
    cluster_identifier=redshift_cluster_identifier,
    target_status="available",
    poke_interval=15,
    timeout=60 * 30,
)

此条目是否有用?