如何从外部在Amazon Glue中创建数据目录?

时间:2019-10-10 19:32:01

标签: amazon-web-services aws-glue aws-glue-data-catalog

我想在Amazon Glue的外部创建数据目录。有什么办法吗?

1 个答案:

答案 0 :(得分:1)

AWS Glue数据目录包含有关AWS内各种数据源的元信息,例如S3,DynamoDB等 无需使用Crawlers或AWS Console,您可以直接使用 AWS Glue API 与不同的结构(例如数据库,表格等)相关。AWS提供了几种针对不同语言的SDK,例如 boto3用于python,易于实现 使用面向对象的API。因此,只要您知道数据结构如何,就可以使用方法

创建数据库定义:

from pprint import pprint
import boto3

client = boto3.client('glue')
response = client.create_database(
    DatabaseInput={
        'Name': 'my_database',  # Required
        'Description': 'Database created with boto3 API',
        'Parameters': {
            'my_param_1': 'my_param_value_1'
        },
    }
)
pprint(response)

# Output
{
    'ResponseMetadata': {
        'HTTPHeaders': {
            'connection': 'keep-alive',
            'content-length': '2',
            'content-type': 'application/x-amz-json-1.1',
            'date': 'Fri, 11 Oct 2019 12:37:12 GMT',
            'x-amzn-requestid': '12345-67890'
        },
        'HTTPStatusCode': 200,
        'RequestId': '12345-67890',
        'RetryAttempts': 0
    }
}

enter image description here

创建表定义:

response = client.create_table(
    DatabaseName='my_database',
    TableInput={
        'Name': 'my_table',
        'Description': 'Table created with boto3 API',
        'StorageDescriptor': {
            'Columns': [
                {
                    'Name': 'my_column_1',
                    'Type': 'string',
                    'Comment': 'This is very useful column',
                },
                {
                    'Name': 'my_column_2',
                    'Type': 'string',
                    'Comment': 'This is not as useful',
                },
            ],
            'Location': 's3://some/location/on/s3',
        },
        'Parameters': {
            'classification': 'json',
            'typeOfData': 'file',
        }
    }
)

pprint(response)

# Output
{
    'ResponseMetadata': {
        'HTTPHeaders': {
            'connection': 'keep-alive',
            'content-length': '2',
            'content-type': 'application/x-amz-json-1.1',
            'date': 'Fri, 11 Oct 2019 12:38:57 GMT',
            'x-amzn-requestid': '67890-12345'
        },
        'HTTPStatusCode': 200,
        'RequestId': '67890-12345',
        'RetryAttempts': 0
    }
}

enter image description here