<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Matthew Koscak</title><description>Matthew Koscak — Solutions Architect at Cohere, writing about architecting enterprise AI solutions.</description><link>https://matthewkoscak.com/</link><item><title>How I&apos;ve Learned Generative AI</title><link>https://matthewkoscak.com/blog/how-ive-learned-generative-ai/</link><guid isPermaLink="true">https://matthewkoscak.com/blog/how-ive-learned-generative-ai/</guid><description>The two best resources I&apos;ve found in my learning journey from data integration to generative AI.</description><pubDate>Mon, 23 Sep 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Life update since my last post… I got a new job!&lt;/p&gt;
&lt;p&gt;In June of this year, I started a new role as a Solutions Architect at Cohere. In this role I help customers design AI applications that use Cohere&apos;s Large Language Models.&lt;/p&gt;
&lt;p&gt;Moving from Data Integration to Machine Learning and Generative AI has been a technical change for me. While there have been dozens of resources that helped me get up to speed on GenAI/ML, today&apos;s post focuses on the top two I&apos;d recommend to anyone looking to understand how this stuff actually works.&lt;/p&gt;
&lt;h3&gt;Large Language Model University (LLMu)&lt;/h3&gt;
&lt;p&gt;This is the best resource I&apos;ve encountered teaching Generative AI for newbies.&lt;/p&gt;
&lt;p&gt;Completing this will get you from 0 to intermediate level knowledge on all things GenAI and Natural Language Processing. AI is a difficult topic to learn because we are dealing with text inputs/outputs. When data is in numerical/tabular format, it&apos;s easier to conceptualize and to work with. Deterministic software has guaranteed outputs. But when you&apos;re working with random generation (stochastic software), it can be difficult to conceptualize and implement in a trustworthy manner. The best part about LLMu is that it&apos;s created for beginners, and is explained at an easy to understand learning level. If you want to understand how computers work with text, RAG, Agentic AI, and more — LLMu is your one stop shop.&lt;/p&gt;
&lt;p&gt;Full disclosure that this was created by my current company, Cohere, but I promise I am recommending this based on merit. This whole course will take you roughly 20 hours.&lt;/p&gt;
&lt;p&gt;Check it out at: &lt;a href=&quot;https://cohere.com/llmu&quot;&gt;cohere.com/llmu&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Google&apos;s Machine Learning Crash Course&lt;/h3&gt;
&lt;p&gt;This course is about Machine Learning in general. Knowing the basics of machine learning are table stakes for any AI practitioner. What is a machine learning model? How does model training work? Why? How do we select the data to train on? This course does a great job of getting into these technical concepts. You&apos;ll finish this course understanding those concepts and how exactly different types of models can predict future outcomes/trends from the training process.&lt;/p&gt;
&lt;p&gt;Check it out — this is a little more in depth and will take roughly 30 hours to complete: &lt;a href=&quot;https://developers.google.com/machine-learning/crash-course&quot;&gt;developers.google.com/machine-learning/crash-course&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;A final note about my blog&lt;/h3&gt;
&lt;p&gt;As a closing note, I plan to refresh my blog&apos;s content to better align with my day to day duties and my ongoing learning journey in the field of Generative AI. My blogging will focus on a variety of real-world AI applications, highlight the trends and customer demands I encounter, and provide practical guides on implementing these cutting-edge solutions.&lt;/p&gt;
&lt;p&gt;This space is moving insanely fast and I look forward to sharing what I learn along the way.&lt;/p&gt;
&lt;p&gt;—Matt&lt;/p&gt;
</content:encoded><category>work</category></item><item><title>Tool Use, AI Agents, and the next few years of AI</title><link>https://matthewkoscak.com/blog/tool-use-ai-agents-next-years-ai/</link><guid isPermaLink="true">https://matthewkoscak.com/blog/tool-use-ai-agents-next-years-ai/</guid><description>How tool use, tool chains, and AI agents will drive real enterprise value over the next few years.</description><pubDate>Tue, 04 Jun 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;With AI hype at an all-time high… what is the actual value?&lt;/p&gt;
&lt;p&gt;In the near term, the answer is: Tool Use, Tool Chains, and finally, AI Agents.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Quick note: the code used in this post is from LangChain&apos;s open-source documentation and Quickstart examples.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;What is Tool Use?&lt;/h3&gt;
&lt;p&gt;Tool use, also referred to as function-calling, is a process that certain Large Language Models can utilize to intelligently reason and help a user invoke external tools with natural language (for example — APIs, search engines, database calls, functions, and more). This gives us the ability to not just ask LLMs questions… but to accomplish real-world tasks.&lt;/p&gt;
&lt;p&gt;By the end of this article, you will fully understand how to use natural language to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Access revenue data in a Snowflake Data Warehouse&lt;/li&gt;
&lt;li&gt;Access revenue projections stored in a Google Drive document&lt;/li&gt;
&lt;li&gt;Ask the LLM the question &quot;Did our Black Friday revenue this year beat our projections?&quot;&lt;/li&gt;
&lt;li&gt;Get the correct answer.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This is a perfect example of Tool Use — which is, in my opinion, the number one area AI will add massive enterprise value in the coming years.&lt;/p&gt;
&lt;h3&gt;How does Tool Use work?&lt;/h3&gt;
&lt;p&gt;First, the user registers the tools with the LLM. This is commonly done with the &lt;code&gt;@tool&lt;/code&gt; decorator in Python.&lt;/p&gt;
&lt;p&gt;Then, any time a prompt is sent to the LLM that requires using those pre-defined tools, the LLM can reason which tool it will call. The model can also understand the parameters with which it will execute that call. Finally, the user executes the tool call and accomplishes whatever task was in the prompt.&lt;/p&gt;
&lt;h3&gt;Live example of Tool Use&lt;/h3&gt;
&lt;p&gt;Looking at the QuickStart in LangChain, we can easily create a sample tool that multiplies two numbers together.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;@tool
def multiply(first_int: int, second_int: int) -&amp;gt; int:
    &quot;&quot;&quot;Multiply two integers together.&quot;&quot;&quot;
    return first_int * second_int
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;And when we invoke that tool, we see that we get the right answer!&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;multiply.invoke({&quot;first_int&quot;: 4, &quot;second_int&quot;: 5})

