В конце сентября Microsoft представила новые сервисы на базе облачного хранилища Azure Data Lake и наряду с этим новый язык запросов, получивший название U-SQL.
В число новых сервисов Azure Data Lake, предназначенных для аналитики в облаке, вошли гипермасштабируемый репозиторий, новый сервис аналитики на основе YARN для разработчиков и специалистов по обработке данных, позволяющий анализировать любые данные, и HDInsight, управляемый сервис на базе Hadoop, Spark, Storm и HBase.
Но для разработчиков, пожалуй, наиболее важен тот факт, что Azure Data Lake Analytics включает язык U-SQL, который соединяет достоинства SQL с выразительной силой собственного кода разработчика. В дополнение к этому Microsoft представила Azure Data Lake Tools for Visual Studio — интегрированную среду для разработок, охватывающую Azure Data Lake и упрощающую создание авторской продукции, отладку и оптимизацию для обработки данных и аналитики.
«Нам известно, что многие разработчики и исследователи данных напряженно пытаются добиться успехов в аналитике больших данных посредством существующих технологий и инструментов, — написал в блоге компании по поводу расширения возможностей Azure Data Lake Т. К. Ренгараджан (известный под ником Ranga), корпоративный вице-президент Microsoft Data Platform. — Программное кодирование открывает перед разработчиком решений широчайшие возможности, но требует значительных инвестиций в достижение профессионального мастерства, тогда как средства на базе SQL просты в освоении, но имеют ограничения, выйти за рамки которых не просто. Мы столкнулись с теми же проблемами у себя в Microsoft и в связи с этим придумали U-SQL, новый язык запросов, соединяющий простоту использования SQL с выразительной силой C#».
Microsoft создала U-SQL на той же распределенной среде исполнения программ, которая приводит в действие системы больших данных компании, отметил Ренгараджан. «Миллионы SQL- и .NET-разработчиков теперь могут обрабатывать и анализировать все свои данные, используя уже имеющиеся у них навыки. Поддержка U-SQL в Azure Data Lake Tools for Visual Studio включает современный уровень поддержки функций авторских разработок, отладки и высокопроизводительного анализа для более эффективной оптимизации заданий, выполняемых на тысячах узлов».
Поддержка U-SQL масштабируемых распределенных запросов позволяет разработчикам и специалистам по данным эффективно анализировать данные в Azure Data Lake Store и реляционных хранилищах, таких как Azure SQL Database.
«U-SQL особенно полезен в том смысле, что мы смогли с ним работать, пользуясь нашими прежними навыками в .NET и SQL, — отметил Сэм Фанхауте, технический директор компании Codit. — Это упрощает работу с большими данными, потому что нам не нужно осваивать принципиально новую парадигму. С Azure Data Lake мы можем обрабатывать данные, поступающие с умных электросчетчиков, и соединять их с ценами местного рынка электроэнергии, чтобы наши клиенты могли оптимизировать свои энергозатраты и экономить сотни тысяч долларов».
Microsoft U-SQL позволяет разработчикам и специалистам по данным обрабатывать любой тип данных, легко использовать заказной код и масштабироваться под любые объемы данных, написал в блоге Visual Studio Майкл Рис, главный руководитель программы Microsoft Big Data.
«С U-SQL вы можете писать декларативные задания по обработке и анализу больших данных, а также включать в эти задания ваш собственный код, — отметил Скотт Гетри, исполнительный вице-президент Microsoft Cloud and Enterprise Group. — Внутри Microsoft разработчики используют такую комбинацию, чтобы продуктивно оперировать с массивными комплексами данных масштабом в многие экзабайты при обработке конвейеров критически важных данных. Помимо обеспечения удобного доступа к порталу управления Azure мы поставляем богатый набор средств Visual Studio для отладки и оптимизации ваших U-SQL-заданий. Это дает вам возможность проигрывать и анализировать свои задания по большим данным, разбираться с узкими местами и находить возможности для улучшения производительности и эффективности, чтобы вы могли оплачивать только реально необходимые ресурсы и непрерывно подстраивать свои операции».
По словам Риса, U-SQL представляет собой эволюцию декларативного языка SQL с нативной расширяемостью через пользовательский код, написанный на C#.
«В результате объединяются обе парадигмы, объединяется обработка структурированных, неструктурированных и размещенных удаленно данных, объединяется практика декларативного и заказного императивного программирования, а также объединяется опыт по части расширения языковых возможностей», — отметил он.
Microsoft выстроила этот язык таким образом, чтобы избежать ограничений других языков на основе SQL, не оптимизированных для обработки неструктурированных данных или более сложных с точки зрения кодирования для масштабируемых систем.
Кроме того Рис отметил, что Microsoft создала U-SQL на базе внутреннего опыта компании в языке SCOPE (Structured Computation Optimized for Parallel Execution) и существующих языках, таких как T-SQL, ANSI SQL и Hive.
«Например, мы базируем интеграцию SQL и языков программирования, а также фреймворк исполнения и оптимизации для U-SQL на SCOPE, который служит нашим внутренним механизмом для ежедневного выполнения сотен тысяч заданий», — сказал он.
Microsoft также состыковала систему метаданных U-SQL, синтаксис SQL и семантику языка с T-SQL и ANSI SQL. При этом компания использует типы данных C# и язык выражений C#. Вдобавок Microsoft задействовала Hive и другие языки больших данных для идентификации образов и требований к обработке данных и интеграции в свой фреймворк.