Python
 Computer >> コンピューター >  >> プログラミング >> Python

PythonのBoto3を使ってAWS Glue Data Catalog内のすべての分類子(クラシファイア)の詳細を取得する方法

課題

Pythonのboto3ライブラリを使用して、AWS Glue Data Catalogに登録されているすべての分類子(クラシファイア)の詳細情報を取得します。たとえば、ユーザーのアカウントに存在する全分類子の詳細を一括で取得するケースが挙げられます。

解決のためのアプローチと手順

ステップ1: まず、boto3およびbotocore.exceptions(ClientErrorなど)をインポートし、例外処理に備えます。

ステップ2: get_classifiers APIにはパラメータは不要です。

ステップ3: boto3ライブラリを使用してAWSセッションを作成します。デフォルトプロファイルにregion_nameが設定されていることを確認してください。設定されていない場合は、セッション作成時にregion_nameを明示的に指定する必要があります。

ステップ4: AWS Glue用のクライアントを作成します。

ステップ5: get_classifiers関数を呼び出します。

ステップ6: これにより、AWS Glue Data Catalogに存在するすべての分類子の詳細が取得されます。

ステップ7: 処理中にエラーが発生した場合に備え、汎用例外も適切にハンドリングします。

サンプルコード

以下のコードを使用すると、AWS Glue Data Catalog内のすべての分類子の詳細を取得できます。

import boto3
from botocore.exceptions import ClientError

def get_all_classifier_details():
    session = boto3.session.Session()
    glue_client = session.client('glue')
    try:
        response = glue_client.get_classifiers()
        return response
    except ClientError as e:
        raise Exception("boto3 client error in get_all_classifier_details: " + e.__str__())
    except Exception as e:
        raise Exception("Unexpected error in get_all_classifier_details: " + e.__str__())

print(get_all_classifier_details())

実行結果

上記コードを実行すると、XMLClassifier、GrokClassifier、CsvClassifierなど、各種分類子の名前・分類タイプ・作成日時・最終更新日時・バージョンなどの詳細情報が辞書形式で返されます。

{'Classifiers': [
{'XMLClassifier': {'Name': 'aiml-linkup', 'Classification': 'xml',
'CreationTime': datetime.datetime(2020, 4, 17, 13, 26, 50,
tzinfo=tzlocal()), 'LastUpdated': datetime.datetime(2020, 4, 17, 13, 26,
50, tzinfo=tzlocal()), 'Version': 1, 'RowTag': 'job'}},
{'XMLClassifier': {'Name': 'aiml-test1', 'Classification': 'xml',
'CreationTime': datetime.datetime(2019, 10, 7, 20, 48, 44,
tzinfo=tzlocal()), 'LastUpdated': datetime.datetime(2019, 10, 7, 20, 48,
44, tzinfo=tzlocal()), 'Version': 1, 'RowTag': 'nitf'}},
{'GrokClassifier': {'Name': 'classifier1', 'Classification':
'classifier1', 'CreationTime': datetime.datetime(2018, 6, 21, 4, 7, 4,
tzinfo=tzlocal()), 'LastUpdated': datetime.datetime(2018, 6, 21, 4, 7,
11, tzinfo=tzlocal()), 'Version': 2, 'GrokPattern': 'SYSLOGTIMESTAMP
%{MONTH} +%{MONTHDAY} %{TIME}'}}, {'CsvClassifier': {'Name': 'csvquotes',
'CreationTime': datetime.datetime(2020, 9, 10, 5, 6, 29,
tzinfo=tzlocal()), 'LastUpdated': datetime.datetime(2020, 9, 10, 5, 6,
29, tzinfo=tzlocal()), 'Version': 1, 'Delimiter': ',', 'QuoteSymbol':
'"', 'ContainsHeader': 'UNKNOWN', 'DisableValueTrimming': False,
'AllowSingleColumn': False}},
{'XMLClassifier': {'Name': 'xml-test', 'Classification': 'xml',
'CreationTime': datetime.datetime(2020, 4, 10, 18, 26, 50,
tzinfo=tzlocal()), 'LastUpdated': datetime.datetime(2020, 4, 15, 0, 3,
8, tzinfo=tzlocal()), 'Version': 2, 'RowTag': 'job'}}],
'ResponseMetadata': {'RequestId': '7fa7a78e-…………e4261bfd1',
'HTTPStatusCode': 200, 'HTTPHeaders': {'date': 'Sun, 21 Feb 2021
08:02:30 GMT', 'content-type': 'application/x-amz-json-1.1', 'contentlength': '885', 'connection': 'keep-alive', 'x-amzn-requestid':
'7fa7a78e-………………..e4261bfd1'}, 'RetryAttempts': 0}}

  1. Boto3を使ってAWS Glue Data Catalogから接続の詳細情報を取得する方法

    はじめにこの記事では、Pythonのboto3ライブラリを使用して、AWS Glue Data Catalogに登録されている接続(Connection)の詳細情報を取得する方法を解説します。課題Pythonのboto3ライブラリを使って、AWS Glue Data Catalog内に存在する特定の接続の詳細情報を取得すること。例:接続定義「aurora-test」の詳細情報を取得する。解決のための手順ステップ1:例外処理のためにboto3とbotocore.exceptionsをインポートします。ステップ2:詳細を確認したい接続名(connection_name)をパラメータとして渡します。

  2. Boto3を使ってAWS Glue Data Catalogから分類子(Classifier)の詳細を取得する方法

    AWS Glue Data Catalogには、クローラがデータ形式を自動的に識別するために使用する「分類子(Classifier)」を登録できます。本記事では、Pythonのboto3ライブラリを使って、登録済みの分類子の詳細情報を取得する方法を解説します。例として、「xml-test」という名前の分類子の詳細を取得してみましょう。 分類子(Classifier)とは 分類子は、AWS GlueのクローラがS3などのデータストア内のデータを解析する際に、そのデータがJSON・CSV・XML・Grokパターンなどのどの形式に該当するかを判定するために利用される仕組みです。get_classi