Обзор
В этом сценарии применения имеется следующее:
Набор данных Transactions, включающий следующие поля:
Таблица Currency, включающая:
Второй набор данных Transactions, включающий следующие поля:
Будут загружены пять скриптов, один за другим.
Первый скрипт загрузки содержит первоначальный набор данных с датами и суммами в британских фунтах (GBP), который отправляется в таблицу под именем Transactions.
Второй скрипт загрузки содержит следующее:
Второй набор данных с датами и суммами в долларах США (USD), который отправляется в таблицу под именем Transactions_in_USD.
Префикс noconcatenate, добавленный перед оператором load набора данных Transactions_in_USD для предотвращения неявного объединения.
Третий скрипт загрузки содержит префикс join, который будет использоваться для создания курса обмена валют между британскими фунтами и долларами США в таблице Transactions_in_USD.
Четвертый скрипт загрузки содержит префикс concatenate, который добавляет Transactions_in_USD в первоначальную таблицу Transactions.
Пятый скрипт загрузки содержит оператор drop table, который удалит таблицу Transactions_in_USD после объединения ее данных с таблицей Transactions.
Первый скрипт загрузки
Transactions:
Load * Inline [
id, date, amount
1, 12/30/2018, 23.56
2, 12/07/2018, 556.31
3, 12/16/2018, 5.75
4, 12/22/2018, 125.00
5, 12/22/2018, 484.21
6, 12/22/2018, 59.18
7, 12/23/2018, 177.42
];
Результаты
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:
Результаты первого скрипта загрузкиid | date | amount |
---|
1 | 12/30/2018 | 23.56 |
2 | 12/07/2018 | 556.31 |
3 | 12/16/2018 | 5.75 |
4 | 12/22/2018 | 125.00 |
5 | 12/22/2018 | 484.21 |
6 | 12/22/2018 | 59.18 |
7 | 12/23/2018 | 177.42 |
В таблице отображается первоначальный набор данных с суммами в британских фунтах (GBP).
Второй скрипт загрузки
Transactions_in_USD:
NoConcatenate
Load * Inline [
id, date, amount
8, 01/01/2019, 164.27
9, 01/03/2019, 384.00
10, 01/06/2019, 25.82
11, 01/09/2019, 312.00
12, 01/15/2019, 4.56
13, 01/16/2019, 90.24
14, 01/18/2019, 19.32
];
Результаты
Загрузите данные и откройте таблицу.
Результаты второго скрипта загрузкиid | date | amount |
---|
1 | 12/30/2018 | 23.56 |
2 | 12/07/2018 | 556.31 |
3 | 12/16/2018 | 5.75 |
4 | 12/22/2018 | 125.00 |
5 | 12/22/2018 | 484.21 |
6 | 12/22/2018 | 59.18 |
7 | 12/23/2018 | 177.42 |
8 | 01/01/2019 | 164.27 |
9 | 01/03/2019 | 384.00 |
10 | 01/06/2019 | 25.82 |
11 | 01/09/2019 | 312.00 |
12 | 01/15/2019 | 4.56 |
13 | 01/16/2019 | 90.24 |
14 | 01/18/2019 | 19.32 |
Обратите внимание, что добавлен второй набора данных из таблицы Transactions_in_USD.
Третий скрипт загрузки
Этот скрипт загрузки объединяет курс обмена долларов США (USD) на британские фунты (GBP) в таблицу Transactions_in_USD.
Join (Transactions_in_USD)
Load * Inline [
rate
0.7
];
Результаты
Загрузите данные и откройте просмотр модели данных. Выберите таблицу Transactions_in_USD, и обратите внимание, что для каждой существующей записи добавлено значение поля rate, равное 0.7.
Четвертый скрипт загрузки
Используя резидентную загрузку, этот скрипт загрузки объединит таблицы Transactions_in_USD и Transactions после перевода сумм в доллары США (USD).
Concatenate (Transactions)
LOAD
id,
date,
amount * rate as amount
Resident Transactions_in_USD;
Результаты
Загрузите данные и откройте таблицу. Появятся новые записи с суммами в британских фунтах (GBP) из строк 8 — 14.
Результаты четвертого скрипта загрузкиid | date | amount |
---|
1 | 12/30/2018 | 23.56 |
2 | 12/07/2018 | 556.31 |
3 | 12/16/2018 | 5.75 |
4 | 12/22/2018 | 125.00 |
5 | 12/22/2018 | 484.21 |
6 | 12/22/2018 | 59.18 |
7 | 12/23/2018 | 177.42 |
8 | 01/01/2019 | 114.989 |
8 | 01/01/2019 | 164.27 |
9 | 01/03/2019 | 268.80 |
9 | 01/03/2019 | 384.00 |
10 | 01/06/2019 | 18.074 |
10 | 01/06/2019 | 25.82 |
11 | 01/09/2019 | 218.40 |
11 | 01/09/2019 | 312.00 |
12 | 01/15/2019 | 3.192 |
12 | 01/15/2019 | 4.56 |
13 | 01/16/2019 | 63.168 |
13 | 01/16/2019 | 90.24 |
14 | 01/18/2019 | 13.524 |
14 | 01/18/2019 | 19.32 |
Пятый скрипт загрузки
Этот скрипт загрузки удалит повторяющиеся записи из таблицы результатов четвертого скрипта загрузки, оставляя только записи с суммами в британских фунтах (GBP).
drop tables Transactions_in_USD;
Результаты
Загрузите данные и откройте таблицу.
Результаты пятого скрипта загрузкиid | date | amount |
---|
1 | 12/30/2018 | 23.56 |
2 | 12/07/2018 | 556.31 |
3 | 12/16/2018 | 5.75 |
4 | 12/22/2018 | 125.00 |
5 | 12/22/2018 | 484.21 |
6 | 12/22/2018 | 59.18 |
7 | 12/23/2018 | 177.42 |
8 | 01/01/2019 | 114.989 |
9 | 01/03/2019 | 268.80 |
10 | 01/06/2019 | 18.074 |
11 | 01/09/2019 | 218.40 |
12 | 01/15/2019 | 3.192 |
13 | 01/16/2019 | 63.168 |
14 | 01/18/2019 | 13.524 |
После выполнения пятого скрипта загрузки в таблице результатов отображаются все 14 транзакций, которые существовали в обоих наборах данных транзакций. Однако для транзакций 8-14 суммы переведены в британские фунты (GBP).
Если убрать префикс NoConcatenate, который стоял перед Transactions_in_USD во втором скрипте загрузки, выполнение скрипта завершится ошибкой «Таблица Transactions_in_USD не найдена». Это связано с тем, что в таком случае таблица Transactions_in_USD будет автоматически объединена с первоначальной таблицей Transactions.