Облачная платформаAdvanced

Создание и отправка SQL Job

Язык статьи: Русский
Показать оригинал
Страница переведена автоматически и может содержать неточности. Рекомендуем сверяться с английской версией.

Введение

DLI предоставляет SQL editor для выполнения операций запросов данных с использованием SQL statements.

В этом разделе описывается, как создать и отправить SQL job с помощью DLI SQL editor.

Примечания

  • Перед отправкой SQL job необходимо настроить DLI job bucket. Bucket используется для хранения результатов работы и временных данных, генерируемых DLI, таких как job logs.
    • Подробную информацию о том, как настроить job bucket, см. Configuring a DLI Job Bucket. Имя job bucket задаётся по умолчанию.
    • Если ваша SQL queue настроена на сохранение результатов работы в DLI job bucket, система запишет результаты непосредственно в указанный OBS bucket при выполнении SQL job. Убедитесь, что следующие подготовительные действия выполнены перед отправкой задания:
      • Настройте информацию DLI job bucket перед отправкой SQL job. В противном случае SQL job может не быть отправлен.
      • Убедитесь, что пользователь, выполняющий SQL job, имеет права чтения и записи для DLI job bucket. В противном случае результаты работы не могут быть корректно сохранены или получены.

        При выполнении задания система получает доступ к job bucket, используя идентификационные данные пользователя, отправившего задание. Если прав недостаточно, это приводит к ошибке сохранения или получения результатов задания.

      Подробную информацию см. в How Do I Check if Job Result Saving to a DLI Job Bucket Is Enabled for a SQL Queue?

    • В OBS management console можно настроить правила жизненного цикла для bucket, чтобы автоматически удалять объекты внутри него или регулярно менять классы хранения объектов.

Создание и отправка SQL Job с использованием SQL Editor

  1. Войдите в DLI management console. В navigation pane слева выберите SQL Editor.

    На SQL Editor странице система предлагает создать временный DLI data Бакет для хранения временных данных, генерируемых DLI. Для получения подробной информации о том, как настроить job bucket, см. Configuring a DLI Job Bucket.

  2. Над SQL job editing window задайте параметры, необходимые для выполнения SQL‑задачи, такие как очередь и база данных. Чтобы узнать, как задать параметры, см. Table 1.
    Table 1 Настройка параметров SQL‑задачи

    Button & Drop-Down List

    Description

    Queues

    Очередь ресурсов, используемая для выполнения SQL‑задач.

    Очередь определяет вычислительные ресурсы, доступные задаче во время её работы в эластичном пуле ресурсов. Каждая очередь выделяется с конкретными ресурсами, известными как CUs, конфигурация которых существенно влияет на производительность и эффективность выполнения задачи.

    Перед отправкой задачи оцените её потребности в ресурсах и выберите подходящую очередь.

    SQL‑задачи могут выполняться только в SQL‑очередях.

    Если доступных очередей нет, вы можете создать очередь или использовать очередь default.

    • Для получения подробной информации о том, как создать очередь, см. Creating an Elastic Resource Pool and Creating Queues Within It.
    • Очередь default хорошо подходит для временных или тестовых сценариев с неопределёнными объёмами данных или редкими потребностями в обработке данных.

    Databases

    Выберите базу данных из раскрывающегося списка.

    Если база данных недоступна, отображается default база данных.

    Чтобы создать базу данных, см. Creating a Data Catalog, Database, and Table on the DLI Console.

    Если в SQL‑операторах указана база данных, в которой находятся таблицы, выбранная здесь база данных не применяется.

    Settings

    Добавьте параметры и теги.

    Parameter Settings: Установите параметры в формате key/value для SQL jobs.

    Tags: Присвойте пары ключ‑значение в виде тегов SQL job.

  3. Создайте базу данных и таблицу.

    Создайте их заранее, обратившись к Creating a Data Catalog, Database, and Table on the DLI Console. Например, создайте таблицу с именем qw.

  4. В окне редактирования SQL‑задачи введите следующее SQL‑выражение:
    1SELECT * FROM qw.qw LIMIT 10;

    В качестве альтернативы можно дважды щёлкнуть имя таблицы qw. Запрос автоматически вводится в окно редактирования SQL‑задачи.

    DLI предоставляет набор SQL‑шаблонов с примерами использования, примерами кода и руководствами. Вы также можете использовать эти шаблоны для быстрой реализации логики сервиса. Для получения дополнительной информации о шаблонах см. Creating a SQL Job Template.

  5. On top of the editing window, click More > Verify Syntax to check whether the SQL statement is correct.
    1. Если проверка не удалась, проверьте синтаксис SQL‑оператора, обратившись к Data Lake Insight SQL Syntax Reference.
    2. Если проверка синтаксиса прошла успешно, нажмите Execute. Прочитайте и согласитесь с соглашением о конфиденциальности. Нажмите OK для выполнения SQL‑оператора.

    После успешного выполнения вы можете проверить результат выполнения на вкладке View Result ниже окна редактирования SQL job editing window.

  6. Просмотр результатов выполнения задачи.

    На вкладке View Result нажмите , чтобы отобразить результаты выполнения в виде диаграммы. Нажмите , чтобы переключиться обратно к табличному представлению.

    Вы можете просмотреть максимум 1 000 записей данных на этой вкладке View Result. Чтобы просмотреть больше или все данные, нажмите для экспорта данных в OBS.

    Note
    • Если в результате выполнения не отображается ни один столбец числового типа, результат нельзя отобразить в виде диаграмм.
    • Вы можете просматривать данные в виде столбчатой диаграммы, линейной диаграммы или fan chart.
    • В столбчатой и линейной диаграммах ось X может быть любой колонкой, тогда как ось Y может быть только колонками числового типа. fan chart отображает соответствующие легенды и индикаторы.