20
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You might be thinking &quot;Multiplication isn&apos;t new. What&apos;s the big deal?&quot;&lt;/p&gt;
&lt;p&gt;Look at the first line of the first code block above. Do you see that &lt;code&gt;@tool&lt;/code&gt; decorator? This is how we register the multiply function as a tool with the Large Language Model (LLM). When we register this tool with our LLM, the LLM can then intelligently use this functionality on its own. When I ask &quot;What is 5 times 4,&quot; the LLM can reason and decide that it should utilize my multiplication function to solve that, and the model can deduce that the two parameters are 5 and 4.&lt;/p&gt;
&lt;p&gt;That&apos;s pretty impressive. Let&apos;s map that same Tool Use capability to a more impressive enterprise use case: querying a Snowflake Data Warehouse containing a table with your company&apos;s historical sales data.&lt;/p&gt;
&lt;p&gt;If I utilize LangChain&apos;s built-in Snowflake integration, I can create a tool to query Snowflake tables and load Snowflake documents with natural language. Suddenly, I can ask questions like &quot;How much revenue did we generate on Black Friday this year?&quot; and that query would be automatically answered for me, without any need to connect to the database and write a custom SQL statement!&lt;/p&gt;
&lt;p&gt;Now THAT is valuable.&lt;/p&gt;
&lt;p&gt;But one tool is not that impressive. What is impressive? Invoking multiple tools. That&apos;s where Tool Chains come in.&lt;/p&gt;
&lt;h3&gt;What is a Tool Chain?&lt;/h3&gt;
&lt;p&gt;A Tool Chain is when multiple tools are called sequentially. It&apos;s literally a &quot;chain&quot; of &quot;tools.&quot; Pretty easy concept to grasp.&lt;/p&gt;
&lt;p&gt;Keeping on the math example, let&apos;s add in a second tool — addition!&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;@tool
def add(first_int: int, second_int: int) -&amp;gt; int:
    &quot;Add two integers.&quot;
    return first_int + second_int
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This simple tool adds two numbers together, and functions the same way as the multiplication tool. But now, since there are two tools registered, I can prompt the LLM on either one.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;chain.invoke(&quot;What&apos;s 5 times 4&quot;)

20
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;chain.invoke(&quot;What&apos;s 20 plus 100&quot;)

120
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;We now have multiple tools in our chain. We can call either of them as needed!&lt;/p&gt;
&lt;p&gt;Earlier we created our Snowflake connection and queried a Snowflake table via natural language to find out our Black Friday revenue. Now, we set up a Google Drive connector. In our fake scenario here, this is where we keep our company&apos;s financial projections for this year. We can use natural language to ask both:&lt;/p&gt;
&lt;p&gt;&quot;How much revenue did we make on Black Friday this year?&quot; and &quot;Did we meet our 2024 Black Friday revenue projections?&quot;&lt;/p&gt;
&lt;p&gt;This is a perfect example of a Tool Chain — a chain of tools that each accomplish individual tasks, which all together accomplish a goal.&lt;/p&gt;
&lt;p&gt;But there is one limitation: I can only invoke one of these tools at a time. What if I wanted to ask &quot;Did our Black Friday revenue this year beat our projections?&quot;&lt;/p&gt;
&lt;p&gt;This is where AI Agents come in.&lt;/p&gt;
&lt;h3&gt;AI Agents&lt;/h3&gt;
&lt;p&gt;The core idea of AI Agents (sometimes called Intelligent Agents) is to use a language model to choose a sequence of actions to take. In agents, a language model is used as a reasoning engine to determine which actions to take and in which order.&lt;/p&gt;
&lt;p&gt;Looking back at our addition and multiplication example from the LangChain documentation, we can now invoke both tools in one question!&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;chain.invoke(&quot;What is 5 times 4, plus 100?&quot;)

&quot;5 × 4 equals 20, and adding 100 to that total gives us 120&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This ability to take my natural language prompt, deduce what functions should be used, and what parameters to use in those functions is all quite impressive! Let&apos;s relate this to our enterprise example one final time.&lt;/p&gt;
&lt;p&gt;With the ability to invoke both my Snowflake tool and my Google Drive tool in one call, I can ask the question &quot;Did our Black Friday jean sales this year beat our projections?&quot; and the LLM will call the Snowflake tool to return the revenue, call the Google Drive tool to find our Black Friday projection, compare those two results, and then return an answer such as:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;chain.invoke(&quot;Did our Black Friday jean sales this year beat our projections?&quot;)

