Week of July 10th

โ€œStay with the spirit I foundโ€

Happy Friday! ๐Ÿ˜Š

โ€œYou take the blue pill ๐Ÿ’Šโ€” the story ends, you wake up in your bed ๐Ÿ›Œ and believe whatever you want to believe. You take the red pill ๐Ÿ’Š โ€” you stay in Wonderland and I show you how deep the rabbit๐Ÿฐ hole goes.โ€  

Last week, we hopped on board the Nebuchadnezzar๐Ÿš€ and traveled through the cosmos๐ŸŒŒ to Microsoftโ€™s multi-model NoSQL Solution. So, this week we decided to go further down the โ€œrabbit๐Ÿฐ holeโ€ and explore the wondrous land of Microsoftโ€™s NoSQL Azure solutions as well as Graph๐Ÿ“ˆ database. We would once again revisit with Cosmos DB๐Ÿช exploring all 5 APIs. In addition, we would have brief journey with Azure Storage (Table), Azure Data Lake (Gen2), and Azureโ€™s managed data analytics service for real-time analysis (ADLS), and Azure Data Explorer (ADX). Then for an encore we would venture into the worldโ€™s๐ŸŒŽ most popular Graph๐Ÿ“ˆ database Neo4J 

First, playing the role as our leader “Morpheus” in our first mission would be featured Pluralsight author and premier trainerย Reza Salehiย through his recently released Pluralsight course ย Implementing NoSQL Databases in Microsoft Azureย . Reza doesnโ€™t take us quite as deep in the weedsย ๐ŸŒพย with Cosmos DB๐Ÿชย asย Lenni Lobelโ€™sย Learning Azure Cosmos DB๐Ÿชย Pluralsight course but that is because his course covers a wide range of topics in the Azure NoSQL ecosystem. Reza provides us a very practical real-world๐ŸŒŽย  scenario like migrating from MongoDB๐ŸƒAtlas to Cosmos DB๐Ÿช(MongoDB๐Ÿƒย API) and he also covers the Cassandra API which was omitted from Lenniโ€™s offerings.ย In addition, Reza spends some time giving a comprehensive overview on Azure Storage (Table) and introduces us to ADLS and ADX all of which were all new to our learnings.

In the introduction of the course, Reza gives us a brief history on NoSQL which apparently has existed since the 1960s! It just wasnโ€™t called NoSQL. He then gives us his definition of NoSQL and emphasizes its main goal to provide horizontal scalability, availability and optimal pricing.  Rezaโ€™s mentions an interesting factoid that Azure NoSQL solitons have been used by Microsoft for about decade through Skype, Xbox ๐ŸŽฎ, Office 365 ๐Ÿงฉ neither of which scaled very well with a traditional relational database.

Next, he discusses Azure Table Storage (soon to be deprecated and replaced by Cosmos DB๐Ÿช Table API). Azure Table storage can store large amounts of structured and non-relational data (datasets that donโ€™t require complex joins, foreign keys๐Ÿ”‘ย or stored procedures) cost effectively.ย ย In addition, It is durable and highly available, secure, and massively scalableโš–๏ธ. Aย tableย is basically a collection of entities with no schema enforced. Anย entityย is a set of properties (maximum of 252) similar to a row in table in a relational database. A property is a name-value pair. Three main system properties that must exist with each entity are a partition Key๐Ÿ”‘ย , row key๐Ÿ”‘ย  and a timestamp. In the case of a Partition Key๐Ÿ”‘ย and a Row key๐Ÿ”‘ย the application is responsible for inserting and updating these values whereas the Timestamp is managed by Azure Table Storage and this value is immutable. Azure automatically manages the partitions and the underline storage, so as the data in your table grows, the data in your table is divided into different partitions. This allows for faster query performanceโšก๏ธ of entities with the same partition key๐Ÿ”‘ย and for atomic transactions on inserts and updates.

