Seven NoSQL Databases in a Week: Get up and running with the fundamentals and functionalities of seven of the most popular NoSQL databases
()
About this ebook
A beginner's guide to get you up and running with Cassandra, DynamoDB, HBase, InfluxDB, MongoDB, Neo4j, and Redis
Key Features- Covers the basics of 7 NoSQL databases and how they are used in the enterprises
- Quick introduction to MongoDB, DynamoDB, Redis, Cassandra, Neo4j, InfluxDB, and HBase
- Includes effective techniques for database querying and management
This is the golden age of open source NoSQL databases. With enterprises having to work with large amounts of unstructured data and moving away from expensive monolithic architecture, the adoption of NoSQL databases is rapidly increasing. Being familiar with the popular NoSQL databases and knowing how to use them is a must for budding DBAs and developers.
This book introduces you to the different types of NoSQL databases and gets you started with seven of the most popular NoSQL databases used by enterprises today. We start off with a brief overview of what NoSQL databases are, followed by an explanation of why and when to use them. The book then covers the seven most popular databases in each of these categories: MongoDB, Amazon DynamoDB, Redis, HBase, Cassandra, InfluxDB, and Neo4j. The book doesn't go into too much detail about each database but teaches
you enough to get started with them.
By the end of this book, you will have a thorough understanding of the different NoSQL databases and their functionalities, empowering you to select and use the right
database according to your needs.
What you will learn- Understand how MongoDB provides high-performance, high-availability, and automatic scaling
- Interact with your Neo4j instances via database queries, Python scripts, and Java application code
- Get familiar with common querying and programming methods to interact with Redis
- Study the different types of problems Cassandra can solve
- Work with HBase components to support common operations such as creating tables and reading/writing data
- Discover data models and work with CRUD operations using DynamoDB
- Discover what makes InfluxDB a great choice for working with
- time-series data
If you are a budding DBA or a developer who wants to get started with the fundamentals of NoSQL databases, this book is for you. Relational DBAs who want to get insights into the various offerings of popular NoSQL databases will also find this book to be very useful.
Aaron Ploetz Aaron is the NoSQL Engineering Lead for Target, where his DevOps team supports Cassandra, MongoDB, and Neo4j. He has been named a DataStax MVP for Apache Cassandra three times, and has presented at multiple events, including the DataStax Summit and Data Day Texas. Aaron earned a B.S. in Management/Computer Systems from the University of Wisconsin-Whitewater, and a M.S. in Software Engineering from Regis University. He and his wife Coriene live with their three children in the Twin Cities area. Devram Kandhare Devram has 4 years of experience of working with SQL database MySql and NoSql databases MongoDB and Dynamo db. Worked as database designer and developer. Developed various projects using agile development model. Experienced in building web based application and REST API. Sudarshan Kadambi Sudarshan has a background in Distributed systems and Database design. He has been a user and contributor to various NoSQL databases and is passionate about solving large-scale data management challenges. Xun (Brian) Wu Xun (Brian) Wu has more than 15 years' experience in web/mobile development, big data analytics, cloud computing, Blockchain, and IT architecture. Xun holds a Master degree in computer science from NJIT. He is always enthusiastic about exploring new ideas, technologies, and opportunities that arise. He always keeps himself up-to-date by coding, reading books, training, and researching. He has revXun (Brian) Wu
Brian is a senior blockchain architect and consultant. He is a prolific writer on the subject of blockchain. As one of the prominent voices in the blockchain community, he has written 7 books on blockchain covering popular blockchain technologies like Hyperledger and Ethereum from beginner to advance levels. He has 18+ years of extensive hands-on experience with blockchain-based enterprise application design and development, big data, cloud computing, UI, and system infrastructure solutions. He has also successfully repurposed and integrated the blockchain-based applications into gaming, supply chain, digital asset tokenization platform as well as, cryptocurrency blockchain analytics industries. In addition to his strong background in the blockchain space, he has served as the tech lead for multiple key technology initiatives at leading financial institutions including J.P. Morgan, Citigroup, and Bank of America.
Read more from Xun (Brian) Wu
Hyperledger Cookbook: Over 40 recipes implementing the latest Hyperledger blockchain frameworks and tools Rating: 0 out of 5 stars0 ratingsSecurity Tokens and Stablecoins Quick Start Guide: Learn how to build STO and stablecoin decentralized applications Rating: 0 out of 5 stars0 ratingsLearn Ethereum.: A practical guide to help developers set up and run decentralized applications with Ethereum 2.0 Rating: 0 out of 5 stars0 ratingsBlockchain Development with Hyperledger: Build decentralized applications with Hyperledger Fabric and Composer Rating: 0 out of 5 stars0 ratingsLearn Ethereum: Build your own decentralized applications with Ethereum and smart contracts Rating: 0 out of 5 stars0 ratingsBlockchain Quick Start Guide: A beginner's guide to developing enterprise-grade decentralized applications Rating: 0 out of 5 stars0 ratingsBlockchain By Example: A developer's guide to creating decentralized applications using Bitcoin, Ethereum, and Hyperledger Rating: 0 out of 5 stars0 ratings
Related to Seven NoSQL Databases in a Week
Related ebooks
R Deep Learning Cookbook Rating: 0 out of 5 stars0 ratingsData Wrangling on AWS: Clean and organize complex data for analysis Rating: 0 out of 5 stars0 ratingsPandas Cookbook: Recipes for Scientific Computing, Time Series Analysis and Data Visualization using Python Rating: 0 out of 5 stars0 ratingsMySQL 8 Administrator's Guide: Effective guide to administering high-performance MySQL 8 solutions Rating: 0 out of 5 stars0 ratingsPostgreSQL 11 Administration Cookbook: Over 175 recipes for database administrators to manage enterprise databases Rating: 0 out of 5 stars0 ratingsApache Superset Quick Start Guide: Develop interactive visualizations by creating user-friendly dashboards Rating: 0 out of 5 stars0 ratingsBeginning PostgreSQL on the Cloud: Simplifying Database as a Service on Cloud Platforms Rating: 0 out of 5 stars0 ratingsApache Hive Essentials Rating: 0 out of 5 stars0 ratingsMachine Learning with R Cookbook, Second Edition: Analyze data and build predictive models Rating: 0 out of 5 stars0 ratingsLearning Elasticsearch Rating: 4 out of 5 stars4/5Scala and Spark for Big Data Analytics: Explore the concepts of functional programming, data streaming, and machine learning Rating: 0 out of 5 stars0 ratingsLearn Microsoft Fabric: A practical guide to performing data analytics in the era of artificial intelligence Rating: 0 out of 5 stars0 ratingsJava Deep Learning Cookbook: Train neural networks for classification, NLP, and reinforcement learning using Deeplearning4j Rating: 0 out of 5 stars0 ratingsHands-On Machine Learning with Azure: Build powerful models with cognitive machine learning and artificial intelligence Rating: 0 out of 5 stars0 ratingsLearn PySpark: Build Python-based Machine Learning and Deep Learning Models Rating: 0 out of 5 stars0 ratingsMySQL 8 for Big Data: Effective data processing with MySQL 8, Hadoop, NoSQL APIs, and other Big Data tools Rating: 0 out of 5 stars0 ratingsAzure Data Factory Cookbook: A data engineer's guide to building and managing ETL and ELT pipelines with data integration Rating: 0 out of 5 stars0 ratingsMastering Machine Learning on AWS: Advanced machine learning in Python using SageMaker, Apache Spark, and TensorFlow Rating: 0 out of 5 stars0 ratings
Databases For You
SQL QuickStart Guide: The Simplified Beginner's Guide to Managing, Analyzing, and Manipulating Data With SQL Rating: 4 out of 5 stars4/5Practical Data Analysis Rating: 4 out of 5 stars4/5Blockchain Basics: A Non-Technical Introduction in 25 Steps Rating: 5 out of 5 stars5/5Grokking Algorithms: An illustrated guide for programmers and other curious people Rating: 4 out of 5 stars4/5Access 2019 For Dummies Rating: 0 out of 5 stars0 ratingsGetting Started with SQL Server 2014 Administration Rating: 0 out of 5 stars0 ratingsBehind Every Good Decision: How Anyone Can Use Business Analytics to Turn Data into Profitable Insight Rating: 5 out of 5 stars5/5Learning PostgreSQL Rating: 1 out of 5 stars1/5Learn SQL in 24 Hours Rating: 5 out of 5 stars5/5Learn SQL Server Administration in a Month of Lunches Rating: 3 out of 5 stars3/5Oracle DBA Mentor: Succeeding as an Oracle Database Administrator Rating: 0 out of 5 stars0 ratingsOracle 12c For Dummies Rating: 0 out of 5 stars0 ratingsBeginning Microsoft Power BI: A Practical Guide to Self-Service Data Analytics Rating: 0 out of 5 stars0 ratingsGo in Action Rating: 5 out of 5 stars5/5SQL Server: Tips and Tricks - 2 Rating: 4 out of 5 stars4/5Excel 2021 Rating: 4 out of 5 stars4/5Advanced Analytics in Power BI with R and Python: Ingesting, Transforming, Visualizing Rating: 0 out of 5 stars0 ratingsSql : The Ultimate Beginner to Advanced Guide To Master SQL Quickly with Step-by-Step Practical Examples Rating: 0 out of 5 stars0 ratingsCOMPUTER SCIENCE FOR ROOKIES Rating: 0 out of 5 stars0 ratingsThe AI Bible, Making Money with Artificial Intelligence: Real Case Studies and How-To's for Implementation Rating: 4 out of 5 stars4/5Data Science Strategy For Dummies Rating: 0 out of 5 stars0 ratingsJAVA for Beginner's Crash Course: Java for Beginners Guide to Program Java, jQuery, & Java Programming Rating: 4 out of 5 stars4/5Access 2016 For Dummies Rating: 0 out of 5 stars0 ratingsEntity Framework Core in Action Rating: 0 out of 5 stars0 ratingsLearn Git in a Month of Lunches Rating: 0 out of 5 stars0 ratingsPython Projects for Everyone Rating: 0 out of 5 stars0 ratingsAccess 2010 All-in-One For Dummies Rating: 4 out of 5 stars4/5
Reviews for Seven NoSQL Databases in a Week
0 ratings0 reviews
Book preview
Seven NoSQL Databases in a Week - Xun (Brian) Wu
Seven NoSQL Databases in a Week
Get up and running with the fundamentals and functionalities of seven of the most popular NoSQL databases
Aaron Ploetz
Devram Kandhare
Sudarshan Kadambi
Xun (Brian) Wu
BIRMINGHAM - MUMBAI
Seven NoSQL Databases in a Week
Copyright © 2018 Packt Publishing
All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.
Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the authors, nor Packt Publishing or its dealers and distributors, will be held liable for any damages caused or alleged to have been caused directly or indirectly by this book.
Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.
Commissioning Editor: Amey Varangaonkar
Acquisition Editor: Prachi Bisht
Content Development Editor: Eisha Dsouza
Technical Editor: Nirbhaya Shaji
Copy Editors: Laxmi Subramanian and Safis Editing
Project Coordinator: Kinjal Bari
Proofreader: Safis Editing
Indexer: Tejal Daruwale Soni
Graphics: Jisha Chirayil
Production Coordinator: Aparna Bhagat
First published: March 2018
Production reference: 1270318
Published by Packt Publishing Ltd.
Livery Place
35 Livery Street
Birmingham
B3 2PB, UK.
ISBN 978-1-78728-886-7
www.packtpub.com
To my wife, Coriene, for all of her constant love and support. And to my parents, Brian and Mary Jo Ploetz and Christine and Rick Franda, for all the sacrifices they made to ensure that I always had access to a computer while growing up.
– Aaron Ploetz
To Goraksha Bharam for his sacrifices and support in my life. To my teachers, who introduced me to this beautiful world of knowledge. And to my grandmother.
– Devram Kandhare
I would like to thank my parents for providing me the foundation that make work like this possible. I would like to thank my sister, wife, and son for their support and encouragement and for the joy and happiness they bring to my life.
– Sudarshan Kadambi
I would like to thank my parents who always give me the inspiration, drive, and encouragement. I would also like to thank my wife and kids, Bridget and Charlotte, for their patience and support throughout this endeavor.
– Xun (Brian) Wu
mapt.io
Mapt is an online digital library that gives you full access to over 5,000 books and videos, as well as industry leading tools to help you plan your personal development and advance your career. For more information, please visit our website.
Why subscribe?
Spend less time learning and more time coding with practical eBooks and Videos from over 4,000 industry professionals
Improve your learning with Skill Plans built especially for you
Get a free eBook or video every month
Mapt is fully searchable
Copy and paste, print, and bookmark content
PacktPub.com
Did you know that Packt offers eBook versions of every book published, with PDF and ePub files available? You can upgrade to the eBook version at www.PacktPub.com and as a print book customer, you are entitled to a discount on the eBook copy. Get in touch with us at [email protected] for more details.
At www.PacktPub.com, you can also read a collection of free technical articles, sign up for a range of free newsletters, and receive exclusive discounts and offers on Packt books and eBooks.
Contributors
About the authors
Aaron Ploetz is the NoSQL Engineering Lead for Target, where his DevOps team supports Cassandra, MongoDB, Redis, and Neo4j. He has been named a DataStax MVP for Apache Cassandra three times, and has presented at multiple events, including the DataStax Summit and Data Day Texas. He earned a BS in Management/Computer Systems from the University of Wisconsin-Whitewater, and a MS in Software Engineering from Regis University. He and his wife, Coriene, live with their three children in the Twin Cities area.
I'd like to thank Dr. David Munro, who inspired me, Ron Bieber, who believed in me and introduced me to the world of distributed databases, and my lovely wife, Coriene, who provided constant support and encouragement during this endeavor. Seriously, without Coriene none of this would have been possible.
Devram Kandhare has 4 years of experience of working with the SQL database—MySql and NoSql databases—MongoDB and DynamoDB. He has worked as database designer and developer. He has developed various projects using the Agile development model. He is experienced in building web-based applications and REST API.
I'd like to thank my grandparents, Mamaji, Shriniwas Gadre, and Mudit Tyagi, for their love and guidance. Most importantly I want to thank my parents, my sister, Amruta, my loving and supportive wife, Ashvini, and my friend Prashant; without them none of this would have been possible.
Sudarshan Kadambi has a background in distributed systems and database design. He has been a user and contributor to various NoSQL databases and is passionate about solving large-scale data management challenges.
I would like to thank my parents for providing me the foundations that make work like this possible. I would like to thank my sister, wife, and son for their support and encouragement and for the joy and happiness they bring to my life.
Xun (Brian) Wu has more than 15 years of experience in web/mobile development, big data analytics, cloud computing, blockchain, and IT architecture. He holds a master's degree in computer science from NJIT. He is always enthusiastic about exploring new ideas, technologies, and opportunities that arise. He has previously reviewed more than 40 books from Packt Publishing.
I would like to thank my parents who always give me inspiration, drive and encouragement. I would also like to thank my wife and kids, Bridget and Charlotte, for their patience and support throughout this endeavor.
Packt is searching for authors like you
If you're interested in becoming an author for Packt, please visit authors.packtpub.com and apply today. We have worked with thousands of developers and tech professionals, just like you, to help them share their insight with the global tech community. You can make a general application, apply for a specific hot topic that we are recruiting an author for, or submit your own idea.
Table of Contents
Title Page
Copyright and Credits
Seven NoSQL Databases in a Week
Dedication
Packt Upsell
Why subscribe?
PacktPub.com
Contributors
About the authors
Packt is searching for authors like you
Preface
Who this book is for
What this book covers
To get the most out of this book
Download the example code files
Download the color images
Conventions used
Get in touch
Reviews
Introduction to NoSQL Databases
Consistency versus availability
ACID guarantees
Hash versus range partition
In-place updates versus appends
Row versus column versus column-family storage models
Strongly versus loosely enforced schemas
Summary
MongoDB
Installing of MongoDB
MongoDB data types
The MongoDB database
MongoDB collections
MongoDB documents
The create operation
The read operation
Applying filters on fields
Applying conditional and logical operators on the filter parameter
The update operation
The delete operation
Data models in MongoDB
The references document data model
The embedded data model
Introduction to MongoDB indexing
The default _id index
Replication
Replication in MongoDB
Automatic failover in replication
Read operations
Sharding
Sharded clusters
Advantages of sharding
Storing large data in MongoDB
Summary
Neo4j
What is Neo4j?
How does Neo4j work?
Features of Neo4j
Clustering
Neo4j Browser
Cache sharding
Help for beginners
Evaluating your use case
Social networks
Matchmaking
Network management
Analytics
Recommendation engines
Neo4j anti-patterns
Applying relational modeling techniques in Neo4j
Using Neo4j for the first time on something mission-critical
Storing entities and relationships within entities
Improper use of relationship types
Storing binary large object data
Indexing everything
Neo4j hardware selection, installation, and configuration
Random access memory
CPU
Disk
Operating system
Network/firewall
Installation
Installing JVM
Configuration
High-availability clustering
Causal clustering
Using Neo4j
Neo4j Browser
Cypher
Python
Java
Taking a backup with Neo4j
Backup/restore with Neo4j Enterprise
Backup/restore with Neo4j Community
Differences between the Neo4j Community and Enterprise Editions
Tips for success
Summary
References
Redis
Introduction to Redis
What are the key features of Redis?
Performance
Tunable data durability
Publish/Subscribe
Useful data types
Expiring data over time
Counters
Server-side Lua scripting
Appropriate use cases for Redis
Data fits into RAM
Data durability is not a concern
Data at scale
Simple data model
Features of Redis matching part of your use case
Data modeling and application design with Redis
Taking advantage of Redis' data structures
Queues
Sets
Notifications
Counters
Caching
Redis anti-patterns
Dataset cannot fit into RAM
Modeling relational data
Improper connection management
Security
Using the KEYS command
Unnecessary trips over the network
Not disabling THP
Redis setup, installation, and configuration
Virtualization versus on-the-metal
RAM
CPU
Disk
Operating system
Network/firewall
Installation
Configuration files
Using Redis
redis-cli
Lua
Python
Java
Taking a backup with Redis
Restoring from a backup
Tips for success
Summary
References
Cassandra
Introduction to Cassandra
What problems does Cassandra solve?
What are the key features of Cassandra?
No single point of failure
Tunable consistency
Data center awareness
Linear scalability
Built on the JVM
Appropriate use cases for Cassandra
Overview of the internals
Data modeling in Cassandra
Partition keys
Clustering keys
Putting it all together
Optimal use cases
Cassandra anti-patterns
Frequently updated data
Frequently deleted data
Queues or queue-like data
Solutions requiring query flexibility
Solutions requiring full table scans
Incorrect use of BATCH statements
Using Byte Ordered Partitioner
Using a load balancer in front of Cassandra nodes
Using a framework driver
Cassandra hardware selection, installation, and configuration
RAM
CPU
Disk
Operating system
Network/firewall
Installation using apt-get
Tarball installation
JVM installation
Node configuration
Running Cassandra
Adding a new node to the cluster
Using Cassandra
Nodetool
CQLSH
Python
Java
Taking a backup with Cassandra
Restoring from a snapshot
Tips for success
Run Cassandra on Linux
Open ports 7199, 7000, 7001, and 9042
Enable security
Use solid state drives (SSDs) if possible
Configure only one or two seed nodes per data center
Schedule weekly repairs
Do not force a major compaction
Remember that every mutation is a write
The data model is key
Consider a support contract
Cassandra is not a general purpose database
Summary
References
HBase
Architecture
Components in the HBase stack
Zookeeper
HDFS
HBase master
HBase RegionServers
Reads and writes
The HBase write path
HBase writes – design motivation
The HBase read path
HBase compactions
System trade-offs
Logical and physical data models
Interacting with HBase – the HBase shell
Interacting with HBase – the HBase Client API
Interacting with secure HBase clusters
Advanced topics
HBase high availability
Replicated reads
HBase in multiple regions
HBase coprocessors
SQL over HBase
Summary
DynamoDB
The difference between SQL and DynamoDB
Setting up DynamoDB
Setting up locally
Setting up using AWS
The difference between downloadable DynamoDB and DynamoDB web services
DynamoDB data types and terminology
Tables, items, and attributes
Primary key
Secondary indexes
Streams
Queries
Scan
Data types
Data models and CRUD operations in DynamoDB
Limitations of DynamoDB
Best practices
Summary
InfluxDB
Introduction to InfluxDB
Key concepts and terms of InfluxDB
Data model and storage engine
Storage engine
Installation and configuration
Installing InfluxDB
Configuring InfluxDB
Production deployment considerations
Query language and API
Query language
Query pagination
Query performance optimizations
Interaction via Rest API
InfluxDB API client
InfluxDB with Java client
InfluxDB with a Python client
InfluxDB with Go client
InfluxDB ecosystem
Telegraf
Telegraf data management
Kapacitor
InfluxDB operations
Backup and restore
Backups
Restore
Clustering and HA
Retention policy
Monitoring
Summary
Other Books You May Enjoy
Leave a review - let other readers know what you think
Preface
The book will help you understand the fundamentals of each database, and understand how their functionalities differ, while still giving you a common result – a database solution with speed, high performance, and accuracy.
Who this book is for
If you are a budding DBA or a developer who wants to get started with the fundamentals of NoSQL databases, this book is for you. Relational DBAs who want to get insights into the various offerings of the popular NoSQL databases will also find this book to be very useful.
What this book covers
Chapter 1, Introduction to NoSQL Databases, introduces the topic of NoSQL and distributed databases. The design principles and trade-offs involved in NoSQL database design are described. These design principles provide context around why individual databases covered in the following chapters are designed in a particular way and what constraints they are trying to optimize for.
Chapter 2, MongoDB, covers installation and basic CRUD operations. High-level concepts such as indexing allow you to speed up database operations, sharding, and replication. Also, it covers data models, which help us with application database design.
Chapter 3, Neo4j, introduces the Neo4j graph database. It discusses Neo4j's architecture, use cases, administration, and application development.
Chapter 4, Redis, discusses the Redis data store. Redis’ unique architecture and behavior will be discussed, as well as installation, application development, and server-side scripting with Lua.
Chapter 5, Cassandra, introduces the Cassandra database. Cassandra’s highly-available, eventually consistent design will be discussed along with the appropriate use cases. Known anti-patterns will also be presented, as well as production-level configuration, administration, and application development.
Chapter 6, HBase, introduces HBase, that is, the Hadoop Database. Inspired by Google's Bigtable, HBase is a widely deployed key-value store today. This chapter covers HBase's architectural internals, data model, and API.
Chapter 7, DynamoDB, covers how to set up a local and AWS DynamoDB service and perform CRUD operations. It also covers how to deal with partition keys, sort keys, and secondary indexes. It covers various advantages and disadvantages of DynamoDB over other databases, which makes it easy for developers to choose a database for an application.
Chapter 8, InfluxDB, describes InfluxDB and its key concepts and terms. It also covers InfluxDB installation and configuration. It explores the query language and APIs. It helps you set up Telegraf and Kapacitor as an InfluxDB ecosystem's key components to collect and process data. At the end of the chapter, you will also find information about InfluxDB operations.
To get the most out of this book
This book assumes that you have access to hardware on which you can install, configure, and code against a database instance. Having elevated admin or sudo privileges on the aforementioned machine will be essential to carrying out some of the tasks described.
Some of the NoSQL databases discussed will only run on a Linux-based operating system. Therefore, prior familiarity with Linux is recommended. As OS-specific system administration is not within the scope of this book, readers who are new to Linux may find value in seeking out a separate tutorial prior to attempting some of the examples.
The Java Virtual Machine (JVM)-based NoSQL databases will require a Java Runtime Environment (JRE) to be installed. Do note that some of them may require a specific version of the JRE to function properly. This will necessitate updating or installing a new JRE, depending on the database.
The Java coding examples will be easier to do from within an Integrated Developer Envorinment (IDE), with Maven installed for dependency management. You may need to look up additional resources to ensure that these components are configured properly.
In Chapter 6, HBase, you can install the Hortonworks sandbox to get a small HBase cluster set up on your laptop. The sandbox can be installed for free from https://hortonworks.com/products/sandbox/.
In Chapter 8, InfluxDB, to run the examples you will need to install InfluxDB in a UNIX or Linux environment. In order to run different InfluxDB API client examples, you also need to install a programming language environment and related InfluxDB client packages:
Run the InfluxDB Java client: Install JDK and an editor (Eclipse or IntelliJ).
Run the InfluxDB Python client: Install Python.
Run the InfluxDB Go client: Install Go and the InfluxDB Go client; you can use JetBrains Goland to run the Go code.
Download the example code files
You can download the example code files for this book from your account at www.packtpub.com. If you purchased this book elsewhere, you can visit www.packtpub.com/support and register to have the files emailed directly to you.
You can download the code files by following these steps:
Log in or register at www.packtpub.com.
Select the SUPPORT tab.
Click on Code Downloads & Errata.
Enter the name of the book in the Search box and follow the onscreen instructions.
Once the file is downloaded, please make sure that you unzip or extract the folder using the latest version of:
WinRAR/7-Zip for Windows
Zipeg/iZip/UnRarX for Mac
7-Zip/PeaZip for Linux
The code bundle for the book is also hosted on GitHub at https://github.com/PacktPublishing/Seven-NoSQL-Databases-in-a-Week. In case there's an update to the code, it will be updated on the existing GitHub repository.
We also have other code bundles from our rich catalog of books and videos available at https://github.com/PacktPublishing/. Check them out!
Download the color images
We also provide a PDF file that has color images of the screenshots/diagrams used in this book. You can download it here: http://www.packtpub.com/sites/default/files/downloads/SevenNoSQLDatabasesinaWeek_ColorImages.pdf.
Conventions used
There are a number of text conventions used throughout this book.
CodeInText: Indicates code words in text, database table names, folder names, filenames, file extensions, pathnames, dummy URLs, user input, and Twitter handles. Here is an example: Now is also a good time to change the initial password. Neo4j installs with a single default admin username and password of neo4j/neo4j.
A block of code is set as follows:
# Paths of directories in the installation.
#dbms.directories.data=data
#dbms.directories.plugins=plugins
#dbms.directories.certificates=certificates
#dbms.directories.logs=logs
#dbms.directories.lib=lib
#dbms.directories.run=run
When we wish to draw your attention to a particular part of a code block, the relevant lines or items are set in bold:
# Paths of directories in the installation.
#dbms.directories.data=data
#dbms.directories.plugins=plugins
#dbms.directories.certificates=certificates
#dbms.directories.logs=logs
#dbms.directories.lib=lib
#dbms.directories.run=run
Any command-line input or output is written as follows:
sudo mkdir /local
sudo chown $USER:$USER /local
cd /local
mv ~/Downloads/neo4j-community-3.3.3-unix.tar.gz .
Bold: Indicates a new term, an important word, or words that you see onscreen. For example, words in menus or dialog boxes appear in the text like this. Here is an example: To create a table, click on the Create table button. This will take you to the Create table screen.
Warnings or important notes appear like this.
Tips and tricks appear like this.
Get in touch
Feedback from our readers is always welcome.
General feedback: Email [email protected] and mention the book title in the subject of your message. If you have questions about any aspect of this book, please email us at [email protected].
Errata: Although we have taken every care to ensure the accuracy of our content, mistakes do happen. If you have found a mistake in this book, we would be grateful if you would report this to us. Please visit www.packtpub.com/submit-errata, selecting your book, clicking on the Errata Submission Form link, and entering the details.
Piracy: If you come across any illegal copies of our works in any form on the Internet, we would be grateful if you would provide us with the location address or website name. Please contact us at [email protected] with a link to the material.
If you are interested in becoming an author: If there is a topic that you have expertise in and you are interested in either writing or contributing to a book, please visit authors.packtpub.com.
Reviews
Please leave a review. Once you have read and used this book, why not leave a review on the site that you purchased it from? Potential readers can then see and use your unbiased opinion to make purchase decisions, we at Packt can understand what you think about our products, and our authors can see your feedback on their book. Thank you!
For more information about Packt, please visit packtpub.com.
Introduction to NoSQL Databases
Over the last decade, the volume and velocity with which data is generated within organizations has grown exponentially. Consequently, there has been an explosion of database technologies that have been developed to address these growing data needs. These databases have typically had distributed implementations, since the volume of data being managed far exceeds the storage capacity of a single node. In order to support the massive scale of data,