Использование встроенных загрузок для загрузки данных
Введите данные вручную в скрипт, чтобы определить встроенную таблицу, которую можно загрузить в приложение. Для работы со встроенными загрузками можно использовать Редактор загрузки данных и Скрипт.
Можно создавать встроенные таблицы, вводя данные в скрипт вручную, а не подключаясь к файлам и базам данных. Используйте необходимый синтаксис для указания того, что текст скрипта должен интерпретироваться как встроенные данные. Данные, добавленные с помощью встроенных загрузок, остаются в приложении в случае его экспорта. Встроенные таблицы можно читать и редактировать в скрипте загрузки.
Простейшая встроенная загрузка создает таблицу и вставляет поля данных и записи.
Пример базового синтаксиса
Следующий скрипт содержит простую встроенную загрузку.
Встроенные загрузки полезно использовать в ряде сценариев:
Администрирование и редактирование данных без подключения к внешним источникам.
Дополнение существующих данных в модели данных. Например, можно добавить дополнительную таблицу в модель данных, которая, главным образом, создана на основе источников баз данных.
Добавление данных, которые нежелательно постоянно загружать из внешних источников. Это позволяет экономить время, если известно, что источник данных может измениться в будущем, но значения данных останутся прежними.
Простота копирования и вставки содержимого в скрипт из других источников. Например, файлы или таблицы .csv из документов, созданных в текстовом редакторе.
Создание тестовых скриптов, которые можно быстро копировать и вставлять.
Обзор синтаксиса
Именование таблицы
Имя для встроенной таблицы присваивается так же, как и для других загруженных таблиц. Определение имени таблицы не является обязательным.
После имени таблицы вставьте двоеточие.
Операторы LOAD и inline
Встроенная таблица загружается с помощью предложения inline, когда используется оператор скрипта LOAD. Предложение inline указывает, что последующий текст в таблице будет содержать данные, введенные в редактор вручную. Если пользователь не укажет иное, встроенная таблица использует формат txt, который имеет структуру текстового файла с разделителями.
Для получения дополнительной информации об операторе LOAD см. раздел Load.
Заключающие символы и ввод данных
Данные, введенные с использованием предложения inline, должны быть заключены в парные специальные символы. Для заключения данных используются следующие принятые комбинации символов:
Квадратные скобки: [ и ]
Двойные кавычки: " и "
Одиночные кавычки: ' и '
Обратные кавычки: ` и `
Символ, выбранный в качестве заключения, позволяет загружать встроенные данные, содержащие конфликтующие символы. Например, если данные содержат записи с квадратными скобками, их можно заключить в прямые кавычки или обратные кавычки.
Если не указан альтернативный формат таблицы (по умолчанию используется txt), заключенный в парные символы текст интерпретируется так же, как содержимое файла. Поэтому при вставке новой строки в текстовый файл ее также необходимо вставить в текст предложения inline, нажав клавишу «Ввод» при вводе скрипта.
Окончание встроенной загрузки
Конец оператора встроенной загрузки обозначается точкой с запятой.
Преобразования данных
В простой встроенной загрузке без преобразований количество столбцов определяется по первой строке. Таблица, загруженная в следующем примере, содержит три столбца: Product_ID, Supplier_Name, и Product_Category.
Также можно выполнять преобразования и создавать новые столбцы в той же встроенной таблице. Можно использовать предшествующие загрузки. Кроме того, можно использовать несколько операторов LOAD для загрузки одной и то же таблицы.
Настройка спецификации формата для встроенной загрузки
Как и при работе с другими загруженными таблицами, можно изменять спецификацию формата встроенной таблицы, используя элементы спецификации формата. Спецификация формата добавляется в квадратных скобках. Ее можно добавлять после заключенных данных, но перед точкой с запятой в конце оператора LOAD. Ниже перечислены некоторые возможные пользовательские изменения:
Использование другого формата данных (например, формат фиксированной записи). Для ознакомления с примером см. раздел Пример: загрузка другого типа данных.
В дополнение, поскольку встроенная загрузка является оператором LOAD, можно объединить другие аргументы для оператора LOAD во встроенную загрузку. Например, используйте предложение where или while, чтобы определить, требуется загрузить конкретную строку или нет, на основе содержащегося в ней текста.
Подобным образом, можно также использовать операторы за пределами самого текстового содержимого. Операторы позволяют настроить способ преобразования встроенных данных, а также определить, когда определенные данные следует загружать, а когда нет.
Пример: альтернативные символы для заключения данных
Можно использовать квадратные скобки, кавычки или обратные кавычки для заключения встроенной загрузки. В данном разделе приводится пример для иллюстрации этого. Для получения дополнительной информации см. раздел Заключающие символы и ввод данных.
Данный пример демонстрирует, как можно использовать обратные кавычки для заключения встроенных данных. Данные в примере содержат квадратные скобки, по причине чего для оператора LOAD нельзя использовать квадратные скобки в качестве заключающих символов.
Обзор
Откройте Редактор загрузки данных и добавьте следующий скрипт загрузки на новую вкладку.
Изменение разделителя бывает полезным, когда данные в таблице содержат запятые, которые в ином случае будут рассматриваться как сигнал для перехода к следующему столбцу таблицы.
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки на новую вкладку.
Скрипт загрузки содержит следующее:
Необходимо загрузить четыре таблицы, а именно:
Table1: разделитель ― вертикальная линия (|). Данные в столбце Phrase содержат запятые.
Table2: разделитель ― двоеточие (:).
Table3: разделитель ― обратная косая черта (\).
Table4: содержимое таблицы разделяется путем нажатия клавиши «Tab» на клавиатуре. Этот вариант полезен, когда таблица копируется из текстового редактора и вставляется в скрипт.
Таблица Table1 демонстрирует пример практического применения альтернативного разделителя. В остальных таблицах показаны другие варианты разделителей.
Скрипт загрузки
Table1:
LOAD * INLINE [
ID|Phrase
1 | 'The transaction was complete, but the order has not yet shipped.'
2 | 'We need to confirm the following details: sales rep number, order status, and shipping priority.'
] (Delimiter is '|');
Table2:
LOAD * INLINE [
Num1:Chr1
1:A
2:B ] (Delimiter is ':');
Table3:
LOAD * INLINE [
Num2\Chr2
1\A
2\B ] (Delimiter is \\);
Table4:
LOAD * INLINE [
Num3 Chr3
1 A
2 B ] (Delimiter is '\t');
Результаты
Загрузите данные и откройте лист. Создайте четыре таблицы и добавьте в них измерения следующим образом:
Table1: ID, Phrase
Table2: Num1, Chr1
Table3: Num2, Chr2
Table4: Num3, Chr3
Результирующая таблица: Table1
ID
Phrase
1
The transaction was complete, but the order has not yet shipped.
2
We need to confirm the following details: sales rep number, order status, and shipping priority.
Результирующая таблица: Table2
Num1
Chr1
1
A
2
B
Результирующая таблица: Table3
Num2
Chr2
1
A
2
B
Результирующая таблица: Table4
Num3
Chr3
1
A
2
B
Пример: комбинирование встроенных загрузок и загрузок из других источников данных
Обзор
Следующий скрипт сначала загружает последовательность полей из коннектора, после чего загружает встроенную таблицу с общим полем и дополнительным полем. Это новое поле передает другое свойство элемента строки, которое не было загружено через подключение к данным. Обратите внимание, что это бесперебойно работает, только когда в двух таблицах имеется одно общее имя поля. Если имеется несколько общих имен полей, создается синтетический ключ.
В данном усеченном примере загружается таблица сведений о заказах из подключения к данным. Затем с помощью встроенной таблицы добавляется дополнительное поле Supplemental Info. К примеру, оно может содержать подробные сведения об особых комментариях к заказам с конкретными идентификаторами.
Скрипт загрузки
SET DateFormat='MM/DD/YYYY';
Orders:
LIB CONNECT TO 'My_Generic_Connection';
LOAD PRODUCT_DIVISION_A_ORDER_ID as Order ID,
PRODUCT_DIVISION_A_ORDER_DATE as ISSUE_KEY as Order Date,
PRODUCT_DIVISION_A_TYPE as Product Type,
PRODUCT_DIVISION_A_SALES_MANAGER as Manager,
PRODUCT_DIVISION_A_SHIPPED_STATUS as Shipped Status;
SELECT PRODUCT_DIVISION_A_ORDER_ID,
PRODUCT_DIVISION_A_ORDER_DATE,
PRODUCT_DIVISION_A_TYPE,
PRODUCT_DIVISION_A_SALES_MANAGER,
PRODUCT_DIVISION_A_SHIPPED_STATUS
FROM SourceTable
WITH PROPERTIES (
[...]
);
Orders_Inline_Info:
load * inline [
Order ID,Supplemental Info
PSF-001014,'Bulk order, pending deal with Paracel.'
PSF-001625,'NOTE: Product damaged. Investigation required.'
];
Результаты
Допустим, после загрузки данных в таблицу добавляются следующие измерения:
Order ID
Order Date
Product Type
Manager
Shipped Status
Supplemental Info
Результирующая таблица может выглядеть следующим образом.
Результирующая таблица: Orders
Order ID
Order Date
Product Type
Manager
Shipped Status
Supplemental Info
PSF-000998
1/13/2024
Electronics
Amanda Honda
Shipped
-
PSF-000999
1/15/2024
Automotive
Molly McKenzie
Not Shipped
-
PSF-001014
1/17/2024
Home Appliances
Amalia Craig
Undefined
Bulk order, pending deal with Paracel.
PSF-001625
1/21/2024
Electronics
Amanda Honda
Undefined
Product damaged. Investigation required.
Обратите внимание, что все поля в обеих таблицах можно добавить в одну визуализацию. Таблицы связаны друг с другом в модели данных.
Пример: опускание заголовков столбцов
Измените спецификацию формата, чтобы загрузить встроенную таблицу без определения заголовков столбцов. Для этого используется спецификация labels (ей задается значение no labels). Для получения дополнительной информации см. раздел Настройка спецификации формата для встроенной загрузки.
Когда таблица загружается без определения имен столбцов, автоматически используются имена столбцов, определенные системой.
Обзор
Данный пример демонстрирует, как можно загрузить встроенную таблицу без определения имен столбцов.
Откройте Редактор загрузки данных и добавьте следующий скрипт загрузки на новую вкладку.
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки на новую вкладку.
Скрипт загрузки содержит следующее:
Простая встроенная загрузка для определения таблицы T1.
Использование спецификатора Quotes (со значением msq) для поддержки многострочного содержимого.
Значения длины, указанные в футах и дюймах.
Символ двойных кавычек (") обозначает конец многострочной записи. В данном примере тот же символ используется для обозначения значений в дюймах. Так сделано, чтобы продемонстрировать синтаксис и результирующее поведение, если требуется использовать и то, и другое в одном операторе LOAD. По сути, ввод символа " для двух последовательных знаков ("") указывает на то, что код должен интерпретироваться как один текстовый экземпляр символа.
Скрипт загрузки
T1:
Load *, recno() as ID inline [
Length
"1' 2""
22' 10"""
14' 8" ] (msq);
Результаты
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:
ID
Length
Для правильного отображения многострочного содержимого необходимо включить параметр Переносить текст ячеек на панели свойств. Кроме того, тема приложения (или параметры визуализации) должна обеспечивать достаточно большое значение для параметра Высота строки (в линиях).
Результирующая таблица
ID
Length
1
1' 2"
22' 10"
2
14' 8"
В приведенной выше таблице запись со значением ID = 1 имеет многострочное содержимое.
Примеры: встроенные загрузки с преобразованиями
Эти примеры демонстрируют, как можно выполнять расчеты в полях из встроенной загрузки с целью создания новых полей в модели данных.
Откройте Редактор загрузки данных и добавьте следующий скрипт загрузки на новую вкладку.
Скрипт загрузки
ORDERS:
Load Original as Updated,
* Inline
[
Original
ProductA
ProductB
ProductC
];
Результаты
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:
Original
Updated
Результирующая таблица
Original
Updated
ProductA
ProductA
ProductB
ProductB
ProductC
ProductC
Обзор
Этот пример демонстрирует, как можно определить вычисляемое поле, чтобы указать идентификатор каждой строки данных, не вводя каждое значение идентификатора вручную.
Откройте Редактор загрузки данных и добавьте следующий скрипт загрузки на новую вкладку.
Скрипт загрузки
ORDERS:
Load RowNo() as ID,
* Inline
[
ProductName
A
B
C
D
E
];
Результаты
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:
ID
ProductName
Результирующая таблица
ID
ProductName
1
A
2
B
3
C
4
D
5
E
Обзор
Этот пример показывает несколько способов применения простого преобразования к встроенным данным. Можно использовать один или несколько операторов LOAD и по-разному настроить синтаксис, чтобы определить, заменяет ли преобразование исходное поле или загружаются оба поля: исходное и новое.
В частности, обратите внимание на следующие вариации и как они влияют на результат:
Количество операторов LOAD в таблице.
Присутствие или отсутствие символа * (загружает все последующие поля).
Присутствие или отсутствие запятых (символ ,).
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки на новую вкладку.
Скрипт загрузки содержит следующее:
Четыре таблицы, каждая из которых ссылается на одни и те же данные. Имена полей отличаются.
DerivedYears1: использует два оператора LOAD для загрузки встроенного столбца и столбца, содержащего преобразование встроенного столбца.
DerivedYears2: использует два оператора LOAD. Скрипт загружает встроенный столбец, затем загружает вычисляемое поле, преобразованное из исходного столбца. Благодаря использованию второго оператора LOAD исходный столбец не загружается в таблицу, что обеспечивает эффективную замену исходного поля новым полем.
DerivedYears3: использует один оператор LOAD для загрузки исходного встроенного столбца и преобразованного столбца вместе.
DerivedYears4: использует один оператор LOAD для определения встроенного поля и преобразования этого исходного поля. Только преобразованное поле загружается в таблицу.
Загрузите данные и откройте лист. Создайте три таблицы и добавьте в них измерения следующим образом:
DerivedYears1: initial_date1, derived_year1
DerivedYears2: initial_date2
DerivedYears3: initial_date3, derived_year3
Результирующая таблица: DerivedYears1
initial_date1
derived_year1
1/1/2022
2022
1/1/2023
2023
1/1/2024
2024
Результирующая таблица: DerivedYears2
derived_year2
2022
2023
2024
Результирующая таблица: DerivedYears3
initial_date3
derived_year3
1/1/2022
2022
1/1/2023
2023
1/1/2024
2024
Результирующая таблица: DerivedYears4
derived_year4
2022
2023
2024
Обзор
Предположим, что вы вставляете информацию из большого текстового файла в редактор скриптов, но при этом требуется выполнить дополнительную обработку записей в наборе данных. Например, требуется удалить определенные символы и префиксы, а также заменить первую букву каждого слова на заглавную.
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки на новую вкладку.
Скрипт загрузки содержит следующее:
Встроенная таблица Transformations, в которой определено преобразование для изменения текстового содержимого поля. Преобразуемый текст добавляется после этого.
Два оператора LOAD. При использовании приведенной в примере конфигурации в таблицу загружается только производное поле ProductName_Trimmed.
Скрипт загрузки
Transformations:
Load
Capitalize(TextBetween(OrigColumn, '{','}')) as ProductName_Trimmed;
Load * inline [
OrigColumn
Product: {soft drinks and other beverages}
Product: {snack food}
Product: {electronics and video games}
];
Результаты
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте это поле как измерение: ProductName_Trimmed.
Результирующая таблица
ProductName_Trimmed
Soft Drinks And Other Beverages
Snack Food
Electronics And Video Games
Пример: операторы для преобразований и предложений
Можно использовать операторы для определения преобразований и конкретных предложений в операторе LOAD. Для получения дополнительной информации см. раздел Операторы и другие предложения.
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки на новую вкладку.
Скрипт загрузки содержит следующее:
Простая встроенная загрузка для определения таблицы Purchases.
Вставка вычисляемого поля OrderSize. Это поле является преобразованием поля amount из встроенного набора данных. Она классифицирует покупки как мелкие или крупные в зависимости от того, превосходит ли их сумма $2000.00.
Предложение where, которое препятствует загрузке записей, когда значение amount меньше $0.05.
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки на новую вкладку.
Скрипт загрузки содержит следующее:
Простая встроенная загрузка для определения таблицы T2.
Переменная NullInterpret определена как две одиночных кавычки. Когда загружается скрипт, записи, содержащие это значение, обрабатываются как нулевые значения.
Скрипт загрузки
set nullinterpret = '';
T2:
Load * inline [
Test
''
x ];
Результаты
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте это поле как измерение: Test.
Результирующая таблица
Test
x
В приведенной выше таблице первая запись содержит нулевое значение. По этой причине оно не включается в визуализацию. Нулевые значения в таблицах с дополнительными измерениями будут обозначаться символом -.
Дополнительные примеры
Для получения дополнительных примеров см. раздел Load.
Если вы обнаружили какую-либо проблему на этой странице и с ее содержанием — будь то опечатка, пропущенный шаг или техническая ошибка, сообщите нам об этом, чтобы мы смогли ее исправить!