MarkSfik commented on a change in pull request #361:
URL: https://github.com/apache/flink-web/pull/361#discussion_r457510282



##########
File path: _posts/2020-07-21-catalogs.md
##########
@@ -0,0 +1,178 @@
+---
+layout: post
+title: "Sharing is caring - Catalogs in Flink SQL"
+date: 2020-07-21T08:00:00.000Z
+categories: news
+authors:
+- dawid:
+  name: "Dawid Wysakowicz"
+  twitter: "dwysakowicz"
+---
+
+It's not a surprise that, in an era of digitalization, data is the most 
valuable asset in many companies: it's always the base for and product of any 
analysis or business logic. With an ever growing number of people working with 
data, it's a common practice for companies to build self-service platforms with 
the goal of democratising its access across different teams and — especially — 
to enable users from any background to be independent in their data needs. In 
such environments, metadata management becomes a crucial aspect. Without it, 
users often work blindly, spending too much time searching for datasets and 
their location, figuring out data formats and similar cumbersome tasks.
+
+It is a common practice for companies to start building a data platform with a 
metastore, catalog, or schema registries of some sort in place. Those let you 
clearly separate making the data available from consuming it. That separation 
has a few benefits:
+* improved productivity - The most obvious one. Making data reusable and 
shifting the focus on building new models/pipelines rather than data cleansing 
and discovery.
+* security - You can control the access to certain features of the data. For 
example, you can make the schema of dataset publicly available, but limit the 
actual access to the underlying data to only particular teams.
+* compliance - If you have all the metadata in a central entity, it's much 
easier to ensure compliance with GDPR and other similar laws.
+
+## What is stored in a catalog?
+
+Almost all data sets can be described by certain properties that must be known 
in order to consume them. Those include:
+* schema - It describes the actual contents of the data, what columns it has, 
what are the constraints (e.g. keys) on which the updates should be performed, 
which fields can act as time attributes, what are the rules for watermark 
generation and so on.
+* location - Does the data come from Kafka or a file in a filesystem? How do 
you connect to the external system? Which topic or file name do you use?
+* format - Is the data serialized as json, csv, or maybe avro records?
+* statistics - We can also store additional information that can be useful 
when creating an execution plan of our query. For example, we can choose the 
best join algorithm, based on the number of rows in joined datasets.

Review comment:
       ```suggestion
   * statistics - You can also store additional information that can be useful 
when creating an execution plan of your query. For example, you can choose the 
best join algorithm, based on the number of rows in joined datasets.
   ```




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to