Spec-Zone.ru › AWS CLI v2

[ aws . glue ]

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 (строка)

Язык программирования кода для выполнения отображения.

Возможные значения:

  • PYTHON
  • SCALA

--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 -> (строка)

Python-скрипт для выполнения отображения.

ScalaCode -> (строка)

Scala-код для выполнения отображения.

© Copyright 2025, Amazon Web Services. Created using Sphinx.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API