ワークグループの管理 - Amazon Athena

ワークグループの管理

https://console.aws.amazon.com/athena/ で、以下のタスクを実行できます。

Statement 説明
ワークグループの作成

新しいワークグループを作成します。

ワークグループの編集 ワークグループを編集して設定を変更します。ワークグループの名前を変更することはできませんが、同じ設定と別の名前で新しいワークグループを作成することはできます。
ワークグループの詳細の表示 名前、説明、データ使用量の制限、クエリ結果の場所、暗号化など、ワークグループの詳細を表示します。[Override client-side settings (クライアント側設定の上書き)] がオンになっている場合、このワークグループがその設定を強制しているかどうかも確認できます。
ワークグループの削除

ワークグループを削除します。ワークグループ、クエリ履歴、保存されたクエリを削除すると、ワークグループの設定とクエリごとのデータ制限コントロールが削除されます。ワークグループ全体のデータ制限制御は CloudWatch で保持され、個別に削除することができます。

プライマリワークグループは削除できません。

ワークグループを切り替える

アクセス権があるワークグループを切り替えます。

ワークグループ間で保存されたクエリをコピーする ワークグループ間で保存されたクエリをコピーします。これは、例えばプレビューワークグループでクエリを作成し、それを非プレビューワークグループで使用できるようにしたい場合などに実行できます。
ワークグループの有効化および無効化

ワークグループを有効または無効にします。ワークグループを無効にすると、そのユーザーはクエリを実行したり、新しい名前付きクエリを作成したりできません。アクセスできる場合でも、メトリクス、データ使用制限コントロール、ワークグループの設定、クエリ履歴、保存されたクエリを表示できます。

クエリを実行するワークグループの指定

クエリを実行する前に、使用するワークグループを Athena に指定する必要があります。ワークグループに対するアクセス権限が必要です。

ワークグループの作成

ワークグループを作成するには、CreateWorkgroup API アクションへのアクセス権限が必要です。「ワークグループとタグへのアクセスAthena ワークグループにアクセスする」、および「ワークグループにアクセスするための IAM ポリシー」を参照してください。タグを追加している場合は、TagResource にアクセス権限を追加する必要もあります。「ワークグループのタグポリシーの例」を参照してください。

コンソールでワークグループを作成するには

  1. Athena コンソールで、[Workgroup:<workgroup_name>] (ワークグループ: <workgroup_name>)タブをクリックします。[Workgroups (ワークグループ)] パネルが表示されます。

  2. [Workgroups (ワークグループ)] パネルで、[Create workgroup (ワークグループの作成)] を選択します。

    
                            ワークグループを作成する方法を示すスクリーンショット。
  3. [Create workgroup (ワークグループの作成)] ダイアログボックスで、以下のようにフィールドに入力します。

    フィールド 説明
    ワークグループ名 必須。ワークグループの一意の名前を入力します。1~128 文字で入力してください。(A~Z、a~z、0~9、_、-、.)。この名前は変更できません。
    説明 オプション。ワークグループの説明を入力します。最大 1024 文字を含めることができます。
    クエリ結果の場所

    オプション。Amazon S3 バケットまたはプレフィックスへのパスを入力します。このバケットとプレフィックスは、指定する前に存在している必要があります。

    注記

    コンソールでクエリを実行する場合、クエリ結果の場所の指定はオプションです。ワークグループまたは [Settings (設定)] で指定しない場合、Athena はデフォルトのクエリ結果の場所を使用します。API またはドライバを使用してクエリを実行する場合、個々のクエリには OutputLocation、またはワークグループには WorkGroupConfiguration を使って、2 つの場所の少なくとも 1 つにクエリ結果の場所を指定する必要があります

    クエリ結果の暗号化

    オプション。Amazon S3 に保存されている結果を暗号化します。選択すると、ワークグループのすべてのクエリは暗号化されます。

    選択すると、[Encryption type (暗号化タイプ)]、[Encryption key (暗号化キー)] を選択して、[KMS Key ARN (KMS キー ARN)] を入力できます。

    キーがない場合は、AWS KMS コンソールを開いて作成します。詳細については、 デベロッパーガイドの「AWS Key Management Serviceキーの作成」を参照してください。

    クエリエンジンを更新する 新しい Athena エンジンバージョンがリリースされるときに、ワークグループを更新する方法を選択します。Athena にワークグループを更新するタイミングを決定させる、またはエンジンバージョンを手動で選択することができます。詳細については、「Athena エンジンのバージョン管理」を参照してください
    メトリクス このフィールドは、デフォルトで選択されています。クエリメトリクスを CloudWatch に発行します。クエリメトリクスの表示を参照してください。
    [Override client-side settings (クライアント側設定の上書き)] このフィールドは、デフォルトでは選択されていません。選択すると、ワークグループ設定はワークグループのすべてのクエリに適用され、クライアント側の設定を上書きします。詳細については、「ワークグループ設定がクライアント側の設定を上書きする」を参照してください。
    タグ オプション。ワークグループに 1 つ以上のタグを追加します。タグは、Athena ワークグループリソースに割り当てるラベルです。キーと値から構成されます。AWS タグ付け戦略のベストプラクティスを使用して、一貫性のあるタグのセットを作成し、目的、所有者、環境に基づいてワークグループを分類します。IAM ポリシーでタグを使用したり、課金コストを管理することもできます。同じワークグループに重複したタグキーを使用しないでください。詳細については、「リソースのタグ付け」を参照してください。
    リクエスタ支払い S3 バケット

    オプション。ワークグループユーザーが、リクエスタ支払いとして設定された Amazon S3 バケットに保存されているデータでクエリを実行する場合は、[Enable queries on Requester Pays buckets in Amazon S3] (Amazon S3 のリクエスタ支払いバケットでのクエリを有効にする) を選択します。クエリを実行しているユーザーのアカウントには、クエリに関連付けられた該当するデータアクセスの料金とデータ転送料金が請求されます。詳細については、Amazon Simple Storage Service デベロッパーガイドの「リクエスタ支払いバケット」を参照してください。

  4. [Create workgroup (ワークグループの作成)] を選択します。ワークグループが [Workgroups (ワークグループ)] パネルのリストに表示されます。

