Beispiele für die Verwendung der AWS CLI mit AWS Glue
Die folgenden Codebeispiele zeigen, wie Sie Aktionen durchführen und gängige Szenarien implementieren, indem Sie die AWS Command Line Interface mit AWS Glue nutzen.
Aktionen sind Codeauszüge aus größeren Programmen und müssen im Kontext ausgeführt werden. Während Aktionen Ihnen zeigen, wie Sie einzelne Service-Funktionen aufrufen, können Sie Aktionen im Kontext der zugehörigen Szenarien anzeigen.
Jedes Beispiel enthält einen Link zum vollständigen Quellcode, wo Sie Anleitungen zum Einrichten und Ausführen des Codes im Kontext finden.
Themen
Aktionen
Das folgende Codebeispiel zeigt, wie batch-stop-job-run verwendet wird.
- AWS CLI
-
So stoppen Sie Auftragsausführungen
Im folgenden Beispiel für
batch-stop-job-runwird eine Auftragsausführung gestoppt.aws glue batch-stop-job-run \ --job-name"my-testing-job"\ --job-run-idjr_852f1de1f29fb62e0ba4166c33970803935d87f14f96cfdee5089d5274a61d3fAusgabe:
{ "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 } }Weitere Informationen finden Sie unter Auftragsausführungen im Entwicklerhandbuch zu AWS Glue.
-
API-Details finden Sie unter BatchStopJobRun
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie create-connection verwendet wird.
- AWS CLI
-
So stellen Sie eine Verbindung für AWS-Glue-Datenspeicher her
Im folgenden Beispiel für
create-connectionwird eine Verbindung im AWS-Glue-Datenkatalog erstellt, die Verbindungsinformationen für einen Kafka-Datenspeicher bereitstellt.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.rproxy.govskope.caMit diesem Befehl wird keine Ausgabe zurückgegeben.
Weitere Informationen finden Sie unter Definieren von Verbindungen im AWS-Glue-Datenkatalog im Entwicklerhandbuch zu AWS Glue.
-
API-Details finden Sie unter CreateConnection
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie create-database verwendet wird.
- AWS CLI
-
So erstellen Sie eine Datenbank
Im folgenden Beispiel für
create-databasewird eine Datenbank im AWS-Glue-Datenkatalog erstellt.aws glue create-database \ --database-input "{\"Name\":\"tempdb\"}" \ --profilemy_profile\ --endpointhttps://glue---us-east-1.amazonaws.com.rproxy.govskope.caMit diesem Befehl wird keine Ausgabe zurückgegeben.
Weitere Informationen finden Sie unter Definieren einer Datenbank in Ihrem Datenkatalog im Entwicklerhandbuch zu AWS Glue.
-
API-Details finden Sie unter CreateDatabase
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie create-job verwendet wird.
- AWS CLI
-
Einen Auftrag zur Datentransformation erstellen
Im folgenden Beispiel für
create-jobwird ein Streaming-Job erstellt, der ein in S3 gespeichertes Skript ausführt.aws glue create-job \ --namemy-testing-job\ --roleAWSGlueServiceRoleDefault\ --command '{ \ "Name": "gluestreaming", \ "ScriptLocation": "s3://amzn-s3-demo-bucket/folder/" \ }' \ --regionus-east-1\ --outputjson\ --default-arguments '{ \ "--job-language":"scala", \ "--class":"GlueApp" \ }' \ --profilemy-profile\ --endpointhttps://glue---us-east-1.amazonaws.com.rproxy.govskope.caInhalt von
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() } }Ausgabe:
{ "Name": "my-testing-job" }Weitere Informationen finden Sie unter Autorisieren von Aufträgen in AWS Glue im Entwicklerhandbuch zu AWS Glue.
-
API-Details finden Sie unter CreateJob
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie create-table verwendet wird.
- AWS CLI
-
Beispiel 1: So erstellen Sie eine Tabelle für einen Kinesis-Datenstrom
Im folgenden Beispiel für
create-tablewird eine Tabelle im AWS-Glue-Datenkatalog erstellt, die einen Kinesis-Datenstrom beschreibt.aws glue create-table \ --database-nametempdb\ --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.rproxy.govskope.caMit diesem Befehl wird keine Ausgabe zurückgegeben.
Weitere Informationen finden Sie unter Definieren von Tabellen im AWS-Glue-Datenkatalog und im Entwicklerhandbuch zu AWS Glue.
Beispiel 2: So erstellen Sie eine Tabelle für einen Kafka-Datenspeicher
Im folgenden Beispiel für
create-tablewird eine Tabelle im AWS-Glue-Datenkatalog erstellt, die einen Kafka-Datenspeicher beschreibt.aws glue create-table \ --database-nametempdb\ --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.rproxy.govskope.caMit diesem Befehl wird keine Ausgabe zurückgegeben.
Weitere Informationen finden Sie unter Definieren von Tabellen im AWS-Glue-Datenkatalog und im Entwicklerhandbuch zu AWS Glue.
Beispiel 3: So erstellen Sie eine Tabelle für einen AWS-S3-Datenspeicher
Im folgenden Beispiel für
create-tablewird eine Tabelle im AWS-Glue-Datenkatalog erstellt, die einen Datenspeicher von AWS Simple Storage Service (AWS S3) beschreibt.aws glue create-table \ --database-nametempdb\ --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.rproxy.govskope.caMit diesem Befehl wird keine Ausgabe zurückgegeben.
Weitere Informationen finden Sie unter Definieren von Tabellen im AWS-Glue-Datenkatalog und im Entwicklerhandbuch zu AWS Glue.
-
API-Details finden Sie unter CreateTable
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie delete-job verwendet wird.
- AWS CLI
-
Einen Auftrag löschen
Das folgende Beispiel für
delete-joblöscht einen Auftrag, der nicht mehr benötigt wird.aws glue delete-job \ --job-namemy-testing-jobAusgabe:
{ "JobName": "my-testing-job" }Weitere Informationen finden Sie unter Arbeiten mit Aufträgen in der AWS-Glue-Konsole im Entwicklerhandbuch zu AWS Glue.
-
API-Details finden Sie unter DeleteJob
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie get-databases verwendet wird.
- AWS CLI
-
Die Definitionen einiger oder aller Datenbanken im AWS-Glue-Datenkatalog auflisten
Das folgende Beispiel für
get-databasesgibt Informationen über die Datenbanken im Datenkatalog zurück.aws glue get-databasesAusgabe:
{ "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" } ] }Weitere Informationen finden Sie unter Definieren einer Datenbank in Ihrem Datenkatalog im Entwicklerhandbuch zu AWS Glue.
-
API-Details finden Sie unter GetDatabases
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie get-job-run verwendet wird.
- AWS CLI
-
Informationen zu einer Auftragsausführung abrufen
Das folgende Beispiel für
get-job-runruft Informationen zu einer Auftragsausführung ab.aws glue get-job-run \ --job-name"Combine legistators data"\ --run-idjr_012e176506505074d94d761755e5c62538ee1aad6f17d39f527e9140cf0c9a5eAusgabe:
{ "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" } }Weitere Informationen finden Sie unter Auftragsausführungen im Entwicklerhandbuch zu AWS Glue.
-
API-Details finden Sie unter GetJobRun
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie get-job-runs verwendet wird.
- AWS CLI
-
Informationen über alle Ausführungen eines Auftrags abrufen
Das folgende Beispiel für
get-job-runsruft Informationen zu allen Ausführungen eines Auftrags ab.aws glue get-job-runs \ --job-name"my-testing-job"Ausgabe:
{ "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" } ] }Weitere Informationen finden Sie unter Auftragsausführungen im Entwicklerhandbuch zu AWS Glue.
-
API-Details finden Sie unter GetJobRuns
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie get-job verwendet wird.
- AWS CLI
-
Informationen zu einem Auftrag abrufen
Das folgende Beispiel für
get-jobruft Informationen zu einem Auftrag ab.aws glue get-job \ --job-namemy-testing-jobAusgabe:
{ "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" } }Weitere Informationen finden Sie unter Aufträge im Entwicklerhandbuch zu AWS Glue.
-
API-Details finden Sie unter GetJob
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie get-plan verwendet wird.
- AWS CLI
-
So rufen Sie den generierten Code für die Zuweisung von Daten aus Quelltabellen zu Zieltabellen ab
Im folgenden Beispiel für
get-planwird der generierte Code für die Zuweisung von Spalten aus der Datenquelle zum Datenziel abgerufen.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.rproxy.govskope.ca--output"text"Ausgabe:
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() } }Weitere Informationen finden Sie unter Bearbeiten von Skripten in AWS Glue im Entwicklerhandbuch zu AWS Glue.
-
API-Details finden Sie unter GetPlan
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie get-tables verwendet wird.
- AWS CLI
-
Die Definitionen einiger oder aller Tabellen in der angegebenen Datenbank auflisten
Das folgende Beispiel für
get-tablesgibt Informationen zu den Tabellen in der angegebenen Datenbank zurück.aws glue get-tables --database-name 'tempdb'Ausgabe:
{ "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" } ] }Weitere Informationen finden Sie unter Definieren von Tabellen im AWS-Glue-Datenkatalog und im Entwicklerhandbuch zu AWS Glue.
-
API-Details finden Sie unter GetTables
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie start-crawler verwendet wird.
- AWS CLI
-
Einen Crawler starten
Das folgende Beispiel für
start-crawlerstartet einen Crawler.aws glue start-crawler --namemy-crawlerAusgabe:
NoneWeitere Informationen finden Sie unter Definieren von Crawlern im Entwicklerhandbuch zu AWS Glue.
-
API-Details finden Sie unter StartCrawler
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie start-job-run verwendet wird.
- AWS CLI
-
Die Auftragsausführung starten
Das folgende Beispiel für
start-job-runstartet die Ausführung eines Auftrags.aws glue start-job-run \ --job-namemy-jobAusgabe:
{ "JobRunId": "jr_22208b1f44eb5376a60569d4b21dd20fcb8621e1a366b4e7b2494af764b82ded" }Weitere Informationen finden Sie unter Autorisieren von Aufträgen im Entwicklerhandbuch zu AWS Glue.
-
API-Details finden Sie unter StartJobRun
in der AWS CLI-Befehlsreferenz.
-