Как создать каталог данных в Amazon Glue внешне? - PullRequest
0 голосов
/ 10 октября 2019

Я хочу создать каталог данных внешне в Amazon Glue. Есть ли способ?

1 Ответ

1 голос
/ 11 октября 2019

Каталог данных 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

...