Настройка параметров SQL Job

Нажмите Settings в правом верхнем углу страницы SQL Editor. Вы можете задать параметры и теги для SQL job.

  • Parameter Settings: назначьте пары ключ‑значение в качестве параметров.

  • Tags: назначьте пары ключ‑значение в качестве тегов для SQL job.
Table 2 Параметры для выполнения SQL job

Parameter

Default Value

Description

spark.sql.files.maxRecordsPerFile

0

Максимальное количество записей, которые будут записаны в один файл. Если значение равно нулю или отрицательное, ограничений нет.

spark.sql.autoBroadcastJoinThreshold

209715200

Максимальный размер в байтах таблицы, отображающей все рабочие узлы при выполнении соединения. Вы можете установить этот параметр в -1, чтобы отключить отображение.

ПРИМЕЧАНИЕ:

В настоящее время поддерживаются только конфигурационные единицы, которые хранят таблицы, проанализированные с помощью команды ANALYZE TABLE COMPUTE statistics noscan, и таблицы источников данных на основе файлов, которые вычисляют статистику непосредственно из файлов данных.

spark.sql.shuffle.partitions

200

Количество разделов по умолчанию, используемых для фильтрации данных при соединении или агрегации.

spark.sql.dynamicPartitionOverwrite.enabled

false

Если параметр установлен в false, DLI удалит все разделы, соответствующие условиям, перед их перезаписью. Например, если в таблице с разделами существует раздел с именем 2021-01 и вы используете оператор INSERT OVERWRITE для записи данных в раздел 2021-02, данные в разделе 2021-01 также будут перезаписаны.

Если параметр установлен в true, DLI не будет удалять разделы заранее, а будет перезаписывать их данными, записанными во время выполнения.

spark.sql.files.maxPartitionBytes

134217728

Максимальное количество байтов, упаковываемых в один раздел при чтении файла.

spark.sql.badRecordsPath

-

Путь к ошибочным записям.

dli.sql.sqlasync.enabled

true

Выполняются ли DDL и DCL операторы асинхронно. Значение true указывает, что асинхронное выполнение включено.

dli.sql.job.timeout

-

Интервал тайм‑аута выполнения задания в секундах. Если время выполнения задания истекает, оно будет отменено.

Более распространённые функции SQL Editor

  • Переход на страницу SparkUI для просмотра процесса выполнения SQL‑оператора

    SQL editor позволяет переключаться на SparkUI для просмотра процесса выполнения SQL‑оператора.

    • На SparkUI DLI можно просмотреть только последние 100 записей заданий.
    • Если задание выполняется в очереди default или является синхронным, переключиться на SparkUI для просмотра процесса выполнения SQL‑оператора нельзя.
    Note

    При выполнении задания в созданной очереди кластер перезапускается. Это занимает около 10 минут. Если вы нажмёте SparkUI до создания кластера, будет закеширован пустой projectID. Страница SparkUI не может быть отображена. Рекомендуется использовать выделенную очередь, чтобы кластер не освобождался. Либо подождите некоторое время после отправки задания (кластер будет создан), а затем проверьте SparkUI.

  • Архивирование журналов выполнения SQL

    На вкладке Executed Queries (Last Day) страницы SQL Editor нажмите More и выберите View Log в столбце Operation задания SQL. Система автоматически переключается на путь OBS, где хранятся журналы. При необходимости можно загрузить журналы.

    Note

    The View Log button is not available for synchronization jobs and jobs running on the default queue.

  • Сочетания клавиш SQL Editor
    Table 3 Сочетания клавиш

    Сочетание

    Описание

    Ctrl+Enter

    Выполнить SQL‑операторы. Вы можете выполнить SQL‑операторы, нажав Ctrl+R или Ctrl + Enter на клавиатуре.

    Ctrl+F

    Поиск SQL‑операторов. Вы можете нажать Ctrl+F для поиска необходимого SQL‑оператора.

    Shift+Alt+F

    Форматировать SQL‑операторы. Вы можете нажать Shift + Alt + F для форматирования SQL‑оператора.

    Ctrl+Q

    Проверка синтаксиса. Вы можете нажать Ctrl + Q для проверки синтаксиса SQL‑операторов.

    F11

    Полный экран. Вы можете нажать F11, чтобы отобразить окно SQL Job Editor в полноэкранном режиме. Нажмите F11 ещё раз, чтобы выйти из полноэкранного режима.