&quot;Black Friday sales were $100,000, which is higher than the projected $80,000 for this year.&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Conclusion&lt;/h3&gt;
&lt;p&gt;Tool Use and Intelligent Agents are the next phase of AI.&lt;/p&gt;
&lt;p&gt;With NVIDIA at almost a 3 trillion dollar market cap, and every single tech company spending money on AI, I think it&apos;s safe to say AI hype is at an all-time high.&lt;/p&gt;
&lt;p&gt;But, as with any hyped technology, it seems like we could be approaching a bubble. So where is the real return on investment for companies when it comes to AI?&lt;/p&gt;
&lt;p&gt;In the near term? Tool Use and Intelligent Agents.&lt;/p&gt;
&lt;p&gt;Tool Use and Intelligent Agents are going to completely transform knowledge work, and give users the ability to automate tasks that they wouldn&apos;t have been able to dream of before the advent of LLMs.&lt;/p&gt;
&lt;p&gt;These agents will expand far beyond asking questions to a Snowflake table. Soon, entire workflows will be automated away without any human intervention. The LLM will function as a sort of human-like brain, which can do everything within the limits of the target tools&apos; APIs.&lt;/p&gt;
&lt;p&gt;The next few years will bring in massive changes in enterprise automation and knowledge work.&lt;/p&gt;
</content:encoded><category>work</category></item><item><title>Apache Iceberg: The Quickstart Guide</title><link>https://matthewkoscak.com/blog/apache-iceberg-the-quickstart-guide/</link><guid isPermaLink="true">https://matthewkoscak.com/blog/apache-iceberg-the-quickstart-guide/</guid><description>What Apache Iceberg is, how it works under the hood, and why 2024 is the year of Iceberg.</description><pubDate>Thu, 04 Apr 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;In case you missed it… 2024 is the year of Apache Iceberg.&lt;/p&gt;
&lt;p&gt;Today we are going to discuss:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;What is Apache Iceberg?&lt;/li&gt;
&lt;li&gt;How does it work?&lt;/li&gt;
&lt;li&gt;What are some real-world use cases?&lt;/li&gt;
&lt;li&gt;The open-source community around Iceberg vs. competitors&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;What is Apache Iceberg&lt;/h2&gt;
&lt;p&gt;Apache Iceberg has quickly become the most popular Open Table Format. So what is it?&lt;/p&gt;
&lt;p&gt;Apache Iceberg is a truly open-source table format for Parquet, ORC, and Avro files. Businesses can capture data fast and cheaply in these file formats in their data lake, and then use Apache Iceberg tables as an abstraction layer over those files to introduce the following functionality:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Schema evolution&lt;/li&gt;
&lt;li&gt;SQL querying on data lakes&lt;/li&gt;
&lt;li&gt;Incremental processing of data&lt;/li&gt;
&lt;li&gt;Consistent, reliable data states for all users&lt;/li&gt;
&lt;li&gt;Time travel — querying current or past snapshots&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;How exactly does it work?&lt;/h2&gt;
&lt;p&gt;Iceberg tables don&apos;t actually house the data. Instead, the data is kept in Parquet, ORC, or Avro files, and Iceberg is used as an abstraction layer. What does that mean?&lt;/p&gt;
&lt;p&gt;Apache Iceberg utilizes a system of pointers and metadata files to keep track of CHANGES to the underlying data files. The pointers and metadata files comprise our Apache Iceberg table!&lt;/p&gt;
&lt;p&gt;We will now dive into how Iceberg works under the covers, and learn how a SELECT statement would execute in this architecture.&lt;/p&gt;
&lt;p&gt;Architecturally, there are three layers of an Iceberg table format:&lt;/p&gt;
&lt;h3&gt;Layer 1 — The Iceberg catalog&lt;/h3&gt;
&lt;p&gt;The catalog is the highest level, and is the starting point for any interactions with Iceberg tables. It contains the current metadata pointer, which points to the metadata file of the current Iceberg table. If we have database 1 (db1), and table1 to represent our first Apache Iceberg table, the metadata pointer kept in the catalog would be &lt;code&gt;db1.table1&lt;/code&gt;. This points to the current metadata file.&lt;/p&gt;
&lt;h3&gt;Layer 2 — The Metadata layer&lt;/h3&gt;
&lt;p&gt;The metadata layer consists of a few reference files:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Metadata file&lt;/strong&gt; — This file stores high-level metadata about your table at a certain point in time. The most important information contained in this file is the current snapshot. The current snapshot gives us the CURRENT table, which consists of a manifest list, manifest files, and data files (stay with me, it will make sense by the end).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Manifest list&lt;/strong&gt; — a list of manifest files. This list contains the path (the location) of each manifest file contained in a snapshot.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Manifest files&lt;/strong&gt; — The purpose of a manifest file is to track the data files. Manifest files contain information about the underlying data files in object storage. Information like location, record count, and partition information are stored in the manifest file, and can be used to make querying more efficient.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Layer 3 — The Data (Storage) layer&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Data files&lt;/strong&gt; — This layer contains the actual data in your Iceberg table. These would be in either the Parquet, ORC, or Avro file format. These data files are managed by the files in the metadata layer.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Real-world use cases&lt;/h2&gt;
&lt;p&gt;Now you understand how Iceberg tables work under the hood. But what use cases are becoming more prevalent that make 2024 the year of Apache Iceberg?&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Strict data privacy laws&lt;/strong&gt; — There are data privacy laws that require deleting data after a certain period. If that data is kept in a data lake, Iceberg allows for easy deletion of relevant records or tables.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Updates at the record level&lt;/strong&gt; — If you sell something and that transaction is stored in your data lake, and then the customer returns it… what do you do? In immutable data stores, we must reprocess the entire data set. With Iceberg, we can make record-level changes in the data lake.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ACID transactions&lt;/strong&gt; — allows data lakes to function as transactional data stores.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Open Source Community&lt;/h2&gt;
&lt;p&gt;The last point, and probably the most important, is that there are only a few open table format options for a modern data repository — Iceberg, Delta Lake, and Hudi. Iceberg, in many experts&apos; opinion, has the best open-source community contributing to its development.&lt;/p&gt;
&lt;p&gt;Delta Lake (a competing Open Table Format) is open-source, but its two biggest contributors by far are Databricks and Microsoft. If your business works with those companies, then Delta Lake may be a good choice for your lakehouse architecture. But if you are looking for true open source, Apache Iceberg is likely the better option. Iceberg has an incredibly diverse and talented community across a plethora of companies contributing to its advancement.&lt;/p&gt;
&lt;p&gt;It&apos;s the most feature-rich, and the most open-source table format out there.&lt;/p&gt;
&lt;p&gt;2024 is the year of Apache Iceberg. Are you ready for the Iceberg takeover?&lt;/p&gt;
</content:encoded><category>work</category></item><item><title>The Benefits of Open Table Formats</title><link>https://matthewkoscak.com/blog/benefits-open-table-formats/</link><guid isPermaLink="true">https://matthewkoscak.com/blog/benefits-open-table-formats/</guid><description>A quick summary of what Open Table Formats are and the four main benefits they bring to a data lake.</description><pubDate>Thu, 29 Feb 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;If you work with data, you&apos;ve probably heard of the term &quot;Open Table Format.&quot;&lt;/p&gt;
&lt;p&gt;If you haven&apos;t, or if you want to learn what Open Table Formats (OTFs) are and why they are all the rage, this post is for you.&lt;/p&gt;
&lt;h4&gt;What is an Open Table Format&lt;/h4&gt;
&lt;p&gt;You&apos;re probably familiar with a table in a relational database. It&apos;s a grouping of columns and rows of data that we can query.&lt;/p&gt;
&lt;p&gt;So what&apos;s the difference between this &quot;Table Format&quot; and an &quot;Open Table Format&quot;? Let me explain.&lt;/p&gt;
&lt;p&gt;Remember that data lakes are composed of files (Parquet, ORC, etc.) in HDFS or Object Storage. These files are visible to us as the end user. Using Parquet as an example, that file could be &lt;code&gt;Example.parquet&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;These file formats are different from Open Table Formats like Apache Iceberg, Delta Lake, or Apache Hudi. File formats and open table formats work together.&lt;/p&gt;
&lt;p&gt;An Open Table Format is an abstraction layer on top of a data lake&apos;s files/storage that introduces functionality traditional database tables have.&lt;/p&gt;
&lt;p&gt;What functionality are we talking about?&lt;/p&gt;
&lt;h4&gt;Benefits of an Open Table Format&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;Schema and partition evolution + CRUD operations&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Relational database tables allow for C.R.U.D. operations (Create, Read, Update, and Delete). In a typical data lake, however, users can only create objects (or files) and read them. Data lakes typically utilize object storage (or HDFS), which does not provide an easy way for users to update the data. These storage mechanisms are designed to hold immutable (unchangeable) copies of data. That is, until OTFs came onto the scene. With OTFs, you can update columns/records, schemas, and partitions across object stores without completely reprocessing the data.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Improved performance&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Open Table Formats allow analytical engines (Spark, Presto) to filter by metadata BEFORE executing a query. This drastically reduces the number of compute operations and records to read through for queries over large data sets. Quick example…&lt;/p&gt;
&lt;p&gt;Let&apos;s say our company, Rockford Corp, has customers aged 20–70. We store all purchase transactions in Parquet files, partitioned by decade of age (20–29, 30–39, etc.). We want to analyze just those individuals aged 20–29. With an Open Table Format, we have the metadata of these files stored in our catalog, allowing us to search ONLY those files that meet the condition of age = 20–29. This allows us to skip over all other age groups, drastically improving our time to query and the performance of that query versus if we had to query all records.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ACID functionality&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;ACID functionality — which stands for Atomicity, Consistency, Isolation, and Durability — are four key characteristics of a database table. These four properties together ensure database operations across groups of records can happen concurrently without issues. If any singular event or transaction fails, the entire process fails and the database reverts to the last stable state. This is extremely important for certain applications and use cases where multiple reads and writes are happening concurrently.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Atomicity&lt;/strong&gt; — Guarantees all commands in a transaction either succeed together or fail together.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Consistency&lt;/strong&gt; — Guarantees all transactions follow the constraints or rules set.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Isolation&lt;/strong&gt; — Transactions run in an isolated environment, allowing two transactions to run concurrently.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Durability&lt;/strong&gt; — Transactions that complete successfully are guaranteed to persist in the database.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Time travel&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Open Table Formats utilize metadata to create each &quot;snapshot&quot; or version of that table and its contents at a point in time. Each snapshot is a grouping of metadata across the files and object stores. One unique aspect of OTFs is that because these snapshots are captured and kept, users can roll back to previous snapshots. This allows for &quot;time travel,&quot; as we can utilize older versions of these tables whenever we need.&lt;/p&gt;
&lt;p&gt;Note — Between the main Open Table Formats (Iceberg, Delta Lake, and Hudi) each one works slightly differently than the others.&lt;/p&gt;
&lt;p&gt;The important point here is that without an open table format, data lakes DO NOT have the critical functionality listed above. But with data files organized under a standardized table format, we get the full data warehouse experience on the data lake.&lt;/p&gt;
&lt;p&gt;This is where the term &quot;Data Lakehouse&quot; comes from.&lt;/p&gt;
&lt;p&gt;In summary, an Open Table Format is an abstraction layer on top of modern file formats that gives us functionality such as schema/partition evolution, CRUD operations, better performance, ACID transactions, and time travel.&lt;/p&gt;
&lt;p&gt;Thanks for reading! If you&apos;ve read this far, I&apos;d love to hear your thoughts on this article and would appreciate any feedback you may have.&lt;/p&gt;
</content:encoded><category>work</category></item><item><title>The Rise of Object Storage</title><link>https://matthewkoscak.com/blog/rise-object-storage/</link><guid isPermaLink="true">https://matthewkoscak.com/blog/rise-object-storage/</guid><description>What object storage is, how it came to dominate the world&apos;s data, and why you should care.</description><pubDate>Fri, 26 Jan 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;The Blob.&lt;/p&gt;
&lt;p&gt;The Bucket.&lt;/p&gt;
&lt;p&gt;The almighty Object Store.&lt;/p&gt;
&lt;p&gt;Just under 80% of the world&apos;s data is unstructured or in an object store. If you work with data, this affects you. You should know what object storage is.&lt;/p&gt;
&lt;p&gt;For this blog post, give me a few minutes of your time and I&apos;ll explain:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;What object storage is&lt;/li&gt;
&lt;li&gt;Why you should care&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;What is Object Storage?&lt;/h3&gt;
&lt;p&gt;Object storage is the basis of the modern data repository. Yep, it&apos;s that important.&lt;/p&gt;
&lt;p&gt;Object storage is where all of our unstructured, semi-structured, and sometimes structured files reside in a data lake or data lakehouse. Sure, there are other aspects of a data lakehouse, but object storage reigns king as the holder of information.&lt;/p&gt;
&lt;p&gt;As a refresher, data lakes are where we dump data (usually unstructured) to potentially clean and analyze later. Remember how unstructured data is hard to work with? Lakehouses fixed that — think of a data lakehouse as a sort of queryable data lake.&lt;/p&gt;
&lt;p&gt;So is object storage new or something?&lt;/p&gt;
&lt;p&gt;No. Object storage is actually like 30 years old. It was originally invented in the 1990s to help companies meet new compliance laws. During the &apos;90s, a bunch of naughty companies were deleting or changing their financial records data. To stop people from doing this, new laws came into effect that changed how companies could store, change, and delete data for record keeping.&lt;/p&gt;
&lt;p&gt;Object storage initially came at a time when companies needed:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Auditable data trails&lt;/li&gt;
&lt;li&gt;Unchangeable data stores&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;And object stores are great for those two things! But they can also:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Have expansive, customizable metadata&lt;/li&gt;
&lt;li&gt;Scale cheaply&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;All four of these benefits together are what make object storage unique versus other storage mechanisms like block storage. If block storage was a covered parking lot with valet service, object storage was economy parking.&lt;/p&gt;
&lt;p&gt;But object storage wasn&apos;t crazy popular at first. The need for good metadata wasn&apos;t apparent. Object storage wasn&apos;t yet available on the cloud.&lt;/p&gt;
&lt;p&gt;That all changed around 2010, as enterprises increasingly needed a place to cheaply dump massive amounts of unstructured and other data to work with later. The data lake was born! It needed storage — Cloud Object Storage was the cheap, safe, and scalable option that worked best. It became the standard storage for data lakes.&lt;/p&gt;
&lt;p&gt;Fast forward to today — object storage dominates the world&apos;s data. According to IDC, just under 80% of the world&apos;s data is unstructured or object storage.&lt;/p&gt;
&lt;p&gt;But object storage isn&apos;t just popular because it is a cheap, scalable storage option. A bunch of dirty unstructured data together? That sounds like a data swamp! We needed the ability to search and query our object storage.&lt;/p&gt;
&lt;p&gt;Remember how &quot;expansive, customizable metadata&quot; was a benefit of object storage? The need to make sense of all this object storage demanded a solution.&lt;/p&gt;
&lt;p&gt;Enter the Data Lakehouse. With the advent of Data Lakehouses, and more specifically the open table format in 2013, object stores eventually became easier to navigate and analyze.&lt;/p&gt;
&lt;p&gt;Open table formats made it possible to query data across object stores. There&apos;s a lot of work involved in getting there, but that&apos;s the gist of it.&lt;/p&gt;
&lt;p&gt;In summary, object storage is cheap, scalable storage with descriptive metadata.&lt;/p&gt;
&lt;p&gt;It became popular in the 2010s because of the advent of Cloud Object Storage plus the creation of open table formats. Together, these two advancements ushered in an explosion of unstructured data analytics and a dominant period for Object Storage.&lt;/p&gt;
&lt;h2&gt;Why it matters to you&lt;/h2&gt;
&lt;p&gt;This matters to you if you work with data — specifically, unstructured data. Think emails, audio files, photos, logs, videos, and other sources of &quot;information.&quot; These files are likely landing in object storage to be analyzed later.&lt;/p&gt;
&lt;p&gt;These sources don&apos;t have rows and columns to get straightforward insights from. But they do have valuable data to analyze. Let&apos;s look at a quick example of what I mean.&lt;/p&gt;
&lt;p&gt;Let&apos;s say you own a clothing store. You just released a new pair of blue jeans you think are great, but know you can improve to bring your business to new heights. You obtain an audio file of one of your customers explaining what they like and don&apos;t like about your new blue jeans. This is great news, as this audio has information that can be analyzed to help you improve your blue jeans!&lt;/p&gt;
&lt;p&gt;In a perfect world, this audio file would be a spreadsheet. But it&apos;s not. That&apos;s not how the world works. Data is captured in all sorts of unstructured formats that you can cleanse into something you can query.&lt;/p&gt;
&lt;p&gt;So how do we &quot;query&quot; or analyze this? The answer starts with object storage.&lt;/p&gt;
&lt;p&gt;Object stores include both the audio recording file and metadata about that file&apos;s contents. After cleansing this audio file and object, users can then query that metadata and the (cleansed) file contents to derive insights.&lt;/p&gt;
&lt;p&gt;Utilizing metadata about object stores also gives us improved query performance and cost. For example, if we wanted to query all audio files created in January, we could just query metadata containing a January timestamp, eliminating the need to search through 11 other months of results.&lt;/p&gt;
&lt;p&gt;By utilizing metadata to pre-filter our query results, we drastically speed up execution time (less data to analyze) and, as a result of fewer computations, save on compute costs. Talk about good data engineering!&lt;/p&gt;
&lt;p&gt;With object storage, a whole new data repository has been created right before our eyes. By piecing together object storage, open file formats, and open table formats, we have officially entered into the golden age of unstructured data analytics and AI.&lt;/p&gt;
</content:encoded><category>work</category></item><item><title>The Big 3 AI File Formats</title><link>https://matthewkoscak.com/blog/big3aifileformats/</link><guid isPermaLink="true">https://matthewkoscak.com/blog/big3aifileformats/</guid><description>Parquet, ORC, and Avro — the Jordan/Pippen/Rodman of big data, and when to use each.</description><pubDate>Wed, 10 Jan 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Jordan, Rodman, Pippen.&lt;/p&gt;
&lt;p&gt;Parquet, ORC, Avro?&lt;/p&gt;
&lt;p&gt;Big 3s are cool in basketball. Big 3s in file formats? Probably something you gloss over.&lt;/p&gt;
&lt;p&gt;Today&apos;s blog will convince you otherwise. Knowing the basics of these three file formats, and when to use which, will make you lethal in the world of AI.&lt;/p&gt;
&lt;p&gt;So let&apos;s dive in.&lt;/p&gt;
&lt;p&gt;The main file formats we deal with in our day-to-day data job are typically CSV or JSON. They work for some use cases. But these file formats weren&apos;t particularly designed to deal with BIG data. When files of this format encounter massive amounts of data and are used for analytical workloads, compute resources are typically used up much faster. Searching through millions or billions of records, value by value, to find an answer… it just isn&apos;t efficient for computers. Not with a basic file format, at least!&lt;/p&gt;
&lt;p&gt;To be specific, older file formats cannot work with compression algorithms, faster read/write speeds, and nested data structures often required of big data projects. Because of these shortfalls, more sophisticated file formats eventually came to be.&lt;/p&gt;
&lt;p&gt;Today we will run through the big three file formats you&apos;ll encounter in data lakes and the world of big data and AI:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ORC&lt;/li&gt;
&lt;li&gt;Parquet&lt;/li&gt;
&lt;li&gt;Avro&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Before we overview each, we need to establish two important concepts.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;First concept — the structure of a data file is very important.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Namely, row-based storage vs. columnar storage. The way your data is organized can change your time to answer a question or query from 6 minutes to 6 milliseconds. You must optimize your format to match your storage method and your data use case.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Second concept — what is a column-oriented data file format?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This is a fundamental concept of two of these three formats. A lot of folks think of typical row-based storage when storing records. But another helpful option is column-oriented files. In a column-oriented file, data is stored by — you guessed it — each column. So each column contains all the values for that specific attribute across all records.&lt;/p&gt;
&lt;p&gt;Let&apos;s say our business, Rockford Corp., has customer records stored with some basic information. In row-based storage, records are stored one full record at a time. In columnar storage, the data is stored by each column.&lt;/p&gt;
&lt;p&gt;Take a second to understand the differences in the way these are stored…&lt;/p&gt;
&lt;p&gt;So now… who cares? You should! The columnar type of file format is often ideal for analytics and machine learning.&lt;/p&gt;
&lt;p&gt;A real-world example of this would be finding the average age of Rockford Corp&apos;s customers. Let&apos;s find the average age using both the row storage and column storage file formats.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ROW STORAGE&lt;/strong&gt; — Since the &quot;age&quot; attribute is stored as one value in each record containing 4 total values (FirstName, LastName, Age, ZipCode), a computer must load all 16 total values into memory to calculate the average age of 36.25.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;COLUMNAR STORAGE&lt;/strong&gt; — Here the ages are all in the same &quot;record.&quot; Searching for the answer to this particular question would be a lot quicker, as we just load the 4 age values into memory for our average.&lt;/p&gt;
&lt;p&gt;That&apos;s 4 operations instead of 16!&lt;/p&gt;
&lt;p&gt;And thus goes columnar storage. While this is an overly simplified example with only a few data points, you can see how this drastically improves compute resources and efficiency over large data sets. Numerous machine learning and AI use cases are better accomplished with data in columnar file formats.&lt;/p&gt;
&lt;p&gt;Other benefits of columnar file formats and storage include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Better compression&lt;/li&gt;
&lt;li&gt;Faster query performance&lt;/li&gt;
&lt;li&gt;Scalability&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Got it? Good stuff. Let&apos;s move on to the big three file formats.&lt;/p&gt;
&lt;h2&gt;Apache Parquet&lt;/h2&gt;
&lt;p&gt;There&apos;s a reason I put Parquet with Michael Jordan in the opening picture. Apache Parquet is the most popular file format on this list.&lt;/p&gt;
&lt;p&gt;Parquet is an open-source, column-oriented data file format that came out in 2013. The main draw of utilizing Parquet was improved analytical querying performance. That&apos;s fancy speak for better data storage and data retrieval. It is extremely popular for Python-based projects, which is the most popular programming language in the world.&lt;/p&gt;
&lt;p&gt;Parquet provides:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Efficient data compression — your data doesn&apos;t take up tons of space&lt;/li&gt;
&lt;li&gt;Ability to handle complex data in bulk&lt;/li&gt;
&lt;li&gt;Availability in multiple languages (Python, Java, C++, etc.) — useful in lots of big data projects&lt;/li&gt;
&lt;li&gt;Availability to any project in the Hadoop ecosystem, regardless of the specific data processing framework, model, or language. This is huge as you aren&apos;t locked into one framework.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Parquet is optimized for write-heavy workloads. It also has excellent support for complex nested data structures, making Parquet a great candidate for JSON and other nested data types.&lt;/p&gt;
&lt;h2&gt;Apache ORC&lt;/h2&gt;
&lt;p&gt;The second file format you&apos;ll run into is Apache ORC, or Optimized Row Columnar. This file is again columnar-based and is designed for big data processing systems like Hadoop.&lt;/p&gt;
&lt;p&gt;Inside the ORC file, data is stored in stripes (which is just a grouping of rows of data). Those stripes are chunked into smaller groupings of columns and then compressed into much smaller storage. The result is a massive data set that doesn&apos;t take up much space!&lt;/p&gt;
&lt;p&gt;Need proof? Facebook (Meta) uses ORC in their data warehouse to save tens of petabytes of data versus other formats.&lt;/p&gt;
&lt;p&gt;ORC also stores indexes and vast metadata in the file, so that certain query results can be retrieved quickly instead of searching through the entire file.&lt;/p&gt;
&lt;p&gt;The Apache ORC file format is an excellent candidate for read-heavy use cases, especially streaming, with support for finding the required records with speed.&lt;/p&gt;
&lt;p&gt;You&apos;re probably thinking &quot;Hey, this sounds a lot like Parquet.&quot; The main difference to remember is you would use ORC for read-heavy workloads, and Apache Parquet for write-heavy workloads. It&apos;s a little more complicated than that… but if you remember this one fact, you&apos;ll be ahead of most data and AI learners.&lt;/p&gt;
&lt;h2&gt;Apache Avro&lt;/h2&gt;
&lt;p&gt;Avro is a ROW-based storage format for Hadoop. Avro stores the schema as JSON, making it easy to read by almost any program. The data itself is stored in binary, which makes it compact. One important feature of Avro is support for data schemas that change over time (this is called schema evolution). Avro can handle schema changes like missing, added, or changed fields.&lt;/p&gt;
&lt;p&gt;The Avro format also provides support for numerous rich data structures, and even support for multiple data structures in the same record. Avro is often recommended for Kafka, and when serializing data in Hadoop. Avro is splittable and compressible and is a really good candidate for the Hadoop ecosystem and for running in parallel.&lt;/p&gt;
&lt;p&gt;One thing that&apos;s special about Avro is that it is self-describing. Serialized data AND that data&apos;s schema are bundled in the same Avro file. This allows different programs to easily deserialize messages.&lt;/p&gt;
&lt;p&gt;So now to the important question… what use case is best for Avro?&lt;/p&gt;
&lt;p&gt;Based on the file format&apos;s strengths, Avro is an ideal candidate for your data lake&apos;s landing zone. This is because data in this zone is typically read in its entirety downstream (row is better than column for this), PLUS those downstream systems retrieving that data can also easily retrieve the schemas (since they are stored with the file). Another great use case is standardizing data on Avro across your different systems as a consistent communication format.&lt;/p&gt;
&lt;p&gt;And those are your big three file formats in the age of AI! Just like Jordan, Pippen, and Rodman dominated the 1990s, these three file formats dominate big data.&lt;/p&gt;
&lt;p&gt;The main takeaway here is that your file format should match up to your downstream use case. Yes, that takes planning. But that planning will save you time and money a thousandfold in the future. And that, my data-driven friend, is what good engineering is.&lt;/p&gt;
&lt;p&gt;Thanks for tuning in!&lt;/p&gt;
</content:encoded><category>work</category></item><item><title>The Modern Data Repository Crash Course</title><link>https://matthewkoscak.com/blog/modern-data-repository-crash-course/</link><guid isPermaLink="true">https://matthewkoscak.com/blog/modern-data-repository-crash-course/</guid><description>Database → Data Warehouse → Data Lake → Data Lakehouse, explained simply — and why the lakehouse is all the rage.</description><pubDate>Thu, 21 Dec 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Database → Data Warehouse → Data Lake → Data Lakehouse&lt;/p&gt;
&lt;p&gt;By the end of this blog post, you&apos;ll have a solid understanding of each, and finally understand (in simple terms) how the Data Lakehouse came to be and why they are all the rage.&lt;/p&gt;
&lt;p&gt;When you think of collecting data, the first thing that pops into your head is likely a database.&lt;/p&gt;
&lt;p&gt;And that&apos;s a great start! Databases were the first way to efficiently store and recall large amounts of data in an organized fashion. The RDBMS reigned supreme for years.&lt;/p&gt;
&lt;p&gt;Then came this thing called the internet. During the explosion of the internet and e-commerce throughout the later 1990s and early 2000s, there was a subsequent explosion of data being generated. These events gave rise to the age of &quot;Big Data.&quot;&lt;/p&gt;
&lt;p&gt;Big Data gave rise to the era of analytics and reporting. These activities, under the umbrella of &quot;Business Intelligence,&quot; came to dominate enterprises. The ability to accurately obtain historical data for reporting, forecasting, customer analysis, market trends, etc., quickly became a key focus of every business everywhere.&lt;/p&gt;
&lt;p&gt;But we needed a technology to power our Business Intelligence.&lt;/p&gt;
&lt;p&gt;So you might be thinking, why not use a database? Doesn&apos;t it store lots of data?&lt;/p&gt;
&lt;p&gt;Databases are designed to be able to write data really fast — that&apos;s what made them special. The problem is, the use cases of reporting and analytics require reading large amounts of data fast. A system purpose-built for storing and reading massive amounts of historical data did not exist at the time. That is, until the Data Warehouse came on the scene at the turn of the Millennium.&lt;/p&gt;
&lt;p&gt;The purpose of an Enterprise Data Warehouse (EDW) is to consolidate data in an organized fashion from a variety of databases to help businesses slice and dice their data. The ultimate goal of this was to use data to make better business decisions.&lt;/p&gt;
&lt;p&gt;It&apos;s worth noting that EDWs don&apos;t actually do the slicing and dicing (Business Intelligence tools do that instead). Instead, the EDW provides those tools a trustworthy foundation that allows us to reliably slice and dice that historical data.&lt;/p&gt;
&lt;p&gt;A Data Warehouse can be broken down into 4 components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Ingestion&lt;/strong&gt; — use ETL tools to bring data from siloed sources&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Storage&lt;/strong&gt; — stores the data in a central database&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Metadata&lt;/strong&gt; — data about your data, specifying things like usage, values, statistics, and other insights&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Consumption&lt;/strong&gt; — tools to access the data within your data warehouse such as querying, reporting, development, and OLAP tooling&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;With Data Warehouses, enterprises were now enabled with BI, analytics, and reporting. Finally we had a solid way to slice and dice swathes of historical data!&lt;/p&gt;
&lt;p&gt;But the continued explosion of data soon ran into a new problem… the issue of unstructured and semi-structured data from sources like social media, IoT sensors, email, and more.&lt;/p&gt;
&lt;p&gt;Data warehouses were designed to work really well with structured data. And while EDWs could technically work with unstructured/semi-structured data, that data had to be drastically cleaned up first (which wasn&apos;t really practical). This presented a big problem, as organizations were unable to get much (if any) value from their non-structured data sources.&lt;/p&gt;
&lt;p&gt;This all changed around 2010, when Pentaho CTO James Dixon introduced the concept of a Data Lake.&lt;/p&gt;
&lt;p&gt;A data lake is a repository of data where we are storing files or objects in their original format.&lt;/p&gt;
&lt;p&gt;In this case, there is no pre-defined schema like in a data warehouse. This allows us to consolidate and analyze data of all kinds for a variety of business purposes. The end result? Valuable insights from previously scrambled data.&lt;/p&gt;
&lt;p&gt;The key advantage of a data lake is being able to store almost any type/size/format of data in its original state (both structured and unstructured). The main trade-off here, however, is that data lakes can lack governance and guardrails on that data.&lt;/p&gt;
&lt;p&gt;As data lakes emerged, they were (and sometimes still are) custom-built. This gives data engineers great flexibility, as they can choose what each component is made of. The key components include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Data ingestion&lt;/strong&gt; — ETL tools for batch, as well as Kafka (and others) for real-time/streaming. You want a standardized ingestion framework.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Storage&lt;/strong&gt; — Early data lakes were built using on-premises HDFS clusters. But the high cost of these systems ultimately ushered in the era of cloud data lakes (which are based on object storage).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Processing (trusted) zone&lt;/strong&gt; — This is where data is transformed and enriched for use (quality checks and remediation).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Consumption zone&lt;/strong&gt; — how the data is accessed for business use.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Data governance and management zone&lt;/strong&gt; — Data auditing, metadata management, lineage, cataloging, security, monitoring, operations, etc. This zone applies to the other four as an overlay.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You&apos;re probably thinking &quot;Hey, these components seem similar to that data warehouse.&quot;&lt;/p&gt;
&lt;p&gt;The components are similar, but the key differentiator is the need to specify the schema and cleanse the data beforehand. In a data warehouse, you had to do all this before landing the data in storage. With a data lake, we can simply dump copies of the original data into object storage. This offers us greater flexibility and scalability.&lt;/p&gt;
&lt;p&gt;Data lakes and data warehouses are typically used in tandem. Data lakes act as a catch-all system for new data, and data warehouses apply downstream structure to specific data from this system. The problem is, coordinating these systems to provide reliable data can be costly in both time and resources.&lt;/p&gt;
&lt;p&gt;So like Rocky Balboa and Apollo Creed in the third Rocky movie, the data lake and data warehouse inevitably joined forces — giving us a best-of-both-worlds data repository, the Data Lakehouse.&lt;/p&gt;
&lt;p&gt;The data lakehouse merged the best aspects of the data lake and the data warehouse. That is, the ability to quickly land data in its original format in cheap, scalable storage, while providing the data structure of a data warehouse.&lt;/p&gt;
&lt;p&gt;Lakehouses utilize similar data structures from a warehouse, paired with the object storage component of data lakes. This gives companies the ability to access trusted big data quickly. Lakehouses also support structured, semi-structured, and unstructured data. This allows users to accomplish BI and complex data science or machine learning use cases.&lt;/p&gt;
&lt;p&gt;Data lakehouses are somewhat similar to data lakes, at least at the start. Typically, however, data within a lakehouse will be converted to a format like Delta Lake, which is an open-source storage layer that brings reliability, metadata management, and ACID transaction functionality (like a data warehouse) to a data lake.&lt;/p&gt;
&lt;p&gt;The Delta Lake framework is a bit out of scope for this crash course, but for those who want to learn more, check out their website: &lt;a href=&quot;https://delta.io/&quot;&gt;delta.io&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Why should you care?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Because 70% of enterprises say that the majority of all analytics workloads will be on their data lakehouse within three years. These same organizations project a 75% cost savings with the lakehouse architecture versus their current data repository architectures.&lt;/p&gt;
&lt;p&gt;It&apos;s not some fancy new architecture that makes data lakehouses all the rage… it&apos;s the benefits this architecture brings:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Drastic cost reduction&lt;/strong&gt; — By utilizing lower-cost Cloud Object Storage, operational costs are drastically lower than data warehouses.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Scales better&lt;/strong&gt; — With warehouses, compute and storage are coupled together. Since lakehouses decouple these two, folks can access the same storage while using their own compute.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Real-time support&lt;/strong&gt; — With the continued rise of streaming and real-time ingestion, this is huge for enterprises.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Improved governance&lt;/strong&gt; — Normal data lakes lack governance. But with lakehouses, ingested data can meet defined schema requirements (eliminating data quality issues and data swamps).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Data Lakehouses yield cost-efficiency AND are easier to use. What a win-win!&lt;/p&gt;
&lt;p&gt;In summary — while databases, data warehouses, and data lakes offer businesses a ton of value and will remain in use… the Data Lakehouse is the data repository of the future.&lt;/p&gt;
</content:encoded><category>work</category></item><item><title>A Simple Framework for Enterprise AI</title><link>https://matthewkoscak.com/blog/simple-framework-enterprise-ai/</link><guid isPermaLink="true">https://matthewkoscak.com/blog/simple-framework-enterprise-ai/</guid><description>The AI Ladder — a four-step framework to get from siloed data to business insights driven by machine learning.</description><pubDate>Wed, 20 Dec 2023 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Picture this:&lt;/p&gt;
&lt;p&gt;It&apos;s Monday morning, you arrive at work, and you get an email with a list of customers that are set to churn from your business this week. You send them a marketing promotion and… BAM, they renew for another year instead of churning!&lt;/p&gt;
&lt;p&gt;This used to be fantasy. With AI, it&apos;s quickly becoming a reality. Businesses can take their raw data and turn it into unprecedented insights to get ahead of their competition.&lt;/p&gt;
&lt;p&gt;But let&apos;s be real — it&apos;s difficult to do!&lt;/p&gt;
&lt;p&gt;Enter the AI Ladder: a four-step framework to get from messy, siloed data to AI-powered business insights across your company. Each step of the AI ladder involves data. So before we jump into this framework, let&apos;s quickly answer the question — what exactly is data in the age of AI?&lt;/p&gt;
&lt;h3&gt;What is Data?&lt;/h3&gt;
&lt;p&gt;We know data as the information that flows through our digital world. There are various types of data, which fall into three categories:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Structured&lt;/strong&gt; — neatly organized into tables and rows, like a spreadsheet&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Semi-structured&lt;/strong&gt; — think web documents, JSON files, etc.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Unstructured&lt;/strong&gt; — like the freeform text you find in emails or social media posts&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;People tend to think of data as just the structured kind. That is far from true! The companies that will get ahead are those that utilize ALL available data.&lt;/p&gt;
&lt;p&gt;Okay, so you have your data. It&apos;s in its raw format, siloed and scattered. How do we get from raw, messy data to actionable business insights (real AI)? Enter our framework — the AI Ladder.&lt;/p&gt;
&lt;p&gt;The four rungs of the AI ladder, which we will go through one by one, are:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Collect your data&lt;/li&gt;
&lt;li&gt;Organize that data&lt;/li&gt;
&lt;li&gt;Analyze the data (this is the AI part)&lt;/li&gt;
&lt;li&gt;Infuse the results throughout your organization&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;p&gt;Disclaimer — I did not invent this framework. This is IBM&apos;s AI framework that has resulted in successful AI projects at thousands of businesses worldwide.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;Collect&lt;/h3&gt;
&lt;p&gt;Data is the lifeblood of AI. If a business wants to predict churn, learn more about their customers and industry, or understand which trends to invest in, it all starts with their data. Data is harvested from various sources, like:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Databases storing customer information&lt;/li&gt;
&lt;li&gt;Social media posts about your company&lt;/li&gt;
&lt;li&gt;Enterprise Resource Planning (ERP) systems&lt;/li&gt;
&lt;li&gt;Customer Relationship Management (CRM) systems&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Each piece of data is a clue, a tiny fragment of the puzzle that AI systems aim to solve.&lt;/p&gt;
&lt;p&gt;Collecting relevant data from all available sources is the first step toward AI. But collecting data isn&apos;t enough. We have to make sure our data is high quality and accessible before it becomes useful.&lt;/p&gt;
&lt;h3&gt;Organize&lt;/h3&gt;
&lt;p&gt;Data, in its natural state, can be messy and unruly. Cleaning and preparing data is the artisanal craft of data scientists, ensuring that AI algorithms can work their magic effectively.&lt;/p&gt;
&lt;p&gt;Businesses have to make sure that their data is:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Protected&lt;/li&gt;
&lt;li&gt;Accessible&lt;/li&gt;
&lt;li&gt;High quality&lt;/li&gt;
&lt;li&gt;Trustworthy&lt;/li&gt;
&lt;li&gt;Traceable (lineage)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If your data is lacking in any of these departments, you&apos;re just wasting your time. You can have the most talented data scientists in the world working with the most modern machine learning algorithms available… but if the data is bad? It&apos;s all a waste.&lt;/p&gt;
&lt;p&gt;Garbage in = garbage out.&lt;/p&gt;
&lt;p&gt;Tools like data catalogs, data warehouses, and other integration tooling are helpful when it comes to creating a trusted, accessible, business-ready data foundation.&lt;/p&gt;
&lt;p&gt;Once data is organized and accessible, the real fun begins.&lt;/p&gt;
&lt;h3&gt;Analyze&lt;/h3&gt;
&lt;p&gt;Now it&apos;s time for the magic. Here is where we apply AI to our data to give us insights and answers we couldn&apos;t find ourselves. The thing is, AI has turned into a catch-all term… but what is it really?&lt;/p&gt;
&lt;p&gt;Summed up: Artificial Intelligence is when machines have the ability to process information like humans.&lt;/p&gt;
&lt;p&gt;When most people think of AI, they think of SkyNet and the Terminator.&lt;/p&gt;
&lt;p&gt;But you aren&apos;t most people. You are a technologist! You likely think of AI as ChatGPT and the Transformer architecture (a type of advanced AI model used for understanding and generating human language).&lt;/p&gt;
&lt;p&gt;In reality, AI is more of a concept. The Transformer is just a more relevant deep learning architecture that has been popularized recently. ChatGPT, the Transformer architecture, and most data science as a whole can be accurately captured as Machine Learning.&lt;/p&gt;
&lt;p&gt;Machine learning is a branch of AI which focuses on using data and algorithms to imitate the way humans learn. These algorithms are typically built using advanced tools like TensorFlow and PyTorch.&lt;/p&gt;
&lt;p&gt;Some great examples of machine learning in action are the Netflix recommendation engine, or self-driving cars.&lt;/p&gt;
&lt;p&gt;Using data and statistics, algorithms are trained to make insights and predictions about the subject at hand. For us at home, it&apos;s the right Netflix movie. For enterprises? It&apos;s scenarios like:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Who is the next customer to churn from my business?&lt;/li&gt;
&lt;li&gt;How much should we budget for advertising in the coming fiscal year?&lt;/li&gt;
&lt;li&gt;How much should we charge for our products to meet next year&apos;s revenue targets?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These insights subsequently drive decision-making within different segments of the business, ideally impacting key growth metrics. All because of the data!&lt;/p&gt;
&lt;h3&gt;Infuse&lt;/h3&gt;
&lt;p&gt;The journey up the AI Ladder reaches its pinnacle in the &quot;Infuse&quot; stage — where the true value of your efforts comes to life.&lt;/p&gt;
&lt;p&gt;Imagine this: data is not just analyzed; it&apos;s woven into the very fabric of your enterprise, driving innovation and efficiency at every level.&lt;/p&gt;
&lt;p&gt;From enhancing customer experiences to streamlining operations, from bolstering risk management to revolutionizing financial strategies — infusion is the critical leap from potential to reality. Infusing results ensures that the insights gathered from your data don&apos;t just remain a theoretical exercise.&lt;/p&gt;
&lt;h3&gt;Summary&lt;/h3&gt;
&lt;p&gt;By following the AI Ladder — collecting and organizing your data, analyzing your trusted data using Machine Learning and AI, and infusing the insights across your business…&lt;/p&gt;
&lt;p&gt;You and your business don&apos;t just adapt to the future; you actively create it.&lt;/p&gt;
&lt;p&gt;In the game of business, you either adapt or get left behind. When it comes to data, where does your business stand?&lt;/p&gt;
</content:encoded><category>work</category></item></channel></rss>