Next on the agenda was Microsoft’s globally distributed, multi-model database service better known Cosmos DB๐Ÿช. Again, we had been down this road just last week but just like re-watching the first Matrix movie๐ŸŽžย I was more than happyย ๐Ÿ˜Šย  to do so.

As a nice review, Reza reiterated some of the core Cosmos DB๐Ÿช concepts like Global distribution, Multi-homing, Data Consistency Levels, Time-to-live (TTL), and Data Partitioning. All of which are included with of all five flavors or APIs in Cosmos DB๐Ÿช  because at the end of the day each API is just another container to the Cosmos DB๐Ÿช. Some of the highlights included:

Global distribution

ยท        Cosmos DB๐Ÿช allows you to add or remove any of the azure regions to your cosmos account at any time with a click of a button.

ยท        Cosmos DB๐Ÿช will seamlessly replicate your data to all the region’s associate ID with your cosmos account.

ยท        The multi homing capability of Cosmos DB๐Ÿช allows your application to be highly available.

Multi-homing APIs

ยท        Your application is aware of the nearest region and sends requests to that region.

ยท        Nearest region is identified without any configuration changes

ยท        When a new region is added or removed, the connection string stays the same

Time-to-live (TTL)

โ€ข               You can set the expiry time (TTL) on Cosmos DB data items

โ€ข               Cosmos DB๐Ÿช will automatically remove the items after this time period, since the last modification time โฐ

Cosmos DB๐Ÿช Consistency Levels

โ€ข       Cosmos DB๐Ÿช offers five consistency levels to choose from:

โ€ข       Strong, bounded staleness, session, consistent prefix, eventual

Data Partitioning

ยท        A logical partition consists of a set of items that have the same partition key๐Ÿ”‘.

ยท        Data that’s added to the container is automatically partitioned across a set of logical partitions.

ยท        Logical partitions are mapped to physical partitions that are distributed among several machines.

ยท        Throughput provisioned for container, is divided evenly among physical partitions.

Then Rezaโ€™s breaks down each of the 5 Cosmos DBs๐Ÿช APIs in separate modules. But at the risk, of being redundant from last weekโ€™s submission, we will just focus on the MongoDB๐Ÿƒ API and the Cassandra API as we covered the other APIs in-depth last week. I will make one important point for all APIs that you are working with that is you must choose an appropriate partition key๐Ÿ”‘. As rule of thumb ๐Ÿ‘, an ideal Partition key๐Ÿ”‘ should have a wide range of values, so your data is evenly spread across logical partitions.

MongoDB๐Ÿƒ API in Cosmos DB๐Ÿช supports the popular MongoDB๐Ÿƒ Document database with absolutely no code changes other than a connection string to existing applications. It now supports up to MongoDB ๐Ÿƒversion 3.6.

During this module, Reza provides us with a very practical real worldย ๐ŸŒŽย  scenario migrating fromย MongoDB๐ŸƒAtlasย to Cosmos DB๐Ÿชย (MongoDB๐Ÿƒย API). We were happy๐Ÿ˜Šย  to report that we were able to follow along easily and successfully migrate our own MongoDB๐Ÿƒย Atlas collections to Cosmos DB๐Ÿช.ย 

Important to note:ย Before starting aย migration from MongoDB๐Ÿƒย to Cosmos DB๐Ÿช, you should estimate the amountย of throughput to provisioned for yourย azure cosmos databases on collections and of course pick an optimal partition key๐Ÿ”‘ย  for your data.

Next, we will focused on the Cassandra API in Cosmos DB๐Ÿช. This one admittedly, ย I was really looking forward too as it wasnโ€™t in scope in ourย previous journey.ย ย Cosmos DB๐Ÿช –ย Cassandra API can be used as the data store for apps written for Apache Cassandra. Just like for MongoDB๐Ÿƒ,ย existing Cassandra applications using CQLv4 compliant drivers, can easily communicate with the Cosmos DB๐Ÿช Cassandra API. Making it easy to switch from Apache Cassandra to Cosmos DB๐Ÿชย Cassandra API with only requiring an update to the connection string. The familiar CQL, Cassandra client drivers, and Cassandra-based tools can all be used making for seamless migration with of course the benefits of Cosmos DB๐Ÿชย like

