Home / Companies / DataStax / Blog / September 2017

September 2017 Summaries

15 posts from DataStax

Filter
Month: Year:
Post Summaries Back to Blog
In this tutorial, we will explore some advanced Gremlin traversal techniques such as in-stream variables, side effect steps, and labeled steps. We will also discuss the use of subgraph() and select() steps. These techniques are useful for performing complex graph queries and data manipulations. 1. In-Stream Variables: - Create intermediate variables during a traversal to reuse them later in subsequent traversal steps. - Use aggregate() or as(): - aggregate("var_name") saves the result of a previous step into an in-stream variable "var_name". - as("var_name") labels the current step with "var_name" and can be recalled later using select(). 2. Side Effect Steps: - Use sideEffect() to perform computations or data manipulations without affecting the path history. - The result of a side effect step is not included in the output of the traversal, but it can be reused later in subsequent steps. 3. Labeled Steps: - Use as("var_name") to label a step with "var_name" and recall it later using select(). - The result of a labeled step is included in the output of the traversal, but it can be reused later in subsequent steps. 4. Subgraph() Step: - Use subgraph("subgraph_id") to save a partial edge-induced subgraph. - The subgraph() step can only be placed after an edge step, not after a vertex step. 5. Select() Step: - Use select("var_name1", "var_name2", ...) to pick side effect variables or saved labels in the path history. - Any reducer step (sum(), mean(), ...) will destroy path history and thus you lose all previously labeled steps. 6. Cap() Step: - Use cap("var_name") to save a vertex or edge into an in-stream variable "var_name". - The result of a cap() step is not included in the output of the traversal, but it can be reused later in subsequent steps. By mastering these advanced Gremlin traversal techniques, you will be able to perform complex graph queries and data manipulations more efficiently and effectively.
Sep 25, 2017 2,618 words in the original blog post.
This blog post delves into the internal workings of Gremlin and provides a deeper understanding of its query language to help users master it. It explains two distinct evaluation strategies for traversals, OLTP (Online Transaction Processing) and OLAP (Online Analytical Processing), and their characteristics. The post also discusses the differences between these execution modes and highlights important points to consider when using Gremlin OLAP. Additionally, it provides examples of OLTP patterns from a single vertex and an OLAP pattern traversal. Finally, the author offers some safeguards for limiting graph rapid expansion in OLTP traversals, such as counting edge cardinality, sampling, and filtering.
Sep 24, 2017 1,323 words in the original blog post.
This blog post discusses the sack() step in Gremlin, a query language for traversing graphs. The sack() step was introduced to help users solve problems more efficiently by using local data structures relative to each traverser instead of global ones. Sacks can contain any type of data structure and are defined right after the traversal object. The complete signature of the withSack() step is withSack(default_data_structure, split_operator, merge_operator). To mutate the content of a sack, users can use the step sack(bi-function).by(projection_axis). The sack data structure can be accessed at any time by calling the step sack(). An example is provided to compute Blade Runner's average rating using sack(). Finally, an example demonstrates how to find the shortest path between South Kensington and Marble Arch tube stations using sack() in Gremlin.
Sep 24, 2017 868 words in the original blog post.
This blog post delves into pattern matching with Gremlin, a declarative way to perform traversals in the graph database. It explains how to use the match() step and label vertices/edges for pattern matching. The author provides examples of using pattern matching to filter movies by genre and recommending similar movies based on ratings. They also discuss limitations and workarounds when using ordering within a pattern-matching traversal.
Sep 24, 2017 931 words in the original blog post.
In this tutorial, we will learn how to use Gremlin's filtering and selection capabilities in DataStax Enterprise Graph (DSE Graph). We will cover the following steps: 1. Projection by() 2. Deduplication with dedup(...).by(...) 3. Selection using has(property, predicate) and filter(predicate) 4. Resolution of previously labeled steps with where(predicate) 5. Filtering on inner traversals 6. Double-labeling to avoid overriding previous projections By the end of this tutorial, you will be able to effectively filter and select vertices/edges in DSE Graph using Gremlin.
Sep 24, 2017 3,059 words in the original blog post.
This blog post delves into recursive traversal techniques with Gremlin, focusing on a part of the schema where a user knows other users who know other users, and so on. It demonstrates how to find the user in the dataset who knows the most other users, list all friends up to 2nd degree connections, and use emit() modulator to output traversed vertices. The post also explains how to control recursive combinatory explosion using timeLimit(time_in_millisecs) and loops().
Sep 23, 2017 1,485 words in the original blog post.
This blog post delves into the usage of Gremlin path object and explores various ways to find paths between vertices in a graph database. It demonstrates how to use the path() step to display all stations from South Kensington to Covent Garden, minimize station count, and minimize the number of line changes. The traversal steps are explained in detail, along with their functions and purposes.
Sep 23, 2017 1,271 words in the original blog post.
The text discusses a series of articles that provide an in-depth understanding of how Gremlin traversals work, which are essential for mastering the language. These articles cover various techniques and syntax related to Gremlin traversal. The content was initially published on DuyHai's blog.
Sep 22, 2017 65 words in the original blog post.
This blog post delves into understanding the internals of Gremlin and provides a deeper insight into its query language to master it. It explains how to create a schema for KillrVideo, import data, and execute various traversal operations using Gremlin. The text also discusses the type of expressions in Gremlin, such as g.V(), and how they can be used to retrieve specific properties from vertices or edges. Additionally, it covers grouping and counting operations, unfolding nested collections, and performing projections on vertex properties or complete traversals.
Sep 22, 2017 1,657 words in the original blog post.
This blog post delves into translating SQL queries into Gremlin traversals. It covers various aspects such as fetching properties of vertices, filtering data, ordering by multiple properties, grouping and joins in the context of graph databases using Apache TinkerPop's Gremlin language. The text also provides solutions to common problems encountered while performing these operations.
Sep 22, 2017 2,164 words in the original blog post.
This blog post demonstrates how to build a simple collaborative filtering engine using Gremlin traversal. The goal is to find movies similar to a user's favorite movie, Blade Runner, based on average ratings and genres. The initial traversal includes several caveats, such as not considering the overall rating of the recommended movies or their genre match with the favorite movie. By adding more filtering steps, the final traversal provides better recommendations that meet both criteria.
Sep 22, 2017 1,099 words in the original blog post.
Jeff Carpenter shares five key points for Apache Cassandra users starting with DataStax Enterprise (DSE). These include DSE Search for full-featured search capabilities on top of Cassandra, DSE Analytics powered by Apache Spark™ for supporting various analytics use cases, DSE Graph for handling many-to-many relationships in data, and DataStax Studio as the next generation developer tool. Lastly, DataStax Managed Cloud provides a fully managed service for maintaining infrastructure on AWS, Microsoft Azure, and Google Cloud Platform.
Sep 21, 2017 1,238 words in the original blog post.
Version 1.4.0 of DataStax Enterprise Node.js Driver and version 3.3.0 of DataStax Node.js Driver for Apache Cassandra have been released, focusing on adding support for speculative query executions. The performance of Murmur3 hashing was improved, and the logic for query preparation was changed along with other enhancements. Speculative execution is a technique to limit latency at high percentiles by preemptively starting additional query executions against different nodes. It can be controlled via an instance of SpeculativeExecutionPolicy provided when initializing the Client. The driver also determines whether queries are idempotent, which affects how speculative executions are handled. Additionally, the new versions provide a method to obtain a snapshot of the pool state per host and more detailed information about all features, improvements, and fixes included in this release can be found in the changelogs.
Sep 19, 2017 736 words in the original blog post.
Apache Cassandra user Jeff Carpenter shares ten key points to know when starting with DataStax Enterprise (DSE). These include the provision of production certified releases, expert customer support, continuous performance innovations, seamless synchronization across multiple datacenters, and advanced features for managing unique infrastructure requirements. DSE also offers enhanced security through Unified Authentication and Row-Level Access Control, as well as simplified operations with DataStax OpsCenter.
Sep 14, 2017 1,765 words in the original blog post.
NoSQL databases have gained popularity since the early 21st century for handling big data and real-time web applications. They offer flexibility in handling structured, semi-structured, and unstructured data compared to relational databases. Key features of a NoSQL database include support for multiple data models, easy scaling with masterless architecture, multi-model capabilities for processing various types of data, distributed data management at global scale, and zero downtime through a masterless architecture. Companies dealing with diverse data types and building powerful web and cloud applications may benefit from using a NoSQL database that meets these requirements.
Sep 06, 2017 632 words in the original blog post.