AWS CLI を使用して AWS Glue データベースとそのテーブルを再度作成する
AWS Glue データベースの名前を直接変更することはできませんが、その定義をコピーして定義を変更し、その定義を使用してデータベースを別の名前で再度作成することができます。同様に、古いデータベースのテーブルの定義をコピーして、その定義を変更し、変更した定義を使用して新しいデータベースにテーブルを再度作成することができます。
注記
ここで示した方法では、テーブルのパーティショニングはコピーされません。
次の Windows での手順では、お客様の AWS CLI に JSON 出力が設定されていることを前提としています。AWS CLI のデフォルトの出力形式を変更するには、aws configure
を実行します。
AWS CLI を使用して AWS Glue データベースをコピーする方法
-
コマンドプロンプトで次の AWS CLI コマンドを実行し、コピーする AWS Glue データベースの定義を取得します。
aws glue get-database --name
database_name
get-database
コマンドの詳細については、「get-database」を参照してください。 -
JSON 出力を、新しいデータベースの名前が付けられたファイル (例:
) としてデスクトップに保存します。new_database_name
.json -
テキストエディタで
ファイルを開きます。new_database_name
.json -
JSON ファイルで以下の手順を実行します。
-
外側の
{ "Database":
エントリと、ファイルの最後にある対応する閉じ括弧}
を削除します。 -
Name
エントリを新しいデータベース名に変更します。 -
CatalogId
フィールドを削除します。
-
-
ファイルを保存します。
-
コマンドプロンプトで次の 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 パラメータを読み込む」を参照してください。 -
新しいデータベースが AWS Glue に作成されたことを確認するには、次のコマンドを実行します。
aws glue get-database --name
new_database_name
これで、新しいデータベースにコピーするテーブルの定義を取得し、定義を変更して、変更した定義を使用して新しいデータベースにテーブルを再度作成する準備ができました。この手順でテーブル名は変更されません。
AWS CLI を使用して AWS Glue テーブルをコピーする方法
-
コマンドプロンプトで、次の AWS CLI コマンドを実行します。
aws glue get-table --database-name
database_name
--nametable_name
get-table
コマンドの詳細については、「get-table」を参照してください。 -
JSON 出力を、テーブルの名前が付けられたファイル (例:
table_name
.json) として Windows デスクトップに保存します。 -
テキストエディタで ファイルを開きます。
-
JSON ファイルで、外部
{"Table":
エントリとファイルの最後にあるそれに対応する閉じ括弧}
を削除します。 -
JSON ファイルで、次のエントリとその値を削除します。
-
DatabaseName
—create-table
CLI コマンドは--database-name
パラメータを使用するため、このエントリは必要ありません。 -
CreateTime
-
UpdateTime
-
CreatedBy
-
IsRegisteredWithLakeFormation
-
CatalogId
-
VersionId
-
-
テーブル定義ファイルを保存します。
-
コマンドプロンプトで次の 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 からクエリできるようになりました。
-
手順を繰り返して、追加する各テーブルを AWS Glue の新しいデータベースにコピーします。