ยท        No operations management (PaaS)

ยท        Low latency reads and writes

ยท        Use existing code and tools

ยท        Throughput and storage elasticity

ยท        Global distribution and availability

ยท        Choice of five well-defined consistency levels

ยทย ย ย ย ย ย ย ย Interact with Cosmos DB๐Ÿช Cassandra API

Next we ventured on to new ground with Azure Data Lake Storage (ADLS). ADLS is a hyper-scale repository for big data analytic workloads. Azure Storage (Gen 2) is the foundation for building enterprise data lakes on ADLS.  ADLS supports hundreds of gigabits of throughput and manages massive amounts of data. Some Key features of ADLS include:

ยท        Hadoop compatible – manage data same as Hadoop HDFS

ยท        POSIX permissions – supports ACL and POSIX file permissions

ยท        Cost effective – offers low cost storage capacity

Last but certainly not least on this Journey with Reza was an introduction to Azure Data Explorer (ADX) a fast and highly scalableโš–๏ธ data exploration service for log and telemetry data. ADX is designed to ingest data from devices like websites, logs and more. These ingestion sources come natively from Azure Event Hub, IoT hub and Blob Storage. Data is then stored in highly scalableโš–๏ธ database and analytics are performed using Kusto Query Language (KQL). ADX can be provisioned with Azure CLI, PowerShell, C# (NuGet package), Pythonย ๐Ÿย SDK and the ARM template. One of the key features of ADS isย Anomaly Detection. ADX uses machine learning under the hood to find these anomalies. ADX also supports many data visualization tools like

ยท        Kusto query language visualizations

ยท        Azure Data Explorer dashboards (Web UI)

ยท        Power BI connector

ยท        Microsoft Excel connector

ยท        ODBC connector

ยท        Granfana (ADX plugin)

ยท        Kibana Connector (using k2bridge)

ยท        Tableau (via ODBC connector)

ยท        Qlik (via ODBC connector)

ยท        Sisense (via JDBC connector)

ยท        Redash

ADX can easily integrate with other services like:

ยท        Azure Data Factory

ยท        Microsoft Flow

ยท        Logic Apps

ยท        Apache Spark Connector

ยท        Azure Databricks

ยท        CI/CD using Azure DevOps

Iโ€™ll show these people what you donโ€™t want them to see. A world๐ŸŒŽ without rules and controls, without borders or boundaries. A world๐ŸŒŽ where anything is possible. -Neo

After spending much time in Cosmos DB๐Ÿช and in particular the Graph๐Ÿ“ˆDatabase API, I have become very intrigued by this type of NoSQL solution. The more I explored the more I coveted. I had a particular yearning to learn more about the worldโ€™s ๐ŸŒŽ most popular graph ๐Ÿ“ˆdatabase Neo4J. For those not aware of Neo4J its developed by Swedish ๐Ÿ‡ธ๐Ÿ‡ช Technology company sometimes referred to as Neo4J or Neo Technology. I guess it depends on the day of the week?

According to all accounts the name Neoโ€ was named for Swedish ๐Ÿ‡ธ๐Ÿ‡ช pop artist and favorite of the Swedish๐Ÿ‡ธ๐Ÿ‡ช developers Linus โ€œNeoโ€ Ingelsbo, โ€œ4โ€ (for version) and โ€œJโ€ for the Swedish๐Ÿ‡ธ๐Ÿ‡ช word โ€œJรคttetrรคdโ€ which of course means “giant tree ๐ŸŒณโ€ because a tree ๐ŸŒณ signifies the huge data structures that could now be stored in this amazing database product. But to me this story seems a bit curious.. With a database name like โ€œNeoโ€ and Querying language called โ€œCypherโ€ and with Awesome Procedures On Cypher better known as APOC I somehow believe there is another story here..

