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 버전에 대한 세부 정보도 포함되어 있습니다.