AWS CLI を使用して AWS Glue データベースとそのテーブルを再度作成する - Amazon Athena

AWS CLI を使用して AWS Glue データベースとそのテーブルを再度作成する

AWS Glue データベースの名前を直接変更することはできませんが、その定義をコピーして定義を変更し、その定義を使用してデータベースを別の名前で再度作成することができます。同様に、古いデータベースのテーブルの定義をコピーして、その定義を変更し、変更した定義を使用して新しいデータベースにテーブルを再度作成することができます。

注記

ここで示した方法では、テーブルのパーティショニングはコピーされません。

次の Windows での手順では、お客様の AWS CLI に JSON 出力が設定されていることを前提としています。AWS CLI のデフォルトの出力形式を変更するには、aws configure を実行します。

AWS CLI を使用して AWS Glue データベースをコピーする方法
  1. コマンドプロンプトで次の AWS CLI コマンドを実行し、コピーする AWS Glue データベースの定義を取得します。

    aws glue get-database --name database_name

    get-database コマンドの詳細については、「get-database」を参照してください。

  2. JSON 出力を、新しいデータベースの名前が付けられたファイル (例: new_database_name.json) としてデスクトップに保存します。

  3. テキストエディタで new_database_name.json ファイルを開きます。

  4. JSON ファイルで以下の手順を実行します。

    1. 外側の { "Database": エントリと、ファイルの最後にある対応する閉じ括弧 } を削除します。

    2. Name エントリを新しいデータベース名に変更します。

    3. CatalogId フィールドを削除します。

  5. ファイルを保存します。

  6. コマンドプロンプトで次の AWS CLI コマンドを実行し、変更したデータベース定義ファイルを使用して、新しい名前でデータベースを作成します。

    aws glue create-database --database-input "file://~/Desktop\new_database_name.json"

    create-database コマンドの詳細については、「create-database」を参照してください。ファイルから AWS CLI パラメータを読み込む方法の詳細については、「AWS Command Line Interface ユーザーガイド」の「ファイルから AWS CLI パラメータを読み込む」を参照してください。

  7. 新しいデータベースが AWS Glue に作成されたことを確認するには、次のコマンドを実行します。

    aws glue get-database --name new_database_name

これで、新しいデータベースにコピーするテーブルの定義を取得し、定義を変更して、変更した定義を使用して新しいデータベースにテーブルを再度作成する準備ができました。この手順でテーブル名は変更されません。

AWS CLI を使用して AWS Glue テーブルをコピーする方法
  1. コマンドプロンプトで、次の AWS CLI コマンドを実行します。

    aws glue get-table --database-name database_name --name table_name

    get-table コマンドの詳細については、「get-table」を参照してください。

  2. JSON 出力を、テーブルの名前が付けられたファイル (例: table_name.json) として Windows デスクトップに保存します。

  3. テキストエディタで ファイルを開きます。

  4. JSON ファイルで、外部 {"Table": エントリとファイルの最後にあるそれに対応する閉じ括弧 } を削除します。

  5. JSON ファイルで、次のエントリとその値を削除します。

    • DatabaseNamecreate-table CLI コマンドは --database-name パラメータを使用するため、このエントリは必要ありません。

    • CreateTime

    • UpdateTime

    • CreatedBy

    • IsRegisteredWithLakeFormation

    • CatalogId

    • VersionId

  6. テーブル定義ファイルを保存します。

  7. コマンドプロンプトで次の AWS CLI コマンドを実行し、新しいデータベースにテーブルを再度作成します。

    aws glue create-table --database-name new_database_name --table-input "file://~/Desktop\table_name.json"

    create-table コマンドの詳細については、「create-table」を参照してください。

    これで、テーブルが AWS Glue の新しいデータベースに表示され、Athena からクエリできるようになりました。

  8. 手順を繰り返して、追加する各テーブルを AWS Glue の新しいデータベースにコピーします。