Anyway to guide us through our learning with Neo4J would be no other than the โ€œFlying Dutchmanโ€ ๐Ÿ‡ณ๐Ÿ‡ฑ Roland Guijt through his Introduction to Graph๐Ÿ“ˆ Databases, Cypher, and Neo4j which was short but sweet (sort of like a Stroopwafel๐Ÿง‡)

In the introduction, Roland tells us the Who, What, When, Where, Why and How about graph๐Ÿ“ˆ databases. A graph ๐Ÿ“ˆconsists of nodes or vertices which are connected by directional relationships or Edges. A node represents an entity. An entity is typically something in the real world๐ŸŒŽ like a customer, an order or a person A collection of nodes and relationships together is called a graph ๐Ÿ“ˆ. Graph๐Ÿ“ˆdatabases are very mind friendly compared to other data storage technologies because graphs๐Ÿ“ˆ act a lot like how the human brain๐Ÿง  works. It’s easier to think of the data structure and also easier to write queries. These patterns are much like the patterns of the brain๐Ÿง  uses to fetch data or retrieve memories. 

Graph ๐Ÿ“ˆ Databases are all about relationships and thus are very strong in storing and retrieving highly related data. They are also very performant during querying even with large number of nodes like in the millions. They offer great flexibility as like all NoSQL databases it doesnโ€™t require a fixed schema. In addition, they are quite agile as you can add or delete nodes and property of nodes without affecting already stored nodes and it’s extensible supporting multiple query languages

After a comprehensive overview with graph๐Ÿ“ˆ database, Roland dives right into Neo4J the leader in Graph ๐Ÿ“ˆdatabase. Unlike document databases, Neo4j is ACID compliant which means that all data modification is done within a transaction. If something goes wrong, Neo4j will simply roll back to a state where the data was reliable.

Neo4J is Javaโ˜•๏ธ based which allows you to install it on multiple platforms like Windows, Linux, and OS X. Neo4j can scaleโš–๏ธ up as it can easily adjust to a hardware changes i.e. adding more physical memory in which it will automatically add more nodes in the cache. Neo4J can also scale โš–๏ธ out like most NoSQL Solutions i.e. adding more servers meaning it can distribute the load of transactions or create a highly available cluster in which a server will take over when the active one fails.

Since by definition Neo4J is a graph๐Ÿ“ˆ database, itโ€™s all about relationships and nodes. Both nodes and relationships are equally as important. Nodes are schema-less entities with properties (key-value pairs) which are always strings. Relationship connects a node to another node. Just like nodes, they also can contain properties that also support indexing.

Next, Roland discusses Querying Data with Cypher which is the most powerfulโšก๏ธof Query languages supported by Neo4J. Cypher was developed and optimized for Neo4j and for graph๐Ÿ“ˆ databases. Cypher is a very fluid language meaning it continuously changes with each release. The good ๐Ÿ˜Š news is all major releases are backwards compatible to all old versions of the language. Itโ€™s very different for SQL so there is a bit of a learning curve. However, it’s not as steep as a learning curve you would imagine because Cypher uses patterns to match the data in the database very much how the brain๐Ÿง  works. That and Neo4J Desktop has intellisense. ๐Ÿ˜Š

As example to demonstrate the query language and CRUD we worked with a very cool Dr. Who graph ๐Ÿ“ˆdatabase filled multiple nodes with Actors, Roles, Episodes, Villains and their given relationships. To begin we started with โ€œRโ€ or Reads part of CRUD learning the MATCH command

Below is some MATCH โ€“ RETURN syntax:

MATCH (:Actor{name:’Matt Smith’}) -[:PLAYED]->(c:Character) RETURN c.name as name