または、API オペレーションを使用してワークグループを作成します。

重要

ワークグループを作成したら、ワークグループ関連のアクションを実行できるようにする ワークグループの IAM ポリシーを作成します。

ワークグループの編集

ワークグループを編集するには、UpdateWorkgroup API オペレーションへのアクセス権限が必要です。「ワークグループとタグへのアクセスAthena ワークグループにアクセスする」、および「ワークグループにアクセスするための IAM ポリシー」を参照してください。タグを追加または編集している場合、TagResource へのアクセス権限も必要です。「ワークグループのタグポリシーの例」を参照してください。

コンソールでワークグループを編集するには

  1. Athena コンソールで、[Workgroup:<workgroup_name>] (ワークグループ: <workgroup_name>)タブをクリックします。[Workgroups (ワークグループ)] パネルが表示され、アカウントのすべてのワークグループが一覧表示されます。

    
                            ワークグループリスト
  2. [Workgroups (ワークグループ)] パネルで、編集するワークグループを選択します。ワークグループの [View details (詳細の表示)] パネルが表示され、[Overview (概要)] タブが選択された状態になります。

  3. [Edit workgroup] (ワークグループの編集) をクリックします。

    
                            ワークグループのアクション
  4. 必要に応じて、フィールドの値を変更します。フィールドのリストについては、「ワークグループの作成」を参照してください。ワークグループの名前を除くすべてのフィールドを変更できます。名前を変更する必要がある場合は、新しい名前と同じ設定で別のワークグループを作成してください。

  5. [保存] を選択します。更新されたワークグループが [Workgroups (ワークグループ)] パネルのリストに表示されます。

ワークグループの詳細の表示

各ワークグループの詳細を表示できます。詳細には、ワークグループの名前、説明、有効になっているか無効になっているか、ワークグループで実行されるクエリに使用される設定 (クエリ結果の場所や暗号化設定など) が含まれます。ワークグループにデータ使用量の制限がある場合は、それらも表示されます。

ワークグループの詳細を表示するには

  • [Workgroups (ワークグループ)] パネルで、編集するワークグループを選択します。ワークグループの [View details (詳細の表示)] パネルが表示され、[Overview (概要)] タブが選択された状態になります。次の例のように、ワークグループの詳細が表示されます。

    
                            ワークグループの詳細画面。

ワークグループの削除

アクセス権限がある場合は、ワークグループを削除できます。プライマリワークグループは削除できません。

アクセス権限がある場合は、いつでも空のワークグループを削除できます。保存したクエリが含まれているワークグループを削除することもできます。この場合、ワークグループの削除に進む前に、保存されたクエリが削除されることを Athena が警告します。

ワークグループにいる間にワークグループを削除した場合、コンソールは焦点をプライマリワークグループに切り替えます。アクセスできる場合は、クエリを実行して設定を表示します。

ワークグループを削除すると、その設定とクエリごとのデータ制限コントロールは削除されます。ワークグループ全体のデータ制限制御は CloudWatch で保持され、そこで必要に応じて削除することができます。

重要

ワークグループを削除する前に、そのユーザーが引き続きクエリを実行できる他のワークグループに属していることを確認してください。ユーザーの IAM ポリシーが、ユーザーにこのワークグループのみでクエリの実行を許可していた場合にそのワークグループを削除すると、ユーザーはクエリを実行する許可を失います。詳細については、「Example Policy for Running Queries in the Primary Workgroup」を参照してください

コンソールでワークグループを削除するには

  1. Athena コンソールで、[Workgroup:<workgroup_name>] (ワークグループ: <workgroup_name>)タブをクリックします。[Workgroups (ワークグループ)] パネルが表示されます。

  2. [Workgroups (ワークグループ)] パネルで、削除するワークグループを選択します。ワークグループの [View details (詳細の表示)] パネルが表示され、[Overview (概要)] タブが選択された状態になります。

  3. [Delete workgroup (ワークグループの削除)] を選択して、削除を確認します。

