Вывести все содержимое измерений по кусту3 базы данных production
База данных платежной системы billing_simple состоит из одной таблицы billing следующей структуры:
Добавьте в таблицу одну запись о платеже со следующими значениями:
email плательщика: ‘pasha@mail.com’
email получателя: ‘katya@mail.com’
сумма: 300.00
валюта: ‘EUR’
дата операции: 14.02.2016
комментарий: ‘Valentines day present)’
Измените адрес плательщика на ‘igor@mail.com’ для всех записей таблицы, где адрес плательщика ‘alex@mail.com’.
Удалите из таблицы записи, где адрес плательщика или адрес получателя установлен в неопределенное значение или пустую строку.
База данных учета проектов project_simple состоит из одной таблицы project следующей структуры:
Выведите общее количество заказов компании.
Выведите в качестве результата одного запроса общее количество заказов, сумму стоимостей (бюджетов) всех проектов, средний срок исполнения заказа в днях.
База данных магазина store_simple состоит из одной таблицы store следующей структуры:
Выведите количество товаров в каждой категории. Результат должен содержать два столбца:
количество товаров в данной категории.
SELECT category, COUNT(product_name) FROM store GROUP BY category;
Выведите 5 категорий товаров, продажи которых принесли наибольшую выручку. Под выручкой понимается сумма произведений стоимости товара на количество проданных единиц. Результат должен содержать два столбца:
выручка от продажи товаров в данной категории.
SELECT category, SUM(price*sold_num) result FROM store GROUP BY category ORDER BY result DESC LIMIT 5;
База данных магазина store следующей структуры:
Выведите все позиций списка товаров принадлежащие какой-либо категории с названиями товаров и названиями категорий. Список должен быть отсортирован по названию товара, названию категории. Для соединения таблиц необходимо использовать оператор INNER JOIN.
Выведите список клиентов (имя, фамилия) и количество заказов данных клиентов, имеющих статус «new».
Выведите список товаров с названиями товаров и названиями категорий, в том числе товаров, не принадлежащих ни одной из категорий.
Выведите список товаров с названиями категорий, в том числе товаров, не принадлежащих ни к одной из категорий, в том числе категорий не содержащих ни одного товара.
Выведите список всех источников клиентов и суммарный объем заказов по каждому источнику. Результат должен включать также записи для источников, по которым не было заказов.
Выведите названия товаров, которые относятся к категории ‘Cakes’ или фигурируют в заказах текущий статус которых ‘delivering’. Результат не должен содержать одинаковых записей. В запросе необходимо использовать оператор UNION для объединения выборок по разным условиям.
Выведите список всех категорий продуктов и количество продаж товаров, относящихся к данной категории. Под количеством продаж товаров подразумевается суммарное количество единиц товара данной категории, фигурирующих в заказах с любым статусом.
Выведите список источников, из которых не было клиентов, либо клиенты пришедшие из которых не совершали заказов или отказывались от заказов. Под клиентами, которые отказывались от заказов, необходимо понимать клиентов, у которых есть заказы, которые на момент выполнения запроса находятся в состоянии ‘rejected’. В запросе необходимо использовать оператор UNION для объединения выборок по разным условиям.
Схема базы данных не содержит таблиц.
Добавить таблицу ‘best_offer_sale’ со следующими полями:
Название: id , тип данных: INT, возможность использования неопределенного значения: Нет, первичный ключ
Название: name , тип данных: VARCHAR(255), возможность использования неопределенного значения: Да
Название: dt_start , тип данных: DATETIME, возможность использования неопределенного значения: Нет
Название: dt_finish , тип данных: DATETIME, возможность использования неопределенного значения: Нет
В базе данных магазина store удалить из таблицы ‘client’ поля ‘code’ и ‘source_id’.
Удалите таблицу ‘source’.
Добавьте в таблицу ‘sale_has_good’ следующие поля:
Название: num , тип данных: INT, возможность использования неопределенного значения: Нет
Название: price , тип данных: DECIMAL(18,2), возможность использования неопределенного значения: Нет
Добавьте в таблицу ‘client’ поле ‘source_id’ тип данных: INT, возможность использования неопределенного значения: Да. Для данного поля определите ограничение внешнего ключа как ссылку на поле ‘id’ таблицы ‘source’.
Источник
Таблицы фактов и измерений
При проектировании схемы для базы данных обозреватель данных Azure Подумайте о том, что таблицы широко принадлежат одной из двух категорий.
Таблицы фактов
Таблицы фактов — это таблицы, записи которых являются неизменяемыми «фактами», такими как журналы службы и сведения об измерениях. Записи постепенно добавляются в таблицу в потоковой манере или больших фрагментах. Записи остаются там до тех пор, пока они не будут удалены из-за затрат или из-за потери их ценности. В противном случае записи не обновляются.
Данные сущности иногда хранятся в таблицах фактов, где данные сущности меняются медленно. Например, данные о какой-либо физической сущности, например об оборудовании, который редко изменяется в расположении. Так как данные в Kusto являются неизменяемыми, обычно каждая таблица должна содержать два столбца:
- Столбец Identity ( string ), определяющий сущность.
- datetime Столбец отметок времени последнего изменения ()
Затем извлекается только последняя запись для каждого удостоверения сущности.
Таблицы измерений
- Хранение ссылочных данных, например таблиц подстановки из идентификатора сущности, в его свойствах
- Хранение данных, похожих на моментальные снимки, в таблицах, все содержимое которых изменяется в одной транзакции
Таблицы измерений регулярно не принимаются новыми данными. Вместо этого все содержимое данных обновляется одновременно с помощью таких операций, как . Set-или-Replace, . Move экстентыили . Переименуйте таблицы.
Иногда таблицы измерений могут быть производными от таблиц фактов. Этот процесс можно выполнить с помощью политики обновления в таблице фактов с запросом к таблице, которая принимает последнюю запись для каждой сущности.
Отличить таблицы фактов и измерений
В Kusto существуют процессы, которые различают таблицы фактов и таблицы измерений. Один из них — непрерывный экспорт.
Эти механизмы гарантированно обрабатывают данные в таблицах фактов ровно один раз. Они полагаются на механизм курсора базы данных .
Например, при каждом выполнении задания непрерывного экспорта экспортируются все записи, полученные с момента последнего обновления курсора базы данных. Задания непрерывного экспорта должны различать таблицы фактов и таблицы измерений. Таблицы фактов обрабатывают только новые принимаемые данные, а таблицы измерений используются в качестве уточняющих запросов. Таким образом, необходимо учитывать всю таблицу.
Невозможно «пометить» таблицу как «таблицу фактов» или «таблицу измерения». Способ, которым данные поступают в таблицу и как используется таблица, определяет ее тип.
Источник
Вывести все содержимое измерений по кусту3 базы данных production
Репозиторий для выполненных домашних заданий по курсу «Основы Java» Ukrainian IT School
Lesson 1 — Введение в Java, байткод, пакеты, запуск первого приложения
- Установка JDK (Java Development Kit).
- Создайте три класса: Car в пакете com.company.vehicles, Engine в пакете com.company.details и Driver в пакете com.company.professions. Все три класса находятся в разных пакетах. В main() методе класса Car создайте объекты класса Engine и Driver. При запуске Car программа должна выводить на консоль «I’m driving!». Скомпилируйте и запустите программу.
Lesson 2 — Classpath, jar-файлы, примитивные типы
- Соберите com.company.professions пакет в JAR-файл и скопируйте в каталог lib. При компиляции и запуске класса Car указывайте JAR-файл в -cp.
- Используйте аргументы командной строки при запуске Car: на вход программы подается несколько аргументов. Программа должна распечатать их в виде: <0 - знач1; 1 знач2>
- Установка Intellij IDEA, Community Edition.
- Создать новый проект.
- Создать программу, в которой используются одно-строчные и много-строчные комментарии.
- Скачать git
- Зарегистрироваться на GitHub
Lesson 3 — Литералы, преобразование примитивных типов, переменные
- Создайте таблицу преобразований примитивных типов друг к другу. На пересечении напишите: ня (неявное) – если преобразование происходит автоматически, я (явное) – если нужно использовать явное преобразование, х – если преобразование невозможно, т — если преобразование тождественно.
- Создать программу, в которой последовательно прописать преобразования всех совместимых примитивных типов друг к другу.
- Создать программу, которая будет сообщать, является ли целое число, введённое пользователем, чётным или нечётным. Если пользователь введёт не целое число, то сообщать ему об ошибке.
- Создать программу, которая будет вычислять и выводить на экран сумму двух целых чисел, введённых пользователем. Если пользователь некорректно введёт хотя бы одно из чисел, то сообщать об ошибке.
Lesson 4 — Консольный ввод/вывод, побитовые операции, операции
- Создать программу, которая будет выводить на экран меньшее по модулю из трёх введённых пользователем вещественных чисел. Для вычисления модуля используйте тернарную условную операцию.
- Имеется гирлянда, состоящая из 32 лампочек. Каждая лампочка имеет два состояния — включена или выключена. В начале работы программы случайным образом задайте какие лампочки будут включены. Напишите следующие методы: a) метод который будет мигать лампочками гирлянды заданное количество раз; б) метод, который будет запускать гирлянду в режим бегущей строки; в) метод, который будет выяснять включена ли лампочки на первой позиции; г) метод который будет распечатывать текущее состояние гирлянды. Используйте побитовые операции. Для получения двоичного формата числа используйте метод Integer.toBinaryString(a).
- Вычислить среднее значение вещественных чисел передаваемых на вход программы в качестве аргументов. Используйте цикл for, пример. Для преобразования из String в double используйте метод Double.parseDouble(String s).
Lesson 5-6 — Операторы if, switch, for, while, массивы, алгоритмы сортировки
- Распечатать все числа от 1 до 100, которые делятся на 5 без остатка. Используем цикл do-while.
- Изменить программу сортировки пузырьком: а) добавить возможность досрочного окончания сортировки; б) программа написана таким образом, что минимальный элемент «всплывает» в начало массива. Измените программу так чтобы минимальный элемент «всплывал» в конец массива (внутренний цикл for должен перебирать элементы не с конца, а с начала).
- Реализовать подсчет факториала используя цикл for.
- Создать двухмерный массив 5х8 и инициализировать его с помощью блока для инициализации. Найти максимальное и минимальное значение в каждой «строке» и записать эти значения в двухмерный массив 5х2. Распечатать оба массива.
- Реализовать задачу с гирляндой используя массивы.
- Изменить сортировку выбором — исключите обмен значений, если найденный минимальный элемент равен array[i].
Lesson 7 — ООП, классы, методы
- Создать класс Person, который содержит: a) поля fullName, age. б) методы move() и talk(). в) Добавьте два конструктора — Person() и Person(fullName, age). Создайте два объекта этого класса. Один объект инициализируется конструктором Person(), другой — Person(fullName, age).
- Создать класс «Матрица». Класс должен иметь следующие поля: 1) двумерный массив вещественных чисел; 2) количество строк и столбцов в матрице. Класс должен иметь следующие методы: 1) сложение с другой матрицей; 2) умножение на число; 3) вывод на печать.
- Определить класс, хранящий такую информацию о пользователе библиотеки: ФИО, номер читательского билета, факультет, дата рождения, телефон. Методы takeBook(), returnBook(). Разработать программу, в которой создается массив объектов данного класса. В программе организовать: ввод данных о читателях, вывод информации о читателях.
- Создать класс Car в пакете com.company.vehicles, Engine в пакете com.company.details и Driver в пакете com.company.professions. Класс Driver содержит поля — ФИО, стаж вождения. Класс Engine содержит поля — мощность, производитель. Класс Car содержит поля — марка автомобиля, класс автомобиля, вес, водитель типа Driver, мотор типа Engine. Методы start(), stop(), turnRight(), turnLeft(), которые выводят на печать: «Поехали», «Останавливаемся», «Поворот направо» или «Поворот налево». А также метод printInfo(), который выводит полную информацию об автомобиле, ее водителе и моторе.
Lesson 8 — ООП, классы, методы
- Переделать класс о пользователе библиотеки — перегрузить методы takeBook(), returnBook(): 1) takeBook, который будет принимать количество взятых книг. 2) takeBook, который будет принимать переменное количество названий книг. 3) takeBook, который будет принимать переменное количество объектов класса Book (создать новый класс). Аналогичным образом перегрузить метод returnBook().
- Даны два целых числа A и В. Выведите все числа от A до B включительно, в порядке возрастания, если A =3, студент переводится на следующий курс, иначе отчисляется.
- Переделать задание 5 из предыдущего урока (класс Товар), используя Collections.sort() для сортировки. Добавить возможность сортировать в обратном порядке (Collections.reverse()).
Lesson 16 — Исключения
- Создать статический метод который принимает на вход три параметра: login, password и confirmPassword. Login должен содержать только латинские буквы, цифры и знак подчеркивания. Длина login должна быть меньше 20 символов. Если login не соответствует этим требованиям, необходимо выбросить WrongLoginException. Password должен содержать только латинские буквы, цифры и знак подчеркивания. Длина password должна быть меньше 20 символов. Также password и confirmPassword должны быть равны. Если password не соответствует этим требованиям, необходимо выбросить WrongPasswordException. WrongPasswordException и WrongLoginException — пользовательские классы исключения с двумя конструкторами – один по умолчанию, второй принимает сообщение исключения и передает его в конструктор класса Exception. Обработка исключений проводится внутри метода. Используем multi-catch block. Метод возвращает true, если значения верны или false в другом случае.
- Создаем мини приложение — интернет-магазин. Должны быть реализованы следующие возможности: a) аутентификация пользователя. Пусть у вас будет отображение, содержащие пары логин-пароль. Если пользователь ввел, правильные данные, он аутентифицирован. В этом случае пусть создается объект User, cодержащий логин, пароль. Если данные не правильные, то пусть создается объект User, с пустыми значениями. б) просмотр списка каталогов товара, в) просмотр списка товаров определенного каталога, отсортированного по заданному критерию, г) выбор товара в корзину, д) покупка товаров, находящихся в корзине. Можете добавить свои операции или изменить что-то на свой вкус.
Lesson 17 — Потоки ввода/вывода, сериализация
- Переписать класс FileCopy: a) Добавить блок try-with-resources. б) Убрать throws IOException из объявления main() метода. И добавить соответствующий catch блок.
- Переписать класс FileInputOutputStreamDemo: a) Добавить блок try-with-resources. б) Замените for (int i = 0; i
Источник