MATCH (actors:Actor)-[:REGENERATED_TO]-> (others) RETURN actors.name, others.name

MATCH (:Character{name:’Doctor’})<-[:ENEMY_OF]-(:Character)-[:COMES_FROM]->(p:Planet) RETURN p.name as Planet, count(p) AS Count

MATCH (:Actor{name:’Matt Smith’})-[:APPEARED_IN]-> (ep:Episode)<-[:APPEARED_IN]- (:Character{name:’Amy Pond’}),(ep) <-[:APPEARED_IN]-(enemies:Character)<-[:ENEMY_OF]-(Character{name:’Doctor’}) RETURN ep AS Episode, collect(enemies.name) AS Enemies;

Further, Roland discussed the WHERE Clause and ORDER BY Clauses which are very similar to ANSI SQL. Then he converses about other Cypher syntax like:

SKIP – which skips the number of result items you specify.

LIMIT โ€“ which limits the numbers of items returned.

With UNION which allows to connect two queries together and generate one result set.

Then he ends the module conferring on Scalar functions like TOINT,

LENGTH, REDUCE, FILTER, ROUND, and SUBSTRING.

Then he reviews two of his favorite some advanced query features like COMPANION_OF and SHORTESTPATH.

Continuing on with C,U,D in CRUD, we played with the CREATE, MATCH WITH SET and MATCH DELETE

Below is some Syntax:

CREATE p= (:Actor{name:’Peter Capaldi’})-[:APPEARED_IN]->(:Episode{name:’The Time of The Doctor’}) RETURN p

MATCH (Matt:Actor{name: โ€˜Matt Smithโ€™}}

DELETE matt

MATCH (Matt:Actor{name: โ€˜Matt Smithโ€™}}

SET matt.salary = 1000

Then looking at MERGE and FOREACH with the below syntax as example:

MERGE (peter:Actor{name: โ€˜Peter Capaldiโ€™}) RETURN peter

Match p =(actors:Actor)-[r:PLAYED]->others)

WHERE actors.salary > 10000

FOREACH (n IN nodes(p)| set n.done = true)

As we continued our journey with Neo4J, we reconnoitered on Indexes and Constraints. Indexes are only good for data retrieval. So, if your application performs lots of writes itโ€™s probably best to avoid them. As for constraints, the unique constraint is currently the only constraint available in Neo4j. That is why this is often called just constraint. Lastly, in the module we reviewed Importing CSV which makes importing data from other sources a breeze. It enables you to import data into a Neo4j’s database from many sources. CSV files can be loaded from the local file system, as well as remote locations.  Cypher has a LOAD CSV statement, which is used together with CREATE and/or MERGE.

Finally, Roland reviewed Neo4j’s APIs which was a little bit out of our lexicon but interesting nonetheless. Neo4j supports two API types out of the box. The traditional REST and their proprietary Boltโšก๏ธ. The advantage of Boltโšก๏ธis mainly performance. Boltโšก๏ธ doesn’t have the HTTP overhead, and it uses a binary format instead of text to return data. For both the REST and Bolt APIs Roland provides C# code sample that can be run with NuGet packages in Visual Studio my new favorite IDE.

Ever have that feeling where you’re not sure if you’re awake or dreaming?

Below are some topics I am considering for my learnings next week:

ยท      More on Neo4J and Cypher 

ยท      More on MongoDB

ยท      More with Google Cloud Path

ยท      Working with Parquet files 

ยท      JDBC Drivers

ยท      More on Machine Learning

ยท      ONTAP Cluster Fundamentals

ยท      Data Visualization Tools (i.e. Looker)

ยท      Additional ETL Solutions (Stitch, FiveTran) 

ยท      Process and Transforming data/Explore data through ML (i.e. Databricks)

Stay safe and Be well โ€“

โ€“MCS

Week of June 26th

 โ€œโ€ฆAnd I think to myselfโ€ฆ What a wonderful world ๐ŸŒŽ .โ€

