AWS Doc SDK ExamplesWord
기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
AWS Glue 사용 예제 AWS CLI
다음 코드 예제에서는를 AWS Command Line Interface 와 함께 사용하여 작업을 수행하고 일반적인 시나리오를 구현하는 방법을 보여줍니다 AWS Glue.
작업은 대규모 프로그램에서 발췌한 코드이며 컨텍스트에 맞춰 실행해야 합니다. 작업은 개별 서비스 함수를 직접적으로 호출하는 방법을 보여주며 관련 시나리오의 컨텍스트에 맞는 작업을 볼 수 있습니다.
각 예제에는 컨텍스트에서 코드를 설정하고 실행하는 방법에 대한 지침을 찾을 수 있는 전체 소스 코드에 대한 링크가 포함되어 있습니다.
주제
작업
다음 코드 예시에서는 batch-stop-job-run
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
작업 실행을 중지하려면
다음
batch-stop-job-run
예제에서는 작업 실행을 중지합니다.aws glue batch-stop-job-run \ --job-name
"my-testing-job"
\ --job-run-idjr_852f1de1f29fb62e0ba4166c33970803935d87f14f96cfdee5089d5274a61d3f
출력:
{ "SuccessfulSubmissions": [ { "JobName": "my-testing-job", "JobRunId": "jr_852f1de1f29fb62e0ba4166c33970803935d87f14f96cfdee5089d5274a61d3f" } ], "Errors": [], "ResponseMetadata": { "RequestId": "66bd6b90-01db-44ab-95b9-6aeff0e73d88", "HTTPStatusCode": 200, "HTTPHeaders": { "date": "Fri, 16 Oct 2020 20:54:51 GMT", "content-type": "application/x-amz-json-1.1", "content-length": "148", "connection": "keep-alive", "x-amzn-requestid": "66bd6b90-01db-44ab-95b9-6aeff0e73d88" }, "RetryAttempts": 0 } }
자세한 내용은 AWS Glue 개발자 안내서의 작업 실행을 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 BatchStopJobRun
를 참조하세요.
-
다음 코드 예시에서는 create-connection
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
AWS Glue 데이터 스토어에 대한 연결을 생성하려면
다음
create-connection
예제에서는 Kafka 데이터 스토어에 대한 연결 정보를 제공하는 연결을 AWS Glue 데이터 카탈로그에 생성합니다.aws glue create-connection \ --connection-input '
{ \ "Name":"conn-kafka-custom", \ "Description":"kafka connection with ssl to custom kafka", \ "ConnectionType":"KAFKA", \ "ConnectionProperties":{ \ "KAFKA_BOOTSTRAP_SERVERS":"<Kafka-broker-server-url>:<SSL-Port>", \ "KAFKA_SSL_ENABLED":"true", \ "KAFKA_CUSTOM_CERT": "s3://bucket/prefix/cert-file.pem" \ }, \ "PhysicalConnectionRequirements":{ \ "SubnetId":"subnet-1234", \ "SecurityGroupIdList":["sg-1234"], \ "AvailabilityZone":"us-east-1a"} \ }
' \ --regionus-east-1
--endpointhttps://glue.us-east-1.amazonaws.com
이 명령은 출력을 생성하지 않습니다.
자세한 내용은 Glue 개발자 안내서의 AWS Glue 데이터 카탈로그에서 연결 정의를 참조하세요. AWS
-
API 세부 정보는 AWS CLI 명령 참조의 CreateConnection
를 참조하세요.
-
다음 코드 예시에서는 create-database
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
데이터베이스를 생성하려면
다음
create-database
예제에서는 AWS Glue 데이터 카탈로그에 데이터베이스를 생성합니다.aws glue create-database \ --database-input "{\"Name\":\"tempdb\"}" \ --profile
my_profile
\ --endpointhttps://glue.us-east-1.amazonaws.com
이 명령은 출력을 생성하지 않습니다.
자세한 내용은 AWS Glue 개발자 가이드의 데이터 카탈로그에서 데이터베이스 정의를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 CreateDatabase
를 참조하세요.
-
다음 코드 예시에서는 create-job
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
데이터를 변환하는 작업을 생성하려면
다음
create-job
예제는 S3에 저장된 스크립트를 실행하는 스트리밍 작업을 생성합니다.aws glue create-job \ --name
my-testing-job
\ --roleAWSGlueServiceRoleDefault
\ --command '{ \ "Name": "gluestreaming", \ "ScriptLocation": "s3://DOC-EXAMPLE-BUCKET/folder/" \ }
' \ --regionus-east-1
\ --outputjson
\ --default-arguments '{ \ "--job-language":"scala", \ "--class":"GlueApp" \ }
' \ --profilemy-profile
\ --endpointhttps://glue.us-east-1.amazonaws.com
test_script.scala
의 콘텐츠:import com.amazonaws.services.glue.ChoiceOption import com.amazonaws.services.glue.GlueContext import com.amazonaws.services.glue.MappingSpec import com.amazonaws.services.glue.ResolveSpec import com.amazonaws.services.glue.errors.CallSite import com.amazonaws.services.glue.util.GlueArgParser import com.amazonaws.services.glue.util.Job import com.amazonaws.services.glue.util.JsonOptions import org.apache.spark.SparkContext import scala.collection.JavaConverters._ object GlueApp { def main(sysArgs: Array[String]) { val spark: SparkContext = new SparkContext() val glueContext: GlueContext = new GlueContext(spark) // @params: [JOB_NAME] val args = GlueArgParser.getResolvedOptions(sysArgs, Seq("JOB_NAME").toArray) Job.init(args("JOB_NAME"), glueContext, args.asJava) // @type: DataSource // @args: [database = "tempdb", table_name = "s3-source", transformation_ctx = "datasource0"] // @return: datasource0 // @inputs: [] val datasource0 = glueContext.getCatalogSource(database = "tempdb", tableName = "s3-source", redshiftTmpDir = "", transformationContext = "datasource0").getDynamicFrame() // @type: ApplyMapping // @args: [mapping = [("sensorid", "int", "sensorid", "int"), ("currenttemperature", "int", "currenttemperature", "int"), ("status", "string", "status", "string")], transformation_ctx = "applymapping1"] // @return: applymapping1 // @inputs: [frame = datasource0] val applymapping1 = datasource0.applyMapping(mappings = Seq(("sensorid", "int", "sensorid", "int"), ("currenttemperature", "int", "currenttemperature", "int"), ("status", "string", "status", "string")), caseSensitive = false, transformationContext = "applymapping1") // @type: SelectFields // @args: [paths = ["sensorid", "currenttemperature", "status"], transformation_ctx = "selectfields2"] // @return: selectfields2 // @inputs: [frame = applymapping1] val selectfields2 = applymapping1.selectFields(paths = Seq("sensorid", "currenttemperature", "status"), transformationContext = "selectfields2") // @type: ResolveChoice // @args: [choice = "MATCH_CATALOG", database = "tempdb", table_name = "my-s3-sink", transformation_ctx = "resolvechoice3"] // @return: resolvechoice3 // @inputs: [frame = selectfields2] val resolvechoice3 = selectfields2.resolveChoice(choiceOption = Some(ChoiceOption("MATCH_CATALOG")), database = Some("tempdb"), tableName = Some("my-s3-sink"), transformationContext = "resolvechoice3") // @type: DataSink // @args: [database = "tempdb", table_name = "my-s3-sink", transformation_ctx = "datasink4"] // @return: datasink4 // @inputs: [frame = resolvechoice3] val datasink4 = glueContext.getCatalogSink(database = "tempdb", tableName = "my-s3-sink", redshiftTmpDir = "", transformationContext = "datasink4").writeDynamicFrame(resolvechoice3) Job.commit() } }
출력:
{ "Name": "my-testing-job" }
자세한 내용은 Glue 개발자 안내서의 AWS Glue에서 작업 작성을 참조하세요. AWS
-
API 세부 정보는 AWS CLI 명령 참조의 CreateJob
를 참조하세요.
-
다음 코드 예시에서는 create-table
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
예제 1: Kinesis 데이터 스트림에 대한 테이블 생성
다음
create-table
예제에서는 AWS Glue 데이터 카탈로그에 Kinesis 데이터 스트림을 설명하는 테이블을 생성합니다.aws glue create-table \ --database-name
tempdb
\ --table-input '{"Name":"test-kinesis-input", "StorageDescriptor":{ \ "Columns":[ \ {"Name":"sensorid", "Type":"int"}, \ {"Name":"currenttemperature", "Type":"int"}, \ {"Name":"status", "Type":"string"} ], \ "Location":"my-testing-stream", \ "Parameters":{ \ "typeOfData":"kinesis","streamName":"my-testing-stream", \ "kinesisUrl":"https://kinesis.us-east-1.amazonaws.com" \ }, \ "SerdeInfo":{ \ "SerializationLibrary":"org.openx.data.jsonserde.JsonSerDe"} \ }, \ "Parameters":{ \ "classification":"json"} \ }
' \ --profilemy-profile
\ --endpointhttps://glue.us-east-1.amazonaws.com
이 명령은 출력을 생성하지 않습니다.
자세한 내용은 Glue 개발자 안내서의 AWS Glue 데이터 카탈로그의 테이블 정의를 참조하세요. AWS
예제 2: Kafka 데이터 스토어에 대한 테이블 생성
다음
create-table
예제에서는 Kafka 데이터 스토어를 설명하는 테이블을 AWS Glue 데이터 카탈로그에 생성합니다.aws glue create-table \ --database-name
tempdb
\ --table-input '{"Name":"test-kafka-input", "StorageDescriptor":{ \ "Columns":[ \ {"Name":"sensorid", "Type":"int"}, \ {"Name":"currenttemperature", "Type":"int"}, \ {"Name":"status", "Type":"string"} ], \ "Location":"glue-topic", \ "Parameters":{ \ "typeOfData":"kafka","topicName":"glue-topic", \ "connectionName":"my-kafka-connection" }, \ "SerdeInfo":{ \ "SerializationLibrary":"org.apache.hadoop.hive.serde2.OpenCSVSerde"} \ }, \ "Parameters":{ \ "separatorChar":","} \ }
' \ --profilemy-profile
\ --endpointhttps://glue.us-east-1.amazonaws.com
이 명령은 출력을 생성하지 않습니다.
자세한 내용은 Glue 개발자 안내서의 AWS Glue 데이터 카탈로그의 테이블 정의를 참조하세요. AWS
예제 3: a AWS S3 데이터 스토어에 대한 테이블 생성
다음
create-table
예제에서는 AWS Glue 데이터 카탈로그에 AWS Simple Storage Service(AWS S3) 데이터 스토어를 설명하는 테이블을 생성합니다.aws glue create-table \ --database-name
tempdb
\ --table-input '{"Name":"s3-output", "StorageDescriptor":{ \ "Columns":[ \ {"Name":"s1", "Type":"string"}, \ {"Name":"s2", "Type":"int"}, \ {"Name":"s3", "Type":"string"} ], \ "Location":"s3://bucket-path/", \ "SerdeInfo":{ \ "SerializationLibrary":"org.openx.data.jsonserde.JsonSerDe"} \ }, \ "Parameters":{ \ "classification":"json"} \ }
' \ --profilemy-profile
\ --endpointhttps://glue.us-east-1.amazonaws.com
이 명령은 출력을 생성하지 않습니다.
자세한 내용은 Glue 개발자 안내서의 AWS Glue 데이터 카탈로그의 테이블 정의를 참조하세요. AWS
-
API 세부 정보는 AWS CLI 명령 참조의 CreateTable
를 참조하세요.
-
다음 코드 예시에서는 delete-job
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
작업을 삭제하려면
다음
delete-job
예제에서는 더 이상 필요하지 않은 작업을 삭제합니다.aws glue delete-job \ --job-name
my-testing-job
출력:
{ "JobName": "my-testing-job" }
자세한 내용은 Glue 개발자 안내서의 AWS Glue 콘솔에서 작업 작업을 참조하세요. AWS
-
API 세부 정보는 AWS CLI 명령 참조의 DeleteJob
를 참조하세요.
-
다음 코드 예시에서는 get-databases
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
Glue 데이터 카탈로그에 일부 또는 모든 데이터베이스의 AWS 정의를 나열하려면
다음
get-databases
예제는 데이터 카탈로그의 데이터베이스에 대한 정보를 반환합니다.aws glue get-databases
출력:
{ "DatabaseList": [ { "Name": "default", "Description": "Default Hive database", "LocationUri": "file:/spark-warehouse", "CreateTime": 1602084052.0, "CreateTableDefaultPermissions": [ { "Principal": { "DataLakePrincipalIdentifier": "IAM_ALLOWED_PRINCIPALS" }, "Permissions": [ "ALL" ] } ], "CatalogId": "111122223333" }, { "Name": "flights-db", "CreateTime": 1587072847.0, "CreateTableDefaultPermissions": [ { "Principal": { "DataLakePrincipalIdentifier": "IAM_ALLOWED_PRINCIPALS" }, "Permissions": [ "ALL" ] } ], "CatalogId": "111122223333" }, { "Name": "legislators", "CreateTime": 1601415625.0, "CreateTableDefaultPermissions": [ { "Principal": { "DataLakePrincipalIdentifier": "IAM_ALLOWED_PRINCIPALS" }, "Permissions": [ "ALL" ] } ], "CatalogId": "111122223333" }, { "Name": "tempdb", "CreateTime": 1601498566.0, "CreateTableDefaultPermissions": [ { "Principal": { "DataLakePrincipalIdentifier": "IAM_ALLOWED_PRINCIPALS" }, "Permissions": [ "ALL" ] } ], "CatalogId": "111122223333" } ] }
자세한 내용은 AWS Glue 개발자 가이드의 데이터 카탈로그에서 데이터베이스 정의를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 GetDatabases
를 참조하세요.
-
다음 코드 예시에서는 get-job-run
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
작업 실행 정보를 가져오려면
다음
get-job-run
예제는 작업 실행 정보를 검색합니다.aws glue get-job-run \ --job-name
"Combine legistators data"
\ --run-idjr_012e176506505074d94d761755e5c62538ee1aad6f17d39f527e9140cf0c9a5e
출력:
{ "JobRun": { "Id": "jr_012e176506505074d94d761755e5c62538ee1aad6f17d39f527e9140cf0c9a5e", "Attempt": 0, "JobName": "Combine legistators data", "StartedOn": 1602873931.255, "LastModifiedOn": 1602874075.985, "CompletedOn": 1602874075.985, "JobRunState": "SUCCEEDED", "Arguments": { "--enable-continuous-cloudwatch-log": "true", "--enable-metrics": "", "--enable-spark-ui": "true", "--job-bookmark-option": "job-bookmark-enable", "--spark-event-logs-path": "s3://aws-glue-assets-111122223333-us-east-1/sparkHistoryLogs/" }, "PredecessorRuns": [], "AllocatedCapacity": 10, "ExecutionTime": 117, "Timeout": 2880, "MaxCapacity": 10.0, "WorkerType": "G.1X", "NumberOfWorkers": 10, "LogGroupName": "/aws-glue/jobs", "GlueVersion": "2.0" } }
자세한 내용은 AWS Glue 개발자 안내서의 작업 실행을 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 GetJobRun
를 참조하세요.
-
다음 코드 예시에서는 get-job-runs
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
작업에 대한 모든 작업 실행 정보를 가져오려면
다음
get-job-runs
예제는 작업에 대한 작업 실행 정보를 검색합니다.aws glue get-job-runs \ --job-name
"my-testing-job"
출력:
{ "JobRuns": [ { "Id": "jr_012e176506505074d94d761755e5c62538ee1aad6f17d39f527e9140cf0c9a5e", "Attempt": 0, "JobName": "my-testing-job", "StartedOn": 1602873931.255, "LastModifiedOn": 1602874075.985, "CompletedOn": 1602874075.985, "JobRunState": "SUCCEEDED", "Arguments": { "--enable-continuous-cloudwatch-log": "true", "--enable-metrics": "", "--enable-spark-ui": "true", "--job-bookmark-option": "job-bookmark-enable", "--spark-event-logs-path": "s3://aws-glue-assets-111122223333-us-east-1/sparkHistoryLogs/" }, "PredecessorRuns": [], "AllocatedCapacity": 10, "ExecutionTime": 117, "Timeout": 2880, "MaxCapacity": 10.0, "WorkerType": "G.1X", "NumberOfWorkers": 10, "LogGroupName": "/aws-glue/jobs", "GlueVersion": "2.0" }, { "Id": "jr_03cc19ddab11c4e244d3f735567de74ff93b0b3ef468a713ffe73e53d1aec08f_attempt_2", "Attempt": 2, "PreviousRunId": "jr_03cc19ddab11c4e244d3f735567de74ff93b0b3ef468a713ffe73e53d1aec08f_attempt_1", "JobName": "my-testing-job", "StartedOn": 1602811168.496, "LastModifiedOn": 1602811282.39, "CompletedOn": 1602811282.39, "JobRunState": "FAILED", "ErrorMessage": "An error occurred while calling o122.pyWriteDynamicFrame. Access Denied (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied; Request ID: 021AAB703DB20A2D; S3 Extended Request ID: teZk24Y09TkXzBvMPG502L5VJBhe9DJuWA9/TXtuGOqfByajkfL/Tlqt5JBGdEGpigAqzdMDM/U=)", "PredecessorRuns": [], "AllocatedCapacity": 10, "ExecutionTime": 110, "Timeout": 2880, "MaxCapacity": 10.0, "WorkerType": "G.1X", "NumberOfWorkers": 10, "LogGroupName": "/aws-glue/jobs", "GlueVersion": "2.0" }, { "Id": "jr_03cc19ddab11c4e244d3f735567de74ff93b0b3ef468a713ffe73e53d1aec08f_attempt_1", "Attempt": 1, "PreviousRunId": "jr_03cc19ddab11c4e244d3f735567de74ff93b0b3ef468a713ffe73e53d1aec08f", "JobName": "my-testing-job", "StartedOn": 1602811020.518, "LastModifiedOn": 1602811138.364, "CompletedOn": 1602811138.364, "JobRunState": "FAILED", "ErrorMessage": "An error occurred while calling o122.pyWriteDynamicFrame. Access Denied (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied; Request ID: 2671D37856AE7ABB; S3 Extended Request ID: RLJCJw20brV+PpC6GpORahyF2fp9flB5SSb2bTGPnUSPVizLXRl1PN3QZldb+v1o9qRVktNYbW8=)", "PredecessorRuns": [], "AllocatedCapacity": 10, "ExecutionTime": 113, "Timeout": 2880, "MaxCapacity": 10.0, "WorkerType": "G.1X", "NumberOfWorkers": 10, "LogGroupName": "/aws-glue/jobs", "GlueVersion": "2.0" } ] }
자세한 내용은 AWS Glue 개발자 안내서의 작업 실행을 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 GetJobRuns
를 참조하세요.
-
다음 코드 예시에서는 get-job
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
작업 정보를 검색하려면
다음
get-job
예제는 작업 정보를 검색합니다.aws glue get-job \ --job-name
my-testing-job
출력:
{ "Job": { "Name": "my-testing-job", "Role": "Glue_DefaultRole", "CreatedOn": 1602805698.167, "LastModifiedOn": 1602805698.167, "ExecutionProperty": { "MaxConcurrentRuns": 1 }, "Command": { "Name": "gluestreaming", "ScriptLocation": "s3://janetst-bucket-01/Scripts/test_script.scala", "PythonVersion": "2" }, "DefaultArguments": { "--class": "GlueApp", "--job-language": "scala" }, "MaxRetries": 0, "AllocatedCapacity": 10, "MaxCapacity": 10.0, "GlueVersion": "1.0" } }
자세한 내용은 AWS Glue 개발자 안내서의 작업을 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 GetJob
를 참조하세요.
-
다음 코드 예시에서는 get-plan
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
소스 테이블에서 대상 테이블로 데이터를 매핑하기 위해 생성된 코드를 가져오려면
다음은 데이터 소스에서 데이터 대상으로 열을 매핑하기 위해 생성된 코드를
get-plan
검색합니다.aws glue get-plan --mapping '
[ \ { \ "SourcePath":"sensorid", \ "SourceTable":"anything", \ "SourceType":"int", \ "TargetPath":"sensorid", \ "TargetTable":"anything", \ "TargetType":"int" \ }, \ { \ "SourcePath":"currenttemperature", \ "SourceTable":"anything", \ "SourceType":"int", \ "TargetPath":"currenttemperature", \ "TargetTable":"anything", \ "TargetType":"int" \ }, \ { \ "SourcePath":"status", \ "SourceTable":"anything", \ "SourceType":"string", \ "TargetPath":"status", \ "TargetTable":"anything", \ "TargetType":"string" \ }]
' \ --source '{ \ "DatabaseName":"tempdb", \ "TableName":"s3-source" \ }
' \ --sinks '[ \ { \ "DatabaseName":"tempdb", \ "TableName":"my-s3-sink" \ }]
' --language"scala"
--endpointhttps://glue.us-east-1.amazonaws.com
--output"text"
출력:
import com.amazonaws.services.glue.ChoiceOption import com.amazonaws.services.glue.GlueContext import com.amazonaws.services.glue.MappingSpec import com.amazonaws.services.glue.ResolveSpec import com.amazonaws.services.glue.errors.CallSite import com.amazonaws.services.glue.util.GlueArgParser import com.amazonaws.services.glue.util.Job import com.amazonaws.services.glue.util.JsonOptions import org.apache.spark.SparkContext import scala.collection.JavaConverters._ object GlueApp { def main(sysArgs: Array[String]) { val spark: SparkContext = new SparkContext() val glueContext: GlueContext = new GlueContext(spark) // @params: [JOB_NAME] val args = GlueArgParser.getResolvedOptions(sysArgs, Seq("JOB_NAME").toArray) Job.init(args("JOB_NAME"), glueContext, args.asJava) // @type: DataSource // @args: [database = "tempdb", table_name = "s3-source", transformation_ctx = "datasource0"] // @return: datasource0 // @inputs: [] val datasource0 = glueContext.getCatalogSource(database = "tempdb", tableName = "s3-source", redshiftTmpDir = "", transformationContext = "datasource0").getDynamicFrame() // @type: ApplyMapping // @args: [mapping = [("sensorid", "int", "sensorid", "int"), ("currenttemperature", "int", "currenttemperature", "int"), ("status", "string", "status", "string")], transformation_ctx = "applymapping1"] // @return: applymapping1 // @inputs: [frame = datasource0] val applymapping1 = datasource0.applyMapping(mappings = Seq(("sensorid", "int", "sensorid", "int"), ("currenttemperature", "int", "currenttemperature", "int"), ("status", "string", "status", "string")), caseSensitive = false, transformationContext = "applymapping1") // @type: SelectFields // @args: [paths = ["sensorid", "currenttemperature", "status"], transformation_ctx = "selectfields2"] // @return: selectfields2 // @inputs: [frame = applymapping1] val selectfields2 = applymapping1.selectFields(paths = Seq("sensorid", "currenttemperature", "status"), transformationContext = "selectfields2") // @type: ResolveChoice // @args: [choice = "MATCH_CATALOG", database = "tempdb", table_name = "my-s3-sink", transformation_ctx = "resolvechoice3"] // @return: resolvechoice3 // @inputs: [frame = selectfields2] val resolvechoice3 = selectfields2.resolveChoice(choiceOption = Some(ChoiceOption("MATCH_CATALOG")), database = Some("tempdb"), tableName = Some("my-s3-sink"), transformationContext = "resolvechoice3") // @type: DataSink // @args: [database = "tempdb", table_name = "my-s3-sink", transformation_ctx = "datasink4"] // @return: datasink4 // @inputs: [frame = resolvechoice3] val datasink4 = glueContext.getCatalogSink(database = "tempdb", tableName = "my-s3-sink", redshiftTmpDir = "", transformationContext = "datasink4").writeDynamicFrame(resolvechoice3) Job.commit() } }
자세한 내용은 Glue 개발자 안내서의 AWS Glue에서 스크립트 편집을 참조하세요. AWS
-
API 세부 정보는 AWS CLI 명령 참조의 GetPlan
를 참조하세요.
-
다음 코드 예시에서는 get-tables
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
지정된 데이터베이스의 일부 또는 모든 테이블의 정의를 나열하려면
다음
get-tables
예제는 지정된 데이터베이스의 테이블에 대한 정보를 반환합니다.aws glue get-tables --database-name '
tempdb
'출력:
{ "TableList": [ { "Name": "my-s3-sink", "DatabaseName": "tempdb", "CreateTime": 1602730539.0, "UpdateTime": 1602730539.0, "Retention": 0, "StorageDescriptor": { "Columns": [ { "Name": "sensorid", "Type": "int" }, { "Name": "currenttemperature", "Type": "int" }, { "Name": "status", "Type": "string" } ], "Location": "s3://janetst-bucket-01/test-s3-output/", "Compressed": false, "NumberOfBuckets": 0, "SerdeInfo": { "SerializationLibrary": "org.openx.data.jsonserde.JsonSerDe" }, "SortColumns": [], "StoredAsSubDirectories": false }, "Parameters": { "classification": "json" }, "CreatedBy": "arn:aws:iam::007436865787:user/JRSTERN", "IsRegisteredWithLakeFormation": false, "CatalogId": "007436865787" }, { "Name": "s3-source", "DatabaseName": "tempdb", "CreateTime": 1602730658.0, "UpdateTime": 1602730658.0, "Retention": 0, "StorageDescriptor": { "Columns": [ { "Name": "sensorid", "Type": "int" }, { "Name": "currenttemperature", "Type": "int" }, { "Name": "status", "Type": "string" } ], "Location": "s3://janetst-bucket-01/", "Compressed": false, "NumberOfBuckets": 0, "SortColumns": [], "StoredAsSubDirectories": false }, "Parameters": { "classification": "json" }, "CreatedBy": "arn:aws:iam::007436865787:user/JRSTERN", "IsRegisteredWithLakeFormation": false, "CatalogId": "007436865787" }, { "Name": "test-kinesis-input", "DatabaseName": "tempdb", "CreateTime": 1601507001.0, "UpdateTime": 1601507001.0, "Retention": 0, "StorageDescriptor": { "Columns": [ { "Name": "sensorid", "Type": "int" }, { "Name": "currenttemperature", "Type": "int" }, { "Name": "status", "Type": "string" } ], "Location": "my-testing-stream", "Compressed": false, "NumberOfBuckets": 0, "SerdeInfo": { "SerializationLibrary": "org.openx.data.jsonserde.JsonSerDe" }, "SortColumns": [], "Parameters": { "kinesisUrl": "https://kinesis.us-east-1.amazonaws.com", "streamName": "my-testing-stream", "typeOfData": "kinesis" }, "StoredAsSubDirectories": false }, "Parameters": { "classification": "json" }, "CreatedBy": "arn:aws:iam::007436865787:user/JRSTERN", "IsRegisteredWithLakeFormation": false, "CatalogId": "007436865787" } ] }
자세한 내용은 Glue 개발자 안내서의 AWS Glue 데이터 카탈로그의 테이블 정의를 참조하세요. AWS
-
API 세부 정보는 AWS CLI 명령 참조의 GetTables
를 참조하세요.
-
다음 코드 예시에서는 start-crawler
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
크롤러를 시작하려면
다음
start-crawler
예제에서는 크롤러를 시작합니다.aws glue start-crawler --name
my-crawler
출력:
None
자세한 내용은 AWS Glue 개발자 안내서의 크롤러 정의 섹션을 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 StartCrawler
를 참조하세요.
-
다음 코드 예시에서는 start-job-run
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
작업을 실행하기 시작하려면
다음
start-job-run
예제에서는 작업을 시작합니다.aws glue start-job-run \ --job-name
my-job
출력:
{ "JobRunId": "jr_22208b1f44eb5376a60569d4b21dd20fcb8621e1a366b4e7b2494af764b82ded" }
자세한 내용은 AWS Glue 개발자 안내서의 작업 작성을 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 StartJobRun
를 참조하세요.
-