12.4 Утилита параллельного импорта таблиц
Утилита параллельного импорта таблиц MySQL Shell util.importTable() обеспечивает быстрый импорт данных в реляционную таблицу MySQL для больших файлов данных. Утилита анализирует входной файл данных, распределяет его на фрагменты и загружает фрагменты на целевой сервер MySQL с помощью параллельных соединений. Утилита способна выполнить импорт больших данных многократно быстрее, чем стандартная однопоточная загрузка с помощью оператора.
Об утилите
Утилита параллельного импорта таблиц MySQL Shell поддерживает вывод утилиты экспорта таблиц MySQL Shell, которая может сжимать файл данных в качестве выходного, и может экспортировать его в локальную папку или хранилище объектов. По умолчанию утилита параллельного импорта таблиц использует диалект, установленный по умолчанию для выходного файла, созданного утилитой экспорта таблиц. Утилита параллельного импорта таблиц также может использоваться для загрузки файлов из других источников.
Файлы или файлы данных, подлежащие импорту, могут находиться в следующих местах:
Местоположение, доступное клиенту хоста как локальный диск.
Дистанционное местоположение, доступное клиенту хоста через HTTP или HTTPS, указанное URL-адресом. Сопоставление шаблонов для файлов, доступных таким образом, не поддерживается.
Хранилище объектов Oracle Cloud Infrastructure.
Данные импортируются в одну реляционную таблицу на сервере MySQL, к которому подключено активное сеанса MySQL.
При запуске утилиты параллельного импорта таблиц вы указываете соответствие между полями в файле или файлах данных и столбцами в таблице MySQL. Вы можете настроить параметры обработки полей и строк, как и для оператора, для обработки файлов данных в произвольных форматах. Для нескольких файлов все файлы должны быть в одном формате. Диалект по умолчанию для утилиты соответствует файлу, созданному с помощью оператора с настройками по умолчанию для этого оператора. Утилита также имеет предопределенные диалекты, которые соответствуют стандартным форматам данных для CSV-файлов (созданных в системах DOS или UNIX), TSV-файлов и JSON, и вы можете настроить их с помощью параметров обработки полей и строк по мере необходимости. Обратите внимание, что данные JSON должны быть в формате «документ на строку».
После выпуска утилиты параллельного импорта таблиц в нее было добавлено несколько функций, поэтому используйте последнюю версию MySQL Shell для получения полной функциональности утилиты.
- Предварительная обработка входных данных
Утилита параллельного импорта таблиц может извлекать столбцы из файла или файлов данных для предварительной обработки входных данных, аналогично оператору. Выбранные данные могут быть отброшены, или вы можете преобразовать данные и назначить их столбцу в целевой таблице.
- Импорт хранилища объектов Oracle Cloud Infrastructure
Данные должны импортироваться из места, доступного клиенту хоста как локальный диск, или данные могут импортироваться из хранилища объектов Oracle Cloud Infrastructure, указанного параметром
osBucketName.- Импорт нескольких файлов данных
Утилита параллельного импорта таблиц может импортировать один входной файл данных в одну реляционную таблицу и также способна импортировать указанный список файлов, и она поддерживает сопоставление шаблонов с подстановкой, чтобы включить все соответствующие файлы из расположения. Несколько файлов, загруженных одной операцией утилиты, помещаются в одну реляционную таблицу, поэтому, например, данные, экспортированные с нескольких хостов, могут быть объединены в одну таблицу для использования в аналитике.
- Обработка сжатых файлов
Утилита параллельного импорта таблиц может принимать несжатый входной файл данных. Утилита анализирует файл данных, распределяет его на фрагменты и загружает фрагменты в реляционную таблицу целевого сервера MySQL, распределяя фрагменты между параллельными подключениями. Утилита также может принимать файлы данных, сжатые в форматах
gzip(.gz) иzstd(.zst), автоматически распознавая формат по расширению файла. Утилита загружает сжатый файл из хранилища в сжатом формате, экономя пропускную способность для этой части передачи. Сжатые файлы не могут быть распределены на фрагменты, поэтому вместо этого утилита использует свои параллельные подключения для одновременной распаковки и загрузки нескольких файлов на целевой сервер. Если имеется только один входной файл данных, загрузка сжатого файла может использовать только одно подключение.
Утилита загрузки дампов MySQL Shell util.loadDump() предназначена для импорта комбинации фрагментированных выходных файлов и метаданных, созданных утилитами дампов экземпляра MySQL Shell util.dumpInstance(), дампов схемы util.dumpSchemas() и дампов таблиц util.dumpTables(). Утилиту параллельного импорта таблиц можно использовать в сочетании с утилитой загрузки дампов, если вы хотите изменить данные во фрагментированных выходных файлах перед загрузкой их на целевой сервер. Для этого сначала используйте утилиту загрузки дампов для загрузки только DDL для выбранной таблицы, чтобы создать таблицу на целевом сервере. Затем используйте утилиту параллельного импорта таблиц для захвата и преобразования данных из выходных файлов таблицы и импортируйте их в целевую таблицу. Повторяйте этот процесс по мере необходимости для других таблиц, где требуется изменить данные. Наконец, используйте утилиту загрузки дампов для загрузки DDL и данных для всех оставшихся таблиц, которые вы не хотите изменять, исключая таблицы, которые вы изменили. Для описания процедуры см. Изменение данных дампов.
Требования и ограничения
Утилита параллельного импорта таблиц требует классического подключения к целевому серверу. В настоящее время она не поддерживает подключения X Protocol.
Утилита параллельного импорта таблиц использует операторы LOAD DATA LOCAL
INFILE для загрузки данных, поэтому системная переменная должна быть установлена в значение ON на целевом сервере. Вы можете сделать это, выполнив следующий оператор в SQL-режиме перед запуском утилиты параллельного импорта таблиц:
SET GLOBAL local_infile = 1;
Чтобы избежать известной потенциальной проблемы безопасности с LOAD
DATA LOCAL, когда сервер MySQL отвечает на запросы утилиты параллельного импорта таблиц LOAD DATA запросами на передачу файлов, утилита отправляет только предварительно определенные фрагменты данных и игнорирует любые конкретные запросы, предпринятые сервером. Более подробная информация доступна в .
Запуск утилиты
Утилита параллельного импорта таблиц требует существующего подключения по классическому протоколу MySQL к целевому серверу MySQL. Каждый поток открывает свою сессию для отправки фрагментов данных на сервер MySQL, или, в случае сжатых файлов, для одновременной отправки нескольких файлов. Вы можете настроить количество потоков, количество байтов, отправляемых в каждом фрагменте, и максимальную скорость передачи данных в каждом потоке, чтобы сбалансировать нагрузку на сеть и скорость передачи данных. Утилита не может работать через подключения X Protocol, которые не поддерживают операторы LOAD
DATA.
В API MySQL Shell утилита параллельного импорта таблиц является функцией глобального объекта util и имеет следующую сигнатуру:
importTable ({file_name | file_list}, options) options — это словарь опций импорта, который можно опустить, если он пуст. Опции перечислены в заключительной части этого раздела.
file_name — это строка, определяющая имя и путь к единственному файлу, содержащему данные для импорта. В качестве альтернативы, file_list — это массив путей к файлам, определяющий несколько файлов данных. В Windows обратные слэши в путях к файлам должны быть экранированы, или можно использовать косые слэши вместо них.
Для файлов, доступных хосту клиента на локальном диске, можно префиксровать путь к каталогу схемой
file://или разрешить ей использовать значение по умолчанию. Для файлов, доступ к которым осуществляется таким образом, пути к файлам могут содержать подстановочные символы*(несколько символов) и?(один символ) для сопоставления с образцом. Обратите внимание, что если эти подстановочные символы присутствуют в путях к файлам, утилита рассматривает их как подстановочные символы и, следовательно, может попытаться применить неверную стратегию для передачи файлов.Для файлов, доступных хосту клиента через HTTP или HTTPS, укажите URL-адрес или список URL-адресов, префиксрованных соответствующими схемами
http://илиhttps://в форматеhttp[s]://host.domain[:port]/path. Для файлов, доступ к которым осуществляется таким образом, сопоставление с образцом недоступно. Сервер HTTP должен поддерживать заголовок запроса Range и возвращать заголовок ответа Content-Range клиенту.Для файлов в ведре хранилища объектов Oracle Cloud Infrastructure укажите путь к файлу в ведре и используйте опцию
osBucketNameдля указания имени ведра.
Функция возвращает значение void или исключение в случае ошибки. Если импорт прерывается пользователем с помощью Ctrl+C или из-за ошибки, утилита прекращает отправку данных. Когда сервер завершает обработку полученных данных, возвращаются сообщения, показывающие фрагмент, который импортировался каждым потоком в момент остановки, процент завершения и количество записей, обновленных в целевой таблице.
Следующие примеры, первый в режиме JavaScript MySQL Shell, а второй в режиме Python MySQL Shell, импортируют данные из единственного CSV-файла /tmp/productrange.csv в таблицу products в базе данных mydb, пропуская заголовок строки файла:
mysql-js> util.importTable("/tmp/productrange.csv", {schema: "mydb", table: "products", dialect: "csv-unix", skipRows: 1, showProgress: true})
mysql-py> util.import_table("/tmp/productrange.csv", {"schema": "mydb", "table": "products", "dialect": "csv-unix", "skipRows": 1, "showProgress": True})
Следующий пример в режиме Python MySQL Shell указывает только диалект для CSV-файла. mydb — это активная схема для сессии MySQL Shell. Таким образом, утилита импортирует данные из файла /tmp/productrange.csv в таблицу productrange в базе данных mydb:
mysql-py> \use mydb
mysql-py> util.import_table("/tmp/productrange.csv", {"dialect": "csv-unix"})
Следующий пример в режиме Python MySQL Shell импортирует данные из нескольких файлов, включая набор файлов с индивидуальными именами, диапазоны файлов, указанные с использованием подстановочных символов, и сжатые файлы:
mysql-py> util.import_table(
[
"data_a.csv",
"data_b*",
"data_c*",
"data_d.tsv.zst",
"data_e.tsv.zst",
"data_f.tsv.gz",
"/backup/replica3/2021_01_12/data_g.tsv",
"/backup/replica3/2021_01_13/*.tsv",
],
{"schema": "mydb", "table": "productrange"}
) Утилиту параллельного импорта таблиц также можно вызвать из командной строки с помощью командного интерфейса mysqlsh. С этим интерфейсом утилиту вызывают, как показано в следующих примерах:
mysqlsh mysql://root:@127.0.0.1:3366 --ssl-mode=DISABLED -- util import-table /r/mytable.dump --schema=mydb --table=regions --bytes-per-chunk=10M --linesTerminatedBy=$'\r\n'
При импорте нескольких файлов данных, диапазоны файлов, указанные с использованием подстановочных символов, расширяются логикой сопоставления с образцом glob MySQL Shell, если они заключены в кавычки, как в следующем примере. В противном случае они расширяются логикой сопоставления с образцом для оболочки пользователя, в которой вы ввели команду mysqlsh.
mysqlsh mysql://root:@127.0.0.1:3366 -- util import-table data_a.csv "data_b*" data_d.tsv.zst --schema=mydb --table=productrange --osBucketName=mybucket
Обратите внимание, что, как показано в приведенном выше примере, символы новой строки должны передаваться с использованием цитирования ANSI-C в оболочках, которые поддерживают эту функцию (таких как bash, ksh, mksh и zsh). Подробную информацию о интеграции с mysqlsh в командной строке см. в разделе 5.8 «Интеграция API командной строки».
Параметры импорта таблиц
Следующие параметры импорта доступны для утилиты параллельного импорта таблиц, чтобы указать, как импортировать данные:
-
schema: "db_name" Имя целевой базы данных на подключенном сервере MySQL. Если вы опустите этот параметр, утилита пытается определить и использовать имя схемы, используемой для текущей сессии MySQL Shell, как указано в строке URI подключения, команде
\useили параметре MySQL Shell. Если имя схемы не указано и не может быть определено из сессии, возвращается ошибка.-
table: "table_name" Имя целевой реляционной таблицы. Если вы опустите этот параметр, утилита предполагает, что имя таблицы — это имя файла данных без расширения. Целевая таблица должна существовать в целевой базе данных.
-
columns:array of column names -
Массив строк, содержащий имена столбцов из файла или файлов импорта, в порядке соответствия столбцам в целевой реляционной таблице. Используйте этот параметр, если импортируемые данные не содержат все столбцы целевой таблицы или если порядок полей в импортируемых данных отличается от порядка столбцов в таблице. Если вы опустите этот параметр, ожидается, что строки ввода будут содержать соответствующее поле для каждого столбца в целевой таблице.
Вы можете использовать этот параметр для захвата столбцов из файла или файлов импорта для предварительной обработки ввода, так же как и с оператором . Когда вы используете целое число вместо имени столбца в массиве, этот столбец в файле или файлах импорта захватывается как переменная пользователя
@, напримерint@1. Захваченные данные можно игнорировать, или вы можете использовать параметрdecodeColumnsдля преобразования данных и назначения им столбца в целевой таблице.В этом примере в режиме JavaScript MySQL Shell второй и четвёртый столбцы из файла импорта назначаются переменным пользователя
@1и@2, и параметрdecodeColumnsдля их назначения любому столбцу в целевой таблице отсутствует, поэтому они игнорируются.mysql-js>
util.importTable('file.txt', { table: 't1', columns: ['column1', 1, 'column2', 2, 'column3'] }); -
decodeColumns:dictionary -
Словарь пар ключ-значение, который назначает столбцы импортируемого файла, захваченные как переменные пользователя параметром
columns, столбцам в целевой таблице и определяет преобразования предварительной обработки для них таким же образом, как и в предложенииSETоператора .В этом примере в режиме JavaScript MySQL Shell первый входной столбец из файла данных используется в качестве первого столбца в целевой таблице. Второй входной столбец, которому присвоена переменная
@1параметромcolumns, подвергается операцию деления перед использованием в качестве значения второго столбца в целевой таблице.mysql-js>
util.importTable('file.txt', { columns: ['column1', 1], decodeColumns: {'column2': '@1 / 100'} });В этом примере в режиме JavaScript MySQL Shell входные столбцы из файла данных присваиваются переменным, затем преобразуются различными способами и используются для заполнения столбцов целевой таблицы:
mysql-js>
util.importTable('file.txt', { table: 't1', columns: [1, 2], decodeColumns: { 'a': '@1', 'b': '@2', 'sum': '@1 + @2', 'multiple': '@1 * @2', 'power': 'POW(@1, @2)' } }); -
skipRows:number Пропустить заданное количество строк в начале файла импорта или, в случае нескольких файлов импорта, в начале каждого файла, включённого в список файлов. Вы можете использовать этот параметр, чтобы пропустить начальную строку заголовков, содержащую имена столбцов, при загрузке в таблицу. По умолчанию строки не пропускаются.
-
replaceDuplicates: [true|false] Строки ввода, имеющие такое же значение для первичного ключа или уникального индекса, как и существующая строка, должны быть заменены (
true) или пропущены (false). По умолчанию значение —false.-
dialect: [default|csv|csv-unix|tsv|json] -
Используйте набор параметров обработки полей и строк, соответствующих указанному формату файла. Вы можете использовать выбранный диалект в качестве основы для дальнейшей настройки, дополнительно указав один или несколько параметров
linesTerminatedBy,fieldsTerminatedBy,fieldsEnclosedBy,fieldsOptionallyEnclosedиfieldsEscapedByдля изменения настроек. По умолчанию диалект соответствует файлу, созданному с помощью оператора с параметрами по умолчанию для этого оператора. Это значение по умолчанию для выходного файла, созданного утилитой экспорта таблиц MySQL Shell. Доступны другие диалекты для CSV-файлов (созданных на системах DOS или UNIX), TSV-файлов и JSON-данных. Применённые настройки для каждого диалекта следующие:Таблица 12.2 Настройки диалекта для утилиты параллельного импорта таблиц
Таблица 12.2 Настройки диалекта для утилиты параллельного импорта таблиц dialectlinesTerminatedByfieldsTerminatedByfieldsEnclosedByfieldsOptionallyEnclosedfieldsEscapedBydefault[LF]
[TAB]
[empty]
false\
csv[CR][LF]
,
''
true\
csv-unix[LF]
,
''
false\
tsv[CR][LF]
[TAB]
''
true\
json[LF]
[LF]
[empty]
false[empty]
ПримечаниеЗначения возврата каретки и перевода строки для диалектов независимы от операционной системы.
Если вы используете параметры
linesTerminatedBy,fieldsTerminatedBy,fieldsEnclosedBy,fieldsOptionallyEnclosedиfieldsEscapedBy, в зависимости от соглашений об экранировании вашей оболочки командной строки, символ обратного слэша (\) может потребоваться удвоить, если вы используете его в значениях параметров.Как и сервер MySQL с оператором , MySQL Shell не проверяет параметры обработки полей и строк, которые вы указываете. Неправильный выбор этих параметров может привести к импорту данных в неправильные поля, частично и/или некорректно. Всегда проверяйте свои настройки перед началом импорта и проверяйте результаты после.
-
linesTerminatedBy: "characters" Одна или несколько символов (или пустая строка), которые завершают каждую строку в файле или файлах входных данных. По умолчанию — значение, заданное для указанного диалекта, или символ перевода строки (
\n), если параметр диалекта опущен. Этот параметр эквивалентен параметруLINES TERMINATED BYдля оператора . Обратите внимание, что утилита не предоставляет эквивалента параметраLINES STARTING BYдля оператораLOAD DATA, который установлен в пустую строку.-
fieldsTerminatedBy: "characters" Одна или несколько символов (или пустая строка), которые завершают каждое поле в файле или файлах входных данных. По умолчанию — значение, заданное для указанного диалекта, или символ табуляции (
\t), если параметр диалекта опущен. Этот параметр эквивалентен параметруFIELDS TERMINATED BYдля оператора .-
fieldsEnclosedBy: "character" Один символ (или пустая строка), который заключает каждое поле в файле или файлах входных данных. По умолчанию — значение, заданное для указанного диалекта, или пустая строка, если параметр диалекта опущен. Этот параметр эквивалентен параметру
FIELDS ENCLOSED BYдля оператора .-
fieldsOptionallyEnclosed: [ true | false ] Обозначает, заключает ли символ, заданный для
fieldsEnclosedBy, все поля в файле или файлах входных данных (false) или заключает поля только в некоторых случаях (true). По умолчанию — значение, заданное для указанного диалекта, илиfalse, если параметр диалекта опущен. Этот параметр делает параметрfieldsEnclosedByэквивалентным параметруFIELDS OPTIONALLY ENCLOSED BYдля оператора .-
fieldsEscapedBy: "character" Символ, который начинает последовательности экранирования в файле или файлах входных данных. Если он не задан, интерпретация последовательностей экранирования не выполняется. По умолчанию — значение, заданное для указанного диалекта, или обратный слэш (\), если параметр диалекта опущен. Этот параметр эквивалентен параметру
FIELDS ESCAPED BYдля оператора .-
characterSet: "charset" Этот параметр указывает кодировку набора символов, с помощью которой интерпретируются входные данные во время импорта. Установка параметра в значение
binaryозначает, что преобразование во время импорта не выполняется. Если этот параметр опущен, для интерпретации входных данных используется набор символов, указанный переменной системы .-
bytesPerChunk: "size" Для списка нескольких файлов входных данных этот параметр недоступен. Для одного файла входных данных этот параметр задаёт количество байтов (плюс любые дополнительные байты, необходимые для достижения конца строки), которые потоки отправляют для каждого вызова целевого сервера. Утилита распределяет данные на куски заданного размера, чтобы потоки могли их забирать и отправлять на целевой сервер. Размер куска может быть указан в байтах или с использованием суффиксов k (килобайты), M (мегабайты), G (гигабайты). Например,
bytesPerChunk="2k"заставляет потоки отправлять куски размером примерно 2 килобайта. Минимальный размер куска — 131072 байта, а размер куска по умолчанию — 50M.-
threads:number
-
Максимальное количество параллельных потоков для отправки данных из входного файла или файлов на целевой сервер. Если вы не указываете количество потоков, по умолчанию используется максимум 8. Для списка нескольких входных файлов утилита создаёт указанное или максимальное количество потоков. Для одного входного файла утилита рассчитывает подходящее количество потоков до этого максимума, используя следующую формулу:
min{max{1, threads}, chunks}}где
threads— максимальное количество потоков, аchunks— количество фрагментов, на которые данные будут разделены, вычисляемое путём деления размера файла на размерbytesPerChunk, а затем прибавлением 1. Вычисление гарантирует, что если максимальное количество потоков превышает фактическое количество фрагментов, утилита не создаст больше потоков, чем необходимо.Сжатые файлы не могут быть распределены на фрагменты, поэтому утилита использует свои параллельные подключения для загрузки нескольких файлов одновременно. Если имеется только один входной файл, загрузка сжатого файла может использовать только одно подключение.
-
maxRate: "rate" Максимальный предел пропускной способности данных в байтах в секунду на поток. Используйте этот параметр, если вам нужно избежать перегрузки сети, ввода-вывода или ЦП для хоста клиента или целевого сервера. Максимальную скорость можно указать как число байтов или с использованием суффиксов k (килобайты), M (мегабайты), G (гигабайты). Например,
maxRate="5M"ограничивает каждый поток до 5 МБ данных в секунду, что для восьми потоков даёт скорость передачи 40 МБ/сек. По умолчанию значение равно 0, что означает отсутствие ограничения.-
showProgress: [ true | false ] Отображать (
true) или скрывать (false) информацию о прогрессе импорта. По умолчанию значение равноtrue, если stdout является терминалом (tty), иfalseв противном случае.-
sessionInitSql:list of strings -
Список SQL-запросов, которые нужно выполнить в начале каждой сессии клиента для загрузки данных в целевой экземпляр MySQL. Вы можете использовать этот параметр для изменения переменных сессии. Например, следующие запросы пропускают двоичное ведение журнала на целевом экземпляре MySQL для сессий, используемых утилитой в ходе импорта, и увеличивают количество потоков, доступных для создания индексов:
sessionInitSQL: ["SET SESSION sql_log_bin=0;", "SET SESSION innodb_ddl_threads=8,"]
Если при выполнении SQL-запросов произойдёт ошибка, импорт прекратится и будет возвращено сообщение об ошибке.
Параметры для Oracle Cloud Infrastructure
MySQL Shell поддерживает импорт входных файлов данных, хранящихся в ведрах Oracle Cloud Infrastructure Object Storage.
-
osBucketName: "string" Имя ведра Oracle Cloud Infrastructure Object Storage, в котором находится входной файл данных. По умолчанию используется профиль
[DEFAULT]в файле конфигурации Oracle Cloud Infrastructure CLI, расположенном по адресу~/.oci/config, для подключения к ведру. Вы можете заменить используемый профиль альтернативным с помощью параметровociConfigFileиociProfile. Инструкции по настройке файла конфигурации CLI см. на странице Файл конфигурации SDK и CLI.-
osNamespace: "string" Пространство имён Oracle Cloud Infrastructure, в котором расположено ведро Object Storage с именем
osBucketName. Пространство имён ведра Object Storage отображается на вкладке «Информация о ведре» на странице сведений о ведре в консоли Oracle Cloud Infrastructure или может быть получено с помощью командной строки Oracle Cloud Infrastructure.-
ociConfigFile: "string" Файл конфигурации Oracle Cloud Infrastructure CLI, содержащий профиль для подключения вместо файла по умолчанию по адресу
~/.oci/config.-
ociProfile: "string" Имя профиля Oracle Cloud Infrastructure, используемого для подключения вместо профиля
[DEFAULT]в файле конфигурации Oracle Cloud Infrastructure CLI, используемом для подключения.-
ociAuth: "string" -
Метод аутентификации, используемый при подключении к Oracle Cloud Infrastructure. Для использования этого параметра необходимо, чтобы
osBucketNameбыл настроен с допустимым значением.Доступны следующие параметры:
-
api_key: Подключения OCI используют файл конфигурации OCI. См. Раздел 4.7.1, «Oracle Cloud Infrastructure Object Storage».Если
osBucketNameопределён с корректным значением, ноociAuthне определён,api_keyиспользуется по умолчанию. -
instance_principal: Подключения OCI используют аутентификацию с помощью принципала экземпляра. См. Аутентификация с помощью принципала экземпляра.Этот параметр не может быть использован, если определены
ociConfigFileилиociProfile. -
resource_principal: Подключения OCI используют аутентификацию с помощью принципала ресурса. См. Аутентификация с помощью принципала ресурса.Этот параметр не может быть использован, если определены
ociConfigFileилиociProfile. security_token: Подключения OCI используют временный, сгенерированный токен сессии. См. Аутентификация с использованием токена сессии.
-
Параметры для совместимых с S3 служб
MySQL Shell поддерживает импорт входных файлов данных, хранящихся в ведрах, совместимых с S3, таких как Amazon Web Services (AWS) S3.
MySQL Shell поддерживает конфигурацию AWS S3 в параметрах командной строки, переменных среды и файлах конфигурации. Параметры командной строки имеют приоритет над переменными среды, файлами конфигурации и параметрами по умолчанию.
Дополнительную информацию о требованиях к конфигурации см. в Разделе 4.7, «Конфигурация облачной службы».
-
s3BucketName: "string" Имя ведра S3, в котором находятся файлы дампов. По умолчанию используется профиль
defaultв файлах конфигурации Amazon Web Services (AWS) CLIconfigиcredentials, расположенных по адресу~/.aws/, для подключения к ведру S3. Вы можете заменить используемые конфигурации и учётные данные для подключения параметрамиs3ConfigFileиs3CredentialsFile. Инструкции по установке и настройке AWS CLI см. на странице Начало работы с AWS CLI.-
s3CredentialsFile: "string" Файл учетных данных, содержащий учетные данные пользователя для подключения вместо файла по умолчанию по адресу
~/.aws/credentials. Как правило, файл учетных данных содержитaws_access_key_idиaws_secret_access_keyдля подключения.-
s3ConfigFile: "string" Файл конфигурации AWS CLI, содержащий профиль для подключения вместо файла по умолчанию по адресу
~/.aws/config. Обычно этот файл содержит регион и тип вывода для подключения.-
s3Profile: "string" Имя профиля s3 CLI для подключения, вместо профиля
defaultв файле конфигурации AWS CLI, используемого для подключения.-
s3Region: "string" Имя региона для подключения.
-
s3EndpointOverride: "string" -
URL конечной точки, используемый вместо стандартного.
При подключении к совместимой с S3 API Oracle Cloud Infrastructure конечная точка имеет следующий формат:
https://. Заменитеnamespace.compat.objectstorage.region.oraclecloud.comnamespaceна имя пространства имён Object Storage иregionна идентификатор вашего региона. Например, идентификатор региона для региона США-Восток (Эшберн) —us-ashburn-1.Для пространства имён axaxnpcrorw5 в регионе США-Восток (Эшберн):
https://axaxnpcrorw5.compat.objectstorage.us-ashburn-1.oraclecloud.com.
Параметры для хранения данных Microsoft Azure Blob
MySQL Shell поддерживает импорт из хранилища Microsoft Azure Blob Storage.
MySQL Shell поддерживает конфигурацию Microsoft Azure Blob Storage в командных параметрах, переменных среды и конфигурационных файлах. Командные параметры имеют приоритет над переменными среды и конфигурационными файлами.
Сведения о требованиях к конфигурации и порядке приоритета типов конфигурации см. в разделе 4.7, «Конфигурация облачной службы».
-
azureContainerName: "string" Обязательно. Имя контейнера Azure, из которого следует импортировать таблицу. Контейнер должен существовать.
-
azureConfigFile: "string" -
Необязательно. Конфигурационный файл, содержащий параметры подключения к хранилищу вместо файла по умолчанию, например,
~/.azure/config. Если этот параметр не определён, используется файл конфигурации по умолчанию.azureContainerNameдолжен быть определён и не пустым. -
azureStorageAccount: "string" Необязательно. Имя учётной записи Azure Storage, которое нужно использовать для операции.
-
azureStorageSasToken: "string" Необязательно. Токен Azure Shared Access Signature (SAS), который нужно использовать для аутентификации операции вместо ключа.
© 2025 Oracle
Licensed under the GPLv2 License.