get-plan
Описание
Получает код для выполнения указанного отображения.
См. также: Документация API AWS
Синтаксис
get-plan
--mapping <value>
--source <value>
[--sinks <value>]
[--location <value>]
[--language <value>]
[--additional-plan-options-map <value>]
[--cli-input-json | --cli-input-yaml]
[--generate-cli-skeleton <value>]
[--debug]
[--endpoint-url <value>]
[--no-verify-ssl]
[--no-paginate]
[--output <value>]
[--query <value>]
[--profile <value>]
[--region <value>]
[--version <value>]
[--color <value>]
[--no-sign-request]
[--ca-bundle <value>]
[--cli-read-timeout <value>]
[--cli-connect-timeout <value>]
[--cli-binary-format <value>]
[--no-cli-pager]
[--cli-auto-prompt]
[--no-cli-auto-prompt]
Параметры
--mapping (список)
Список отображений из таблицы-источника в таблицы-приемники.
(структура)
Определяет отображение.
SourceTable -> (строка)
SourcePath -> (строка)
SourceType -> (строка)
TargetTable -> (строка)
TargetPath -> (строка)
TargetType -> (строка)
Сокращенный синтаксис:
SourceTable=string,SourcePath=string,SourceType=string,TargetTable=string,TargetPath=string,TargetType=string ...
Синтаксис JSON:
[
{
"SourceTable": "string",
"SourcePath": "string",
"SourceType": "string",
"TargetTable": "string",
"TargetPath": "string",
"TargetType": "string"
}
...
]
--source (структура)
Таблица-источник.
DatabaseName -> (строка)
TableName -> (строка)
Сокращенный синтаксис:
DatabaseName=string,TableName=string
Синтаксис JSON:
{
"DatabaseName": "string",
"TableName": "string"
}
--sinks (список)
Таблицы-приемники.
(структура)
Указывает определение таблицы в каталоге данных Glue.
DatabaseName -> (строка)
TableName -> (строка)
Сокращенный синтаксис:
DatabaseName=string,TableName=string ...
Синтаксис JSON:
[
{
"DatabaseName": "string",
"TableName": "string"
}
...
]
--location (структура)
Параметры отображения.
Jdbc -> (список)
Расположение JDBC.
(структура)
Аргумент или свойство узла.
Name -> (строка)
Value -> (строка)
Param -> (логическое значение)
S3 -> (список)
Расположение Amazon Simple Storage Service (Amazon S3).
(структура)
Аргумент или свойство узла.
Name -> (строка)
Value -> (строка)
Param -> (логическое значение)
DynamoDB -> (список)
Расположение таблицы Amazon DynamoDB.
(структура)
Аргумент или свойство узла.
Name -> (строка)
Value -> (строка)
Param -> (логическое значение)
Сокращенный синтаксис:
Jdbc=[{Name=string,Value=string,Param=boolean},{Name=string,Value=string,Param=boolean}],S3=[{Name=string,Value=string,Param=boolean},{Name=string,Value=string,Param=boolean}],DynamoDB=[{Name=string,Value=string,Param=boolean},{Name=string,Value=string,Param=boolean}]
Синтаксис JSON:
{
"Jdbc": [
{
"Name": "string",
"Value": "string",
"Param": true|false
}
...
],
"S3": [
{
"Name": "string",
"Value": "string",
"Param": true|false
}
...
],
"DynamoDB": [
{
"Name": "string",
"Value": "string",
"Param": true|false
}
...
]
}
--language (строка)
Язык программирования кода для выполнения отображения.
Возможные значения:
PYTHONSCALA
--additional-plan-options-map (карта)
Карта для хранения дополнительных необязательных параметров.
В настоящее время поддерживаются следующие пары «ключ-значение»:
-
inferSchema— Указывает, нужно ли установитьinferSchemaв значение true или false для скрипта по умолчанию, генерируемого заданием Glue. Например, чтобы установитьinferSchemaв true, передайте следующую пару «ключ-значение»:--additional-plan-options-map '{"inferSchema":"true"}'
key -> (строка)
value -> (строка)
Сокращенный синтаксис:
KeyName1=string,KeyName2=string
Синтаксис JSON:
{"string": "string"
...}
--cli-input-json | --cli-input-yaml (строка) Считывает аргументы из предоставленной JSON-строки. JSON-строка соответствует формату, предоставленному --generate-cli-skeleton. Если на командной строке предоставлены другие аргументы, эти значения переопределят значения, предоставленные в JSON. Невозможно передавать произвольные двоичные значения, используя значение, предоставленное в JSON, так как строка будет взята буквально. Это не может быть указано вместе с --cli-input-yaml.
--generate-cli-skeleton (строка) Выводит JSON-скелет в стандартный вывод без отправки запроса API. Если предоставлено без значения или со значением input, выводит пример входного JSON, который можно использовать в качестве аргумента для --cli-input-json. Аналогично, если предоставлено yaml-input, выведет пример входного YAML, который можно использовать с --cli-input-yaml. Если предоставлено значение output, проверяет входные данные команды и возвращает пример выходного JSON для этой команды. Сгенерированный JSON-скелет не стабилен между версиями AWS CLI, и нет гарантии обратной совместимости в сгенерированном JSON-скелете.
Глобальные параметры
--debug (логическое значение)
Включить отладовую запись.
--endpoint-url (строка)
Переопределить URL по умолчанию команды на указанный URL.
--no-verify-ssl (логическое значение)
По умолчанию AWS CLI использует SSL при общении с AWS-сервисами. Для каждого соединения SSL AWS CLI будет проверять сертификаты SSL. Этот параметр переопределяет стандартное поведение проверки сертификатов SSL.
--no-paginate (логическое значение)
Отключить автоматическую постраничную навигацию. Если автоматическая постраничная навигация отключена, AWS CLI выполнит только один вызов для первой страницы результатов.
--output (строка)
Стиль форматирования для вывода команды.
- json
- text
- table
- yaml
- yaml-stream
--query (строка)
Запрос JMESPath для фильтрации данных ответа.
--profile (строка)
Использовать определенный профиль из файла учетных данных.
--region (строка)
Регион для использования. Переопределяет настройки конфигурации/среды.
--version (строка)
Отобразить версию этого инструмента.
--color (строка)
Включить/выключить цветной вывод.
- on
- off
- auto
--no-sign-request (логическое значение)
Не подписывать запросы. Учетные данные не будут загружены, если этот аргумент указан.
--ca-bundle (строка)
Файл сертификатов CA для проверки сертификатов SSL. Переопределяет настройки конфигурации/среды.
--cli-read-timeout (целое число)
Максимальное время чтения сокета в секундах. Если значение установлено в 0, чтение сокета будет блокирующим и не будет иметь таймаута. Значение по умолчанию — 60 секунд.
--cli-connect-timeout (целое число)
Максимальное время подключения сокета в секундах. Если значение установлено в 0, подключение сокета будет блокирующим и не будет иметь таймаута. Значение по умолчанию — 60 секунд.
--cli-binary-format (строка)
Стиль форматирования, используемый для двоичных блоков. Формат по умолчанию — base64. Формат base64 ожидает, что двоичные блоки будут предоставлены как закодированная строка base64. Формат raw-in-base64-out сохраняет совместимость с поведением AWS CLI V1, и двоичные значения должны быть переданы буквально. При предоставлении содержимого из файла, которое соответствует двоичному блоку, fileb:// всегда будет обрабатываться как двоичное и будет использовать содержимое файла напрямую независимо от настройки cli-binary-format. При использовании file:// содержимое файла должно быть должным образом отформатировано для настроенного cli-binary-format.
- base64
- raw-in-base64-out
--no-cli-pager (логическое значение)
Отключить пейджер CLI для вывода.
--cli-auto-prompt (логическое значение)
Автоматически запрашивать параметры ввода CLI.
--no-cli-auto-prompt (логическое значение)
Отключить автоматическое запроса параметров ввода CLI.
Примеры
Примечание
Для использования следующих примеров вам необходимо установить и настроить AWS CLI. Дополнительную информацию см. в руководстве по началу работы в руководстве пользователя AWS CLI.
Если не указано иное, все примеры используют правила цитирования, характерные для Unix. Эти примеры необходимо адаптировать к правилам цитирования вашей терминальной оболочки. См. раздел Использование кавычек со строками в руководстве пользователя 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"
--endpoint https://glue.us-east-1.amazonaws.com
--output "text"
Вывод:
importcom.amazonaws.services.glue.ChoiceOption
importcom.amazonaws.services.glue.GlueContext
importcom.amazonaws.services.glue.MappingSpec
importcom.amazonaws.services.glue.ResolveSpec
importcom.amazonaws.services.glue.errors.CallSite
importcom.amazonaws.services.glue.util.GlueArgParser
importcom.amazonaws.services.glue.util.Job
importcom.amazonaws.services.glue.util.JsonOptions
importorg.apache.spark.SparkContext
importscala.collection.JavaConverters._
object GlueApp {
defmain(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()
}
}
Дополнительную информацию см. в разделе Редактирование скриптов в AWS Glue в руководстве разработчика AWS Glue.
Вывод
PythonScript -> (строка)
ScalaCode -> (строка)
© Copyright 2025, Amazon Web Services. Created using Sphinx.