Backup / DR / BC
This course provides an introductory tour of Azure Storage Solutions such as its SQL offerings (SQL DB and third-party offerings of MySQL), managed NoSQL databases (DocumentDB and MongoDB), managed Redis Cache service, Azure Backup (backup-as-a-service), Site Recovery (for handling disaster recovery) and StorSimple (a hybrid cloud storage solution).
- Understand what SQL DB is and how to get started using it
- Learn the options offered by Azure for managed MySQL
- Understand what DocumentDB and MongoDB are and how to get started using them
- Learn what Redis Cache is and some cases of when you would use it
- Get an understanding of what Azure Search provides
- Learn how Azure Backup can solve common backup needs
- Understand what role Site Recovery can play in disaster recovery
- Learn how StorSimple can extend your on-premise storage capacity
- This course is for developers or IT professionals looking for an introduction to Azure’s Storage Solutions.
- Some familiarity with the Azure platform is helpful, but not required.
- Course Introduction
- Azure SQL Database
- What is Azure SQL Database?
- Understanding the service tiers
- Create a SQL Database
- What is a Data Throughput Unit (DTU)?
- Scaling Azure SQL
- Options for Using MySQL in Azure
- Azure CosmosDB DocumentDB API
- What is DocumentDB?
- Azure CosmosDB MongoDB API
- Options for Using MongoDB in Azure
- How does DocumentDB compare to MongoDB?
- Azure Redis Cache
- What is Azure Redis Cache?
- Common scenarios for using Redis Cache
- Understanding the service tiers
- How does Redis work?
- Create and manage a Redis Cache
- Scaling Azure Redis Cache
- Azure Search
- What is Azure Search?
- Indexes and Search Features
- How do you use the Search Service?
- Create a Search Service and Index
- Azure Backup
- What is Azure Backup?
- Backup Scenarios
- Import/Export Service
- What is the Import/Export Service?
- Why would you use Import/Export?
- Site Recovery
- What is Site Recovery?
- Workload recovery scenarios
- What is StorSimple?
- How does StorSimple work?
- Course Summary
- Conclusion and Wrap-Up
Welcome back, up to this point we've looked at a few different types of databases. Let's now look at Search.
So, what is Azure Search?
Azure Search is a fully managed search-as-a-service platform that allows you to add search capability to your applications, giving you all the search features users are used to these days.
It has a 99.9% availability SLA for the search queries and high availability.
There are also several service tiers and sizes - even a free tier!
With scaling, you cannot currently move your search indexes between service tiers, but you change the number replicas and partitions used.
How do you use a search service?
Well, there are basically four steps: create a search service, create an index, import data into that index and then call that search service with queries to get the search results.
Let's look at these steps in more detail.
First step, creating an index.
An index is a structure similar to a database table - it has fields which are like columns in a table.
An index gets populated with documents which are like rows of data in a table.
The fields in an index have specific types like: string, lists of string, boolean, int, etc.
And fields can also have attributes to indicate special meanings when the search is executed or the results are being created.
Retrievable – which indicates whether or not the field should be returned in the result.
Filterable - indicates if the field can be used in a filter.
Sortable - indicates whether or not the results can be sorted by the field.
Facetable – indicates if a field can be treated like a category.
Searchable – indicates if full text search can be done on the content of the field.
Ok, that is an index, let’s look at how to get it populated.
You have two options to populate an index.
The first option, is to use an indexer - which reads data from a specific type of data source.
There are indexers for SQL Database, DocumentDB, Table Storage and Blob Storage.
With blob storage, since that will be made up of files, the indexer needs to know about specific file formats.
Currently it can extract text from pdfs, Microsoft office file formats - both the older versions and newer versions, MSG - which is an outlook email file, html, xml, zip, eml, plain text, csv and json files.
The second option to populate an index, is to programmatically push data to the index.
You would use the push option when you need to modify the index on demand or if you need to batch the index modifications.
You can push batches of 1,000 documents or 16MB of changes at once if you need to.
So, once you've got the index populated, how do you search it?
When you send a query to the search service, you can pass a search or a filter or both.
Search will to do a full text search on the searchable fields of the index, where the filter is going to an exact text match on filterable fields in the index.
Filters are evaluated first - so if you pass both, it can make for a faster search since it will limit the size of the resultset the full text search will be run on.
With the search option, there are two types of syntax: the simplified syntax and the Lucene query syntax.
Getting into the details of the query syntax is beyond the scope of this course, but I have added links in the reference page that point you to where you can learn more about them.
Azure Search has three service tiers.
The free tier allows for storage up to 50 megabytes, a maximum of 3 indexes and 10,000 documents, and runs in a shared multi-tenant environment.
The free tier is also meant to allow you to experiment with the service but not for connecting to any real application.
The Basic tier is the minimum tier recommended for a real production application.
The Standard tier provides a lot more storage, and the ability to scale the number of replicas and partitions.
There is also a High Density mode for Standard S3 which allows more indexes to be stored on a partition.
Also one thing to note in this table is prices are for 1 Search Unit, which we'll get into next.
A Search Unit equals the Replica count times the Partition count.
Adding and removing replicas and partitions is how you scale Azure search.
You can't move existing indexes between pricing tiers, but you can add more partitions and replicas to increase the number of searches your search service can handle per second.
Replicas are additional copies of an index - so by increasing the number of replicas, you should be able to increase your throughput.
However, if your index is large or getting modified too often, then you'll need to partition the index in order to not drag down your throughput.
When you increase the number of partitions, you spread the index across more compute resources which will enable the search service to perform faster.
Thinking about the service tiers and pricing, if you take the prices from the previous section, you can then multiply the price by the SU to get what it will cost.
Ok, now let's look at a few more search features, then we’ll do a demo.
Here are some features that Search offers that we haven't touched on yet.
Search suggestions is another endpoint you have on the search service that is designed for type-ahead functionality.
The search analyzers also handle common spelling mistakes.
Hit highlighting, highlights where the search request were found in the results.
Faceted navigation allows you to return results by a field that has been marked as facetable.
Search also has geo-spatial support which allows you to add functionality to find locations closest to an area or within a geofenced set of coordinates.
You can also set up scoring profiles that allow you go give more weight to something like if the search term was found in the title as being more important than if the search term was found in the body of a document.
This would allow you to rank and sort the search result accordingly in your application.
Now let's jump into the portal and take a look at Search.
Jason Haley is an independent consultant who focuses on Azure and Angular. He has over 20+ years’ experience architecting, designing, developing and delivering software solutions using mostly Microsoft technologies. Jason recently achieved his MCSE: Cloud Platform and Infrastructure certification in May 2017 (by passing all of the 70-532, 70-533 and 70-534 exams). He is also a Microsoft Azure MVP and leads the North Boston Azure User Group. He frequently speaks at community events on topics relating to Azure.