Monday, December 18, 2017

Data Modelling vs Dimensional Modelling

Data have become a real resource of interest across most industries in every field which is exactly considered the gateway to competitive advantage and disruptive strategy. Now a day, most of the enterprises are focusing on methods enabling simpler use of data to drive their business and advancement in data related technologies because data is high-volume and high-velocity and/or high-variety information assets that demand cost-effective, innovative forms of information processing that enable enhanced insight, decision-making, and process automation. 
If we are talking about the data models then it has been treated in two different terminologies such as data modeling and dimension modeling which are differ from each other because Steve Hoberman is stated in his book called Data Modeling Made Simple the distinction between the two types of models is this: 
  • Relational Data Models captures the business solution for how part of the business works, a.k.a business process
  • Dimensional Data Models capture the details the business needs to answer questions about how well it is doing

It can be claimed that a relational model can also be used as a foundation upon which to answer business questions, but at a strategic level. "How many orders are in an unfulfilled status for the customer XXX due to credit hold?" But the distinction is that of where the reporting question needs the 'native grain' of the table and when the reporting question can be answered with summarized data.
To better understanding, we can take an example of Historical Sale Data having product, state and sales cash value as a relational point-of-view-
Product
State
Sales Cash
Beer
Delhi
5000
Beer
Punjab
4500
Beer
Haryana
6000
Wine
Delhi
6500
Wine
Punjab
7500
Wine
Haryana
5000
Vodka
Delhi
4500
Vodka
Punjab
2500
Vodka
Haryana
2000
If we modified the above data as dimensional point-of-view:
Product
Delhi
Punjab
Haryana
Beer
5000
4500
6000
Wine
6500
7500
5000
Vodka
4500
2500
2000
But it seems like both points of view would nonetheless be implemented in an identical star schema and a star schema really lies at the intersection of the relational model of data and the dimensional model of data. It's really a way of starting with a dimensional model, and mapping it into SQL tables that somewhat resembles the SQL tables you get if you start from a relational model.
Product Dim



State Dim
Product Id

Sales Fact

State Id
Product Name

Product Id

State Name


State Id




Sales Cash








The standard approach to relational data modelling is not fit for purpose for Business Intelligence workloads. This is because a relational data modelling is a combination of multiple tables and multiple joins but in dimension modelling, we force to use de-normalize multiple related tables into one table to analyze the data in a very sophisticated manner.

Monday, December 4, 2017

Chef and Azure To Build Compliant Infrastructure

Chef is an open source platform which automates the management of infrastructure. Chef recipes need tested linting, static analysis, unit testing and integration testing also. Chef Automate also includes tools for local development and can integrate with a variety of third-party products for developer workflows.
With the Chef server and client, you describe your infrastructure as code, which means it’s versionable, human-readable, and testable. You can take advantage of cookbooks provided by the Chef community, which contain code for managing your infrastructure. These cookbooks are packages for chef policies (called recipes) and other related metadata, resources, or libraries and they can have dependencies on other cookbooks and call recipes inside those dependencies.
We can integrate Chef with VSTS and there are VSTS extensions in the marketplace already. You build infrastructure, not applications, with chef and Chef does not supports Performance and Optimization tests.
You can use the chef to automate services in Azure resource manager other than virtual machine, though there is some limited coverage there. It allows you to automate hyper-v management through Chef. it'll work anywhere you have an operating system.
We can use Chef for Windows OS Cluster or I would say SQL DB Cluster on top of Windows Server 2K12/2K16. Chef Supports HIPPA and you'd need to build the policies to make your infrastructure compliant. Chef has integrations with OMS, but is not a monitoring tool itself.
Chef is similar as PowerShell or visual studio?
Chef is more similar to PowerShell DSC than straight PowerShell. But Chef can also use all of DSC, so you get the best of both. Chef is made over Ruby scripting language. We can run PowerShell script in Chef. We can have Chef on Java applets and can use Chef to manage python and python apps.
How is Chef different from docker files?
Docker is containerization (packaging and run time). Chef manages server configuration, especially over time because Chef is not only configuration management for infrastructure provisioning but also can do devops activities like automated application deployment.
What could be trade-off between chef and PowerShell?
Chef can use all of PowerShell, so it's the best of both worlds.
How different is Chef from an ARM template?
ARM describes environments (for the most part). Chef recipes define individual server configurations.
PowerShell code or Chef Code, which one is best for IT infrastructure Client OS automation?
Chef works with PowerShell and can use it, so it offers the best of both worlds.
Is Chef an Cloud platform to deploy C# apps?
Chef is a automation platform and can be used to deploy c# apps. You build infrastructure, not applications, with chef.
Compared to Terraform, how is chef different? 
Terraform is about creating environments and is closer to ARM than Chef. Terraform can, as part of its process, install and run chef on the machines it creates.
How can we use chef for Healthcare application development?
You can use it to manage infrastructure running healthcare applications, but it is not an application development language.
How CHEF is useful for System administrators who are working on cloud?
By maintaining consistent environments, unplanned work for systems admins is reduced, allowing you to be more productive
How is Chef different from swift?

Swift is a programming language whereas Chef is a infrastructure automation tool. 
Conclusion
Chef is an Infrastructure management tool which provides a pipeline for the continuous deployment of infrastructure and applications. The Chef VM Extension for Azure allows you to bootstrap your nodes automatically, when the machine is provisioned rather than afterwards, no matter how many machines you manage. There is a VM extension for chef which can be defined in an ARM json file.
References- https://www.chef.io/implementations/azure/

Popular Posts