[Script Info] Title: [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,0:00:10.96,0:00:16.49,Default,,0000,0000,0000,,Jaql is a loosely typed functional language,\Nwith lazy evaluation. It's part of BigInsights, Dialogue: 0,0:00:16.49,0:00:20.20,Default,,0000,0000,0000,,IBM's Hadoop based Big Data platform. Dialogue: 0,0:00:20.20,0:00:25.26,Default,,0000,0000,0000,,The initial inspiration for Jaql was a JSON\NQuery Language that provided query processing Dialogue: 0,0:00:25.26,0:00:30.47,Default,,0000,0000,0000,,for semi-structured data, particularly nested\Ndata represented using the Jaql Data Model Dialogue: 0,0:00:30.47,0:00:32.83,Default,,0000,0000,0000,,or JDM Dialogue: 0,0:00:32.83,0:00:38.56,Default,,0000,0000,0000,,The JDM is a superset of JSON, a standard\Ndata model, that is similar to XML but much Dialogue: 0,0:00:38.56,0:00:40.65,Default,,0000,0000,0000,,easier to work with. Dialogue: 0,0:00:40.65,0:00:47.04,Default,,0000,0000,0000,,Jaql provides a complete solution environment\Nand integration point for all the data storage, Dialogue: 0,0:00:47.04,0:00:53.91,Default,,0000,0000,0000,,functions and capabilities of BigInsights;\Nincluding flexible access to data and analytics. Dialogue: 0,0:00:53.91,0:00:59.51,Default,,0000,0000,0000,,Jaql is the functional language that glues\Nit all together. Dialogue: 0,0:00:59.51,0:01:05.80,Default,,0000,0000,0000,,It also provides ways to reach out to external\Ndata and services such as relational databases, Dialogue: 0,0:01:05.80,0:01:10.91,Default,,0000,0000,0000,,indexing services, text analytics, machine\Nlearning and so on. Dialogue: 0,0:01:10.91,0:01:16.20,Default,,0000,0000,0000,,Jaql provides an elegant programming model\Nfor developing complex and reusable queries Dialogue: 0,0:01:16.20,0:01:22.46,Default,,0000,0000,0000,,and transformations against JSON data structures;\Neven very deeply nested data structures. Dialogue: 0,0:01:22.46,0:01:28.80,Default,,0000,0000,0000,,As with SQL, Jaql is a declarative query language\Nso you focus on what you want to achieve, Dialogue: 0,0:01:28.80,0:01:31.47,Default,,0000,0000,0000,,not how it's done. Dialogue: 0,0:01:31.47,0:01:37.83,Default,,0000,0000,0000,,Under the hood, Jaql automatically exploits\Nthe massive parallelism of MapReduce. You Dialogue: 0,0:01:37.83,0:01:42.38,Default,,0000,0000,0000,,don't have to worry about the complexities\Nof MapReduce programming. Dialogue: 0,0:01:42.38,0:01:48.67,Default,,0000,0000,0000,,Jaql is an extensible language. It provides\Nnative functions and modules, that allow you Dialogue: 0,0:01:48.67,0:01:54.50,Default,,0000,0000,0000,,to build up packages of re-usable logic that\Ncan be shared throughout your environment. Dialogue: 0,0:01:54.50,0:01:59.81,Default,,0000,0000,0000,,So, when would you choose Jaql instead of\Nanother language? Dialogue: 0,0:01:59.81,0:02:06.81,Default,,0000,0000,0000,,1. Jaql is a good choice when your data is\Ndeeply nested, representing complex relationships. Dialogue: 0,0:02:08.26,0:02:14.84,Default,,0000,0000,0000,,Jaql can work with arbitrarily nested data\Nand can even handle data that varies in structure Dialogue: 0,0:02:14.84,0:02:17.37,Default,,0000,0000,0000,,and content from record to record. Dialogue: 0,0:02:17.37,0:02:23.22,Default,,0000,0000,0000,,2. Jaql is a good choice when you need to\Ncombine programming models because it offers Dialogue: 0,0:02:23.22,0:02:30.15,Default,,0000,0000,0000,,both the core Jaql syntax and you can embed\NSQL within your Jaql – that's like combining Dialogue: 0,0:02:30.15,0:02:32.71,Default,,0000,0000,0000,,Hive and Pig together into one language Dialogue: 0,0:02:32.71,0:02:39.71,Default,,0000,0000,0000,,3. Jaql is a good choice when you need a modular\Nlanguage that lets you write native functions. Dialogue: 0,0:02:40.27,0:02:46.41,Default,,0000,0000,0000,,You can parameterize and encapsulate any functionality\Nof the language. and then package those functions Dialogue: 0,0:02:46.41,0:02:51.10,Default,,0000,0000,0000,,into reusable modules to be shared across\Nall of your applications. Dialogue: 0,0:02:51.10,0:02:58.10,Default,,0000,0000,0000,,4. Jaql is also a good choice when you need\Na full programming language with both flow-control Dialogue: 0,0:02:58.68,0:03:04.32,Default,,0000,0000,0000,,and native functions and modules. You can\Ndevelop full programs from the ground up using Dialogue: 0,0:03:04.32,0:03:09.41,Default,,0000,0000,0000,,JAQL without requiring the use of another\Nprogramming language to orchestrate your logic, Dialogue: 0,0:03:09.41,0:03:16.41,Default,,0000,0000,0000,,which is particularly important for data flows.