API オペレーションでワークグループを削除するには、DeleteWorkGroup アクションを使用します。

ワークグループを切り替える

両方のワークグループにアクセス権限がある場合は、あるワークグループから別のワークグループに切り替えることができます。

各ワークグループで最大 10 個のクエリタブを開くことができます。ワークグループを切り替えると、クエリタブは最大 3 つのワークグループに対して開いたままになります。

ワークグループを切り替えるには

  1. Athena コンソールで、[Workgroup:<workgroup_name>] (ワークグループ: <workgroup_name>)タブをクリックします。[Workgroups (ワークグループ)] パネルが表示されます。

  2. [Workgroups (ワークグループ)] パネルで、切り替えるワークグループを選択し、次に [Switch workgroup (ワークグループの切り替え)] を選択します。

    
                            ワークグループを切り替えるスクリーンショット。
  3. [Switch (切り替え)] を選択します。コンソールには、切り替えたワークグループの名前の [Workgroup: (ワークグループ:)<workgroup_name>] タブが表示されます。これで、このワークグループでクエリを実行できます。

ワークグループ間で保存されたクエリをコピーする

現在、Athena コンソールには、保存されたクエリを 1 つのワークグループから別のワークグループに直接コピーするオプションはありませんが、以下の手順を使用することで、同じタスクを手動で実行することができます。

ワークグループ間で保存されたクエリをコピーする

  1. Athena コンソールで、クエリをコピーするワークグループから、[Saved queries] (保存されたクエリ) タブをクリックします。

  2. コピーする保存されたクエリを選択します。[Are you sure you want to open this query?] (このクエリを開いてもよろしいですか?) というプロンプトが表示されたら、[Open query] (クエリを開く) を選択します。Athena がクエリエディタでクエリを開きます。

  3. クエリエディタでクエリテキストを選択してから、Ctrl+C を押してそれをコピーします。

  4. 宛先ワークグループに切り替えるか、ワークグループを作成してから、それに切り替えます。

  5. クエリエディタで新しいタブを開き、Ctrl+V を押して新しいタブにテキストを貼り付けます。

  6. クエリエディタで [Save as] (名前を付けて保存) をクリックして、クエリを宛先ワークグループに保存します。

  7. [Choose name] (名前の選択) ダイアログボックスで、クエリの名前とオプションの説明を入力します。

  8. [保存] を選択します。

ワークグループの有効化および無効化

アクセス権限がある場合は、API オペレーションを使用するか、JDBC および ODBC ドライバーを使用して、コンソールでワークグループを有効化または無効化できます。

ワークグループを有効化または無効化するには

  1. Athena コンソールで、[Workgroup:<workgroup_name>] (ワークグループ: <workgroup_name>)タブをクリックします。[Workgroups (ワークグループ)] パネルが表示されます。

  2. [Workgroups (ワークグループ)] パネルで、ワークグループを選択し、[Enable workgroup (ワークグループの有効化)] または [Disable workgroup (ワークグループの無効化)] を選択します。ワークグループを無効にすると、そのユーザーはその中でクエリを実行したり、新しい名前付きクエリを作成したりできません。ワークグループを有効にした場合、ユーザーはそれを使用してクエリを実行できます。

クエリを実行するワークグループの指定

クエリを実行する前に、使用するワークグループを Athena に指定する必要があります。ワークグループに対するアクセス権限が必要です。

ワークグループを Athena に指定する

  1. 使用する予定のワークグループでクエリを実行できるアクセス権限であることを確認します。詳細については、「 ワークグループにアクセスするための IAM ポリシー」を参照してください

  2. ワークグループを Athena に指定するには、これらのオプションの 1 つを使用してください。

    • コンソールを使用して Athena にアクセスしている場合は、ワークグループの切り替えでワークグループを設定します。

    • Athena API オペレーションを使用している場合は、API アクションにワークグループ名を指定します。例えば、以下のように StartQueryExecution でワークグループ名を設定できます。

      StartQueryExecutionRequest startQueryExecutionRequest = new StartQueryExecutionRequest() .withQueryString(ExampleConstants.ATHENA_SAMPLE_QUERY) .withQueryExecutionContext(queryExecutionContext) .withWorkGroup(WorkgroupName)
    • JDBC または ODBC ドライバーを使用している場合、Workgroup 設定パラメータを使用して接続文字列にワークグループ名を設定します。ドライバーがワークグループ名を Athena に渡します。次の例のように、接続文字列にワークグループパラメータを指定します。

      jdbc:awsathena://AwsRegion=<AWSREGION>;UID=<ACCESSKEY>; PWD=<SECRETKEY>;S3OutputLocation=s3://<athena-output>-<AWSREGION>/; Workgroup=<WORKGROUPNAME>;

      詳細については、JDBC ドライバーのドキュメントに含まれているドライバーのドキュメントリンクで、「Workgroup」を検索してください。