AWS SDK를 사용하여 AWS Glue Data Catalog의 데이터베이스에서 테이블 가져오기 - AWS Glue

AWS SDK를 사용하여 AWS Glue Data Catalog의 데이터베이스에서 테이블 가져오기

다음 코드 예제는 AWS Glue Data Catalog의 데이터베이스에서 테이블을 가져오는 방법을 보여줍니다.

.NET
AWS SDK for .NET
참고

GitHub에 더 많은 내용이 있습니다. AWS코드 예제 리포지토리에서 전체 예제를 찾고 설정 및 실행하는 방법을 배워보세요.

/// <summary> /// Gets the tables used by the database for an AWS Glue crawler. /// </summary> /// <param name="glueClient">The initialized AWS Glue client.</param> /// <param name="dbName">The name of the database.</param> /// <returns>A Boolean value indicating whether information about /// the AWS Glue tables was retrieved successfully.</returns> public static async Task<bool> GetGlueTablesAsync( AmazonGlueClient glueClient, string dbName) { var tableRequest = new GetTablesRequest { DatabaseName = dbName, }; // Get the list of AWS Glue databases. var response = await glueClient.GetTablesAsync(tableRequest); var tables = response.TableList; if (tables.Count > 0) { // Displays the list of table names. tables.ForEach(table => { Console.WriteLine($"Table name is: {table.Name}"); }); return true; } else { Console.WriteLine("No tables found."); return false; } }
  • API에 대한 세부 정보는 AWS SDK for .NET API 참조GetTables를 참조하세요.

C++
SDK for C++
참고

GitHub에 더 많은 내용이 있습니다. AWS코드 예제 리포지토리에서 전체 예제를 찾고 설정 및 실행하는 방법을 배워보세요.

Aws::Client::ClientConfiguration clientConfig; // Optional: Set to the AWS Region in which the bucket was created (overrides config file). // clientConfig.region = "us-east-1"; Aws::Glue::GlueClient client(clientConfig); Aws::Glue::Model::GetTablesRequest request; request.SetDatabaseName(CRAWLER_DATABASE_NAME); Aws::Glue::Model::GetTablesOutcome outcome = client.GetTables(request); if (outcome.IsSuccess()) { const std::vector<Aws::Glue::Model::Table> &tables = outcome.GetResult().GetTableList(); std::cout << "The database contains " << tables.size() << (tables.size() == 1 ? " table." : "tables.") << std::endl; std::cout << "Here is a list of the tables in the database."; for (size_t index = 0; index < tables.size(); ++index) { std::cout << " " << index + 1 << ": " << tables[index].GetName() << std::endl; } if (!tables.empty()) { int tableIndex = askQuestionForIntRange( "Enter an index to display the database detail ", 1, static_cast<int>(tables.size())); std::cout << tables[tableIndex - 1].Jsonize().View().WriteReadable() << std::endl; } } else { std::cerr << "Error getting the tables. " << outcome.GetError().GetMessage() << std::endl; deleteAssets(CRAWLER_NAME, CRAWLER_DATABASE_NAME, "", bucketName, clientConfig); return false; }
  • API에 대한 세부 정보는 AWS SDK for C++ API 참조GetTables를 참조하세요.

Java
Java 2.x용 SDK
참고

GitHub에 더 많은 내용이 있습니다. AWS코드 예제 리포지토리에서 전체 예제를 찾고 설정 및 실행하는 방법을 배워보세요.

public static void getGlueTable(GlueClient glueClient, String dbName, String tableName ) { try { GetTableRequest tableRequest = GetTableRequest.builder() .databaseName(dbName) .name(tableName) .build(); GetTableResponse tableResponse = glueClient.getTable(tableRequest); Instant createDate = tableResponse.table().createTime(); // Convert the Instant to readable date. DateTimeFormatter formatter = DateTimeFormatter.ofLocalizedDateTime( FormatStyle.SHORT ) .withLocale( Locale.US) .withZone( ZoneId.systemDefault() ); formatter.format( createDate ); System.out.println("The create date of the table is " + createDate ); } catch (GlueException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } }
  • API에 대한 세부 정보는 AWS SDK for Java 2.x API 참조GetTables를 참조하세요.

JavaScript
JavaScript V3용 SDK
참고

GitHub에 더 많은 내용이 있습니다. AWS코드 예제 리포지토리에서 전체 예제를 찾고 설정 및 실행하는 방법을 배워보세요.

const getTables = (databaseName) => { const client = new GlueClient({ region: DEFAULT_REGION }); const command = new GetTablesCommand({ DatabaseName: databaseName, }); return client.send(command); };
  • API에 대한 세부 정보는 AWS SDK for JavaScript API 참조GetTables를 참조하세요.

PHP
PHP용 SDK
참고

GitHub에 더 많은 내용이 있습니다. AWS코드 예제 리포지토리에서 전체 예제를 찾고 설정 및 실행하는 방법을 배워보세요.

$databaseName = "doc-example-database-$uniqid"; $tables = $glueService->getTables($databaseName); public function getTables($databaseName): Result { return $this->glueClient->getTables([ 'DatabaseName' => $databaseName, ]); }
  • API에 대한 세부 정보는 AWS SDK for PHP API 참조GetTables를 참조하세요.

Python
Python용 SDK(Boto3)
참고

GitHub에 더 많은 내용이 있습니다. AWS코드 예제 리포지토리에서 전체 예제를 찾고 설정 및 실행하는 방법을 배워보세요.

class GlueWrapper: """Encapsulates AWS Glue actions.""" def __init__(self, glue_client): """ :param glue_client: A Boto3 Glue client. """ self.glue_client = glue_client def get_tables(self, db_name): """ Gets a list of tables in a Data Catalog database. :param db_name: The name of the database to query. :return: The list of tables in the database. """ try: response = self.glue_client.get_tables(DatabaseName=db_name) except ClientError as err: logger.error( "Couldn't get tables %s. Here's why: %s: %s", db_name, err.response['Error']['Code'], err.response['Error']['Message']) raise else: return response['TableList']
  • API에 대한 세부 정보는 Python용 AWS SDK(Boto3) API 참조GetTables를 참조하세요.

Rust
Rust용 SDK
참고

이 설명서는 평가판 버전 SDK에 관한 것입니다. SDK는 변경될 수 있으며 프로덕션에서 사용해서는 안 됩니다.

참고

GitHub에 더 많은 내용이 있습니다. AWS코드 예제 리포지토리에서 전체 예제를 찾고 설정 및 실행하는 방법을 배워보세요.

let tables = glue .get_tables() .database_name(self.database()) .send() .await .map_err(GlueMvpError::from_glue_sdk)?; let tables = tables .table_list() .ok_or_else(|| GlueMvpError::Unknown("No tables in database".into()))?;
  • API에 대한 세부 정보는 Rust용 AWS SDK API 참조GetTables를 참조하세요.

AWS SDK 개발자 가이드 및 코드 예제의 전체 목록은 AWS Glue와 AWS SDK 사용 섹션을 참조하세요. 이 주제에는 시작하기에 대한 정보와 이전 SDK 버전에 대한 세부 정보도 포함되어 있습니다.