Esta documentação é somente para a versão 1 da AWS CLI. Para obter a documentação relacionada à AWS CLI versão 2, consulte o Guia do usuário da versão 2.
Exemplos do AWS Glue usando oAWS CLI
Os exemplos de código a seguir mostram como realizar ações e implementar cenários comuns usando o AWS Command Line Interface com o AWS Glue.
Ações são trechos de código de programas maiores e devem ser executadas em contexto. Embora as ações mostrem como chamar perfis de serviço individuais, você pode ver as ações no contexto em seus cenários relacionados.
Cada exemplo inclui um link para o código-fonte completo, em que você pode encontrar instruções sobre como configurar e executar o código.
Tópicos
Ações
O código de exemplo a seguir mostra como usar batch-stop-job-run.
- AWS CLI
-
Interromper execuções de tarefa
O exemplo
batch-stop-job-runa seguir interrompe a execução de uma tarefa.aws glue batch-stop-job-run \ --job-name"my-testing-job"\ --job-run-idjr_852f1de1f29fb62e0ba4166c33970803935d87f14f96cfdee5089d5274a61d3fSaída:
{ "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 } }Para obter mais informações, consulte Execuções de trabalhos no Guia do desenvolvedor do AWS Glue.
-
Para ver detalhes da API, consulte BatchStopJobRun
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar create-connection.
- AWS CLI
-
Criar uma conexão para AWS armazenamentos de dados do Glue
O exemplo
create-connectiona seguir cria uma conexão no Catálogo de Dados do AWS Glue que fornece informações de conexão para armazenar dados Kafka.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.comEste comando não produz saída.
Para obter mais informações, consulte Defining Connections in the AWS Glue Data Catalog no AWS Guia do Desenvolvedor do Glue.
-
Para ver detalhes da API, consulte CreateConnection
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar create-database.
- AWS CLI
-
Para criar um banco de dados
O exemplo
create-databasea seguir cria um banco de dados no Catálogo de Dados do AWS Glue.aws glue create-database \ --database-input "{\"Name\":\"tempdb\"}" \ --profilemy_profile\ --endpointhttps://glue.us-east-1.amazonaws.comEste comando não produz saída.
Para obter mais informações, consulte Definir um banco de dados no seu Catálogo de Dados no Guia do desenvolvedor do AWS Glue.
-
Para ver detalhes da API, consulte CreateDatabase
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar create-job.
- AWS CLI
-
Para criar um trabalho para transformar dados
O exemplo de
create-joba seguir cria um trabalho de streaming que executa um script armazenado no S3.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.comConteúdo de
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() } }Saída:
{ "Name": "my-testing-job" }Para obter mais informações, consulte Criação de trabalhos no AWS Glue no Guia do desenvolvedor do AWS Glue.
-
Para obter detalhes da API, consulte CreateJob
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar create-table.
- AWS CLI
-
Exemplo 1: criar uma tabela para fluxo de dados do Kinesis
O exemplo
create-tablea seguir cria uma tabela no Catálogo de Dados do AWS Glue que descreve um fluxo de dados do Kinesis.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.comEste comando não produz saída.
Para obter mais informações, consulte Definição de tabelas no catálogo de dados do AWS Glue no Guia do desenvolvedor do AWS Glue.
Exemplo 2: criar uma tabela para armazenamento de dados Kafka
O exemplo
create-tablea seguir cria uma tabela no Catálogo de Dados do AWS Glue que descreve um armazenamento de dados Kafka.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.comEste comando não produz saída.
Para obter mais informações, consulte Definição de tabelas no catálogo de dados do AWS Glue no Guia do desenvolvedor do AWS Glue.
Exemplo 3: criar uma tabela para armazenamento de dados AWS do S3
O exemplo
create-tablea seguir cria uma tabela no Catálogo de Dados do AWS Glue que descreve um armazenamento de dados do AWS Simple Storage Service (AWS S3).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.comEste comando não produz saída.
Para obter mais informações, consulte Definição de tabelas no catálogo de dados do AWS Glue no Guia do desenvolvedor do AWS Glue.
-
Para obter detalhes da API, consulte CreateTable
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar delete-job.
- AWS CLI
-
Para excluir um trabalho
O exemplo de
delete-joba seguir exclui um trabalho que não é mais necessário.aws glue delete-job \ --job-namemy-testing-jobSaída:
{ "JobName": "my-testing-job" }Para obter mais informações, consulte Trabalhar com trabalhos no console do AWS Glue no Guia do desenvolvedor do AWS Glue.
-
Para obter detalhes da API, consulte DeleteJob
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar get-databases.
- AWS CLI
-
Para listar as definições de alguns ou de todos os bancos de dados no Catálogo de Dados do AWS Glue
O exemplo de
get-databasesa seguir retorna informações sobre os bancos de dados no Catálogo de Dados.aws glue get-databasesSaída:
{ "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" } ] }Para obter mais informações, consulte Definir um banco de dados no seu Catálogo de Dados no Guia do desenvolvedor do AWS Glue.
-
Para obter detalhes da API, consulte GetDatabases
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar get-job-run.
- AWS CLI
-
Para obter informações sobre uma execução de trabalho
O exemplo
get-job-runa seguir recupera informações sobre uma execução de trabalho.aws glue get-job-run \ --job-name"Combine legistators data"\ --run-idjr_012e176506505074d94d761755e5c62538ee1aad6f17d39f527e9140cf0c9a5eSaída:
{ "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" } }Para obter mais informações, consulte Execuções de trabalhos no Guia do desenvolvedor do AWS Glue.
-
Para obter detalhes da API, consulte GetJobRun
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar get-job-runs.
- AWS CLI
-
Para obter informações sobre todas as execuções de um trabalho
O exemplo
get-job-runsa seguir recupera informações sobre execuções de trabalho para um trabalho.aws glue get-job-runs \ --job-name"my-testing-job"Saída:
{ "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" } ] }Para obter mais informações, consulte Execuções de trabalhos no Guia do desenvolvedor do AWS Glue.
-
Para obter detalhes da API, consulte GetJobRuns
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar get-job.
- AWS CLI
-
Para recuperar informações sobre um trabalho
O exemplo de
get-joba seguir recupera informações sobre um trabalho.aws glue get-job \ --job-namemy-testing-jobSaída:
{ "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" } }Para obter mais informações, consulte Trabalhos no Guia do desenvolvedor do AWS Glue.
-
Para obter detalhes da API, consulte GetJob
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar get-plan.
- AWS CLI
-
Obter o código gerado para mapear dados das tabelas de origem para as tabelas de destino
O código a seguir
get-planrecupera o código gerado para mapear colunas da fonte de dados para o destino de dados.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"Saída:
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() } }Para obter mais informações, consulte Editar scripts em AWS Glue no AWS Guia do Desenvolvedor do Glue.
-
Para ver detalhes da API, consulte GetPlan
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar get-tables.
- AWS CLI
-
Para listar as definições de algumas ou de todas as tabelas no banco de dados especificado
O exemplo de
get-tablesa seguir retorna informações sobre as tabelas no banco de dados especificado.aws glue get-tables --database-name 'tempdb'Saída:
{ "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" } ] }Para obter mais informações, consulte Definição de tabelas no catálogo de dados do AWS Glue no Guia do desenvolvedor do AWS Glue.
-
Para obter detalhes da API, consulte GetTables
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar start-crawler.
- AWS CLI
-
Para iniciar um crawler
O exemplo de
start-crawlera seguir inicia um crawler.aws glue start-crawler --namemy-crawlerSaída:
NonePara obter mais informações, consulte Definição de crawlers no Guia do desenvolvedor do AWS Glue.
-
Para obter detalhes da API, consulte StartCrawler
na Referência de comandos da AWS CLI.
-
O código de exemplo a seguir mostra como usar start-job-run.
- AWS CLI
-
Para iniciar a execução de um trabalho
O exemplo de
start-job-runa seguir inicia um trabalho.aws glue start-job-run \ --job-namemy-jobSaída:
{ "JobRunId": "jr_22208b1f44eb5376a60569d4b21dd20fcb8621e1a366b4e7b2494af764b82ded" }Para obter mais informações, consulte Criação de trabalhos no Guia do desenvolvedor do AWS Glue.
-
Para obter detalhes da API, consulte StartJobRun
na Referência de comandos da AWS CLI.
-