Happy Coconut๐Ÿฅฅ Day!

Recently, I had been spending so much time โฐ in GCP landโ˜๏ธ that it started to feel like it was my second home ๐Ÿก . However, it was time for a little data sabbatical. I needed to visit a land of mysticismโœจ and intrigue. A place where developers can roam freely and where data can be flexible, semi-structured, hierarchical nature, and can be easily scaled horizontally… A place not bound to the rigidness of relational tables but a domicile of flexible documents. We would journey to the world of MongoDB๐Ÿƒ.

Ok, so we have been there before, but we needed a refresher. It had been about 6 years since we first became acquainted with this technological phenomenon. Besides we hadnโ€™t played around too much with some of the companyโ€™s past innovations like MongoDB๐Ÿƒ Compass ๐Ÿงญ a sleek visual environment that allows you to analyze and understand the contents of your data in MongoDB๐Ÿƒ and MongoDB๐Ÿƒ Atlasโ˜๏ธ the managed service used to provision, maintain and scale MongoDB๐Ÿƒ clusters of instances that is conveniently offered on AWS, Azure and GCP.

To assist us on getting started would be our old comrade in arms, Pinal Dave from SQLAuthority fame. Pinal had put together an outstanding condensed course on Foundations of Document Databases with MongoDB

So, this is where we would begin. The course commences with an introduction on NoSQL (Not Just SQL) databases and some the advantages of a Document Database like an Intuitive Data Model, dynamic Schema and distributed Scalable Database. Then he gives us comprehensible explanation to the CAP (Consistency, Availability and Partition Tolerance) Theorem and that only 2/3 are necessary. MongoDB๐Ÿƒ fits in under the CP variety while compromising on availability. Next, the following key ๐Ÿ”‘ points are made in relation to MongoDB๐Ÿƒ

  • All write operations in MongoDB๐Ÿƒ are atomic on the level of a single document
  • If the collection does not currently exist, the insert operator will create one in the collection.

Next, Pinal takes use through a few quick and easy steps on how to get setup with MongoDB Atlasโ˜๏ธ. Once, our fully managed MongoDB๐Ÿƒ Cluster was fired๐Ÿ”ฅ up it was time to navigate our collections with MongoDB Compass๐Ÿงญ

For much of the rest of the course, we would concentrate on CRUD (Create, Read, Update, Delete) operations in MongoDB๐Ÿƒ through both Compass๐Ÿงญ and the CLI (Mongo Shell).

The course would also present us a terse walk through with syntax and elucidation on Read Concerns and Write Concerns in MongoDB๐Ÿƒ

Read Concern

Allows to control the consistency and isolation properties of the data read from replica sets and replica set shards

  1. Local – (No guarantee the data has applied to all Replicas) – Primary
  2. Available – (No guarantee the data has applied to all Replicas) – Secondary
  3. Majority – (default) acknowledged by a majority to all Replicas
  4. Linearizable – All successful acknowledged by a majority to all Replicas before Read (Query might have to wait)
  5. Snapshot – Used with multi document projection data from the majority to all Replicas

Write Concern

Level of acknowledgement requested from MongoDB๐Ÿƒ for write operations

w:1 – Ack from primary

w:0 – No ack

w(n) – Primary + (n-1) secondary

w: majority

Timeout: Time limit to prevent write operations from blocking indefinitely

As lasting point on database writes (UD), all write operations in MongoDB๐Ÿƒ are atomic on the level of a single document. In other words, if you are updating a single document or if you are updating multiple documents in a collection at any time every single update is just atomic at a single document.

Closing time ๐Ÿ•ฐ … Time ๐Ÿ•ฐ for you to go out go out into the world ๐ŸŒŽ โ€ฆ Closing time ๐Ÿ•ฐ…

Finally, dรฉnouements of the course are on Common SQL Concepts and Semantics to MongoDB๐Ÿƒ including some of the major differences between a typical RDBS and MongoDB๐Ÿƒwhich can be represented by the table below:

RDBS                         MongoDB
SQL                           MQL (Mongo Query Language)
Predefined Schema   Dynamic Schema
Relational Keys         No foreign key
Triggers                      No Triggers
ACID PropertiesCAP theorem

Sadly ๐Ÿ˜ข, that was it for Foundations of Document Databases with MongoDB. This left us clambering for more. Fortunately, Nuri Halperin happily๐Ÿ˜Š delivered and then someโ€ฆ Nuri a MongoDB๐Ÿƒ Guru ๐Ÿง™โ€โ™‚๏ธ and a Loveโค๏ธ ๐Ÿ‘จโ€โš•๏ธ of sorts (known for creating the wildly popular jdate.com platform) put together a series of timeless MongoDB๐Ÿƒ courses that have managed to stand up through the test of time ๐Ÿ•ฐ. In which, I might add is not an easy feat when it comes to a burgeoning technologies like MongoDB๐Ÿƒ.

Part 1:  Introduction course Introduction to MongoDB in-depth look at both the Mongo Shell (CLI) and CRUD Syntax and Indexing

Part 2: MongoDB Administration takes a deep dive into MongoDB๐Ÿƒ administration key concepts i.e. installation, configuration, Security, Backup/Restores, Monitoring, High Availability and Performance

Nuri like Pinal, discusses some of the challenges found in Relational Databases like Impedance mismatch and the need for Object-relational mapping (ORM) for developers. He demonstrates how MongoDB๐Ÿƒ solves these challenges through its schema-less approach and no relationships required model. In addition, he touches on to how MongoDB๐Ÿƒ lends itself nicely to data polymorphism. 

Next he takes us through the MongoDB architecture a collection humongous arrays that utilizes memory mapped BSON (Binary script object notation) or simply “Binary JSON” (Java Script object notation) files. MongoDB๐Ÿƒ intuitively leverages the OS to handle the loading of data and saving to disk which allows the engine to center on speed, optimization, and stability. 

MongoDBs๐Ÿƒ main mission is to just serve up data quickly and efficiently. Next, Nuri takes through the Mongo Shell (CLI) which basically is just a Javaโ˜•๏ธScript interpreter that  allows you to interactively get insight into the MongoDB๐Ÿƒ Server. Further he discusses indexes, types of indexes, and how paramount indexes are in MongoDB๐Ÿƒ for practical usability.

Lastly, Nuri takes through MongoDB๐Ÿƒ Replication which uses the simple to configure but highly scalable replica sets. This is how MongoDB๐Ÿƒ achieves โ€œEventual Consistencyโ€, Automatic Failover, and Automatic recoveryโ€ฆ And this is just the introduction of the Part 2 of the course…

Like trying to watch all 3 parts of The Lord of Rings ๐Ÿ’ (Directorโ€™s Edition) trilogy in a single helping, itโ€™s just wasnโ€™t possible to complete all of Nuriโ€™s two part sequel in a single week but we did get through most of it. ๐Ÿ˜Š  This also left us with a little bit more on our plate๐Ÿฝ as we continue through our Mongo Journeyโ€ฆ

This Weekโ€™s Log

Out of the tree ๐ŸŒณ of life I just picked me a plum… You came along and everything startedโ€™ in to hum ๐ŸŽถ… Still it’s a real good bet… The best is yet to come

Below are some topics I am considering for my voyage next week:

  • More with Nuri and MongoDB 
  • Cosmos DB
  • More with Google Cloud Path
  • Working with Parquet files 
  • JDBC Drivers
  • More on Machine Learning
  • ONTAP Cluster Fundamentals
  • Data Visualization Tools (i.e. Looker)
  • Additional ETL Solutions (Stitch, FiveTran) 
  • Process and Transforming data/Explore data through ML (i.e. Databricks)

Stay safe and Be well –

–MCS