{"id":12740,"date":"2024-01-22T16:35:36","date_gmt":"2024-01-22T15:35:36","guid":{"rendered":"https:\/\/flaven.fr\/?p=12740"},"modified":"2026-09-16T11:45:25","modified_gmt":"2026-09-16T09:45:25","slug":"navigating-the-data-landscape-exploring-key-elements-of-superset-and-kafka-for-a-real-time-analytics-platform","status":"publish","type":"post","link":"https:\/\/flaven.fr\/2024\/01\/navigating-the-data-landscape-exploring-key-elements-of-superset-and-kafka-for-a-real-time-analytics-platform\/","title":{"rendered":"Navigating the Data Landscape: Exploring Key Elements of Superset and Kafka for a Real-Time Analytics Platform"},"content":{"rendered":"<p>I changed the nature of my personal sprint objective, moving away slightly from AI concerns to reconnect with more general considerations about Data and its processing: from collection to its visualization through its &#8220;processing&#8221;. Ultimately, of course, this treatment could be injected with AI or ML. As always, when we start thinking about such a vast subject, the first question is what do we want to land on to define the scope? In this case, I wondered how to approach the question of data.<\/p>\n<p>So, according to me and after compiling several resources, finally the two things that seem most important to me for now:<\/p>\n<ul>\n<li>How can I improve visualisation of existing data e.g csv for instance?<\/li>\n<li>What are the ways to improve data collection?<\/li>\n<\/ul>\n<p> <b>For this post, you can find all files for each project on my GitHub account. See <a href=\"https:\/\/github.com\/bflaven\/BlogArticlesExamples\/tree\/master\/how_to_use_superset_kafka_agile2\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/bflaven\/BlogArticlesExamples\/tree\/master\/how_to_use_superset_kafka_agile2<\/a><\/b><\/p>\n<h2>Key-ideas that should drives a POC<\/h2>\n<p>Like always, I read some stuff that I found inspiring and note everything down. Sometimes, I found some consolations and some advice that act like mantras when you start a POC to avoid the WIP&#8217;s hell.<\/p>\n<blockquote><p>Learning is an active process. We learn by doing. Only knowledge that is used sticks in your mind. &#8211; Dale Carnegie<\/p><\/blockquote>\n<p><b>For records, some good stuff from Agile2<\/b><\/p>\n<p>Apparently, Agile is dead long live to Agile2.<\/p>\n<p>I just read this article: <a href=\"https:\/\/medium.com\/developer-rants\/agile-has-failed-officially-8136b0522c49\" target=\"_blank\" rel=\"noopener\">https:\/\/medium.com\/developer-rants\/agile-has-failed-officially-8136b0522c49<\/a><\/p>\n<p>Funny, this reminds me of several things:<br \/>\nLike any belief or ideology, it is beneficial to question\/criticize any &#8220;dominant&#8221; model of thought. Quite provocative and indeed, sensible for two reasons:<\/p>\n<ol>\n<li>Agile without leadership is worthless, it amounts to submitting to stupid and pointless formalism \ud83d\ude42<\/li>\n<li>Agile 2 is also a clever way to sell even more, it&#8217;s a bit like Persil laundry detergent, a new formula. We sell you the same product but with extra soul. <\/li>\n<\/ol>\n<p><b>A good reminder to meditate. <\/b><\/p>\n<blockquote><p>At some point, a project must produce a final product. <\/p><\/blockquote>\n<p><b>Some other excerpts from the Agile2 core values on some specific aspects for project management. <\/b><\/p>\n<p><b>(i) Planning, Transition &#038; Transformation<\/b><\/p>\n<ul>\n<li>Any initiative requires both a vision or goal, and a flexible, steerable, outcome-oriented plan. <\/li>\n<li>Any significant transformation is mostly a learning journey \u2013 not merely a process change. <\/li>\n<li>Product development is mostly a learning journey \u2013 not merely an &#8220;implementation.&#8221;<\/li>\n<\/ul>\n<p><b>(ii) Product, Portfolio &#038; Stakeholders<\/b><\/p>\n<ul>\n<li>Obtain feedback from the market and stakeholders continuously.<\/li>\n<li>Work iteratively in small batches.<\/li>\n<li>The only proof of value is a business outcome.<\/li>\n<li>Organizations need an \u201cinception framework\u201d tailored to their needs.<\/li>\n<li>Create documentation to share and deepen understanding.<\/li>\n<\/ul>\n<p><b>(iii) Continuous Improvement<\/b><\/p>\n<ul>\n<li>Place limits on things that cause drag.<\/li>\n<li>Integrate early and often.<\/li>\n<\/ul>\n<h2>Streamline the data analytics flow&#8230;<\/h2>\n<p>Anyway, let&#8217;s get back to the main course. I was about to make a complete benchmark among the market solutions: Superset, Redash and even ClickHouse. But, finally Superset is enough for my product discovery.<\/p>\n<p>I was looking for some ideas on how to improve data analytics flow. Indeed, it is always useful &#8220;to set up a system that allows you to get a deeper understanding of the behaviour of your customers&#8221;.<\/p>\n<p>Source: <a href=\"https:\/\/xebia.com\/blog\/real-time-analytics-divolte-kafka-druid-superset\/\" target=\"_blank\" rel=\"noopener\">https:\/\/xebia.com\/blog\/real-time-analytics-divolte-kafka-druid-superset\/<\/a><\/p>\n<p>Having an alternative pipeline that could be called &#8220;real-time analytics platform&#8221; can help to better perform:<\/p>\n<p><b>Descriptive analysis:<\/b> either the act of analyzing the data and describing what they say at a given time;<\/p>\n<p><b>Predictive analysis:<\/b> predicting a potential result based on data extracted from past or current activities.<\/p>\n<p>Source: <a href=\"https:\/\/betterprogramming.pub\/building-an-order-delivery-analytics-application-with-fastapi-kafka-apache-pinot-and-dash-part-ca276a3ee631\" target=\"_blank\" rel=\"noopener\">https:\/\/betterprogramming.pub\/building-an-order-delivery-analytics-application-with-fastapi-kafka-apache-pinot-and-dash-part-ca276a3ee631<\/a><\/p>\n<p>Based on these 2 posts, I decide to go for :<\/p>\n<ol>\n<li>Improve visualisation of existing data with Superset.<\/li>\n<li>Explore quickly Kafka to improve data collection.<\/li>\n<\/ol>\n<h2>1. Superset with Docker<\/h2>\n<p>Superset is the most intuitive tool that I found to improve visualisation. Here is a quick way to install and manage Superset with Docker.<\/p>\n<pre>\r\n# go to path\r\ncd \/Users\/brunoflaven\/Documents\/01_work\/blog_articles\/how_to_use_superset\/\r\n\r\n\r\n# command to open docker\r\nopen -a docker\r\n\r\n# clone the dir\r\ngit clone https:\/\/github.com\/apache\/superset.git superset\r\n\r\n\r\n# get into the dir\r\ncd superset\r\n\r\n\r\n# get the superset stuff \r\ndocker compose -f docker-compose-non-dev.yml pull\r\n\r\n# start the superset stuff \r\ndocker compose -f docker-compose-non-dev.yml up\r\n\r\n# start using Superset\r\n# http:\/\/localhost:8088\r\n# username: admin\r\n# password: admin\r\n<\/pre>\n<h2>2. Connecting Superset to Databases<\/h2>\n<p>You need to have some databases e.g. <code>mariadb<\/code>, <code>mongodb<\/code>, <code>mysql<\/code>, <code>postgresql<\/code> installed on your machine to leverage on a database. To be sure to connect Superset to your local database, you need to use the hostname <code>docker.for.mac.host.internal<\/code> instead of <code>localhost<\/code>.<\/p>\n<p>On mac, the best way to do so: install databases, it is to use homebrew. Here are the commands  to install databases.<\/p>\n<pre>\r\n\r\n# list services for database\r\nbrew services list\r\n\r\n\r\n# classical commands before install\r\nbrew update\r\nbrew upgrade\r\nbrew doctor\r\n<\/pre>\n<p>To Install Homebrew if you haven&#8217;t already: https:\/\/brew.sh\/<\/p>\n<pre>\r\n\/bin\/bash -c \"$(curl -fsSL https:\/\/raw.githubusercontent.com\/Homebrew\/install\/main\/install.sh)\"\r\n\r\n# Update the Homebrew formulae:\r\nbrew update\r\n<\/pre>\n<p><b>2.1 MARIADB<\/b><br \/>\nMariaDB is an open-source, community-developed relational database<br \/>\nmanagement system (RDBMS) that serves as a drop-in replacement for MySQL.<br \/>\nIt offers a robust and flexible SQL engine with features such as stored<br \/>\nprocedures, views, subqueries, and triggers. <\/p>\n<p><b>Advantages of MariaDB:<\/b><\/p>\n<ol>\n<li><b>Compatibility:<\/b> MariaDB is highly compatible with MySQL, making it easy<br \/>\nto migrate existing databases without having to rewrite code or modify<br \/>\napplications.<\/li>\n<li><b>Performance:<\/b> MariaDB offers improved performance compared to MySQL<br \/>\nthrough enhancements like optimistic optimization and asynchronous<br \/>\nreplication. This results in faster query processing and reduced latency<br \/>\nin real-time environments.<\/li>\n<li><b>Scalability:<\/b> MariaDB is designed for scalability, with features such as<br \/>\npartitioning that can help handle large datasets efficiently while<br \/>\nensuring optimal performance.<\/li>\n<\/ol>\n<pre>\r\n# Managing the mariadb database\r\n\r\n# mariadb\r\nbrew search mariadb\r\nbrew install mariadb\r\nbrew services start mariadb\r\nbrew services stop mariadb\r\n\r\n# connect to mariadb (no password)\r\nmysql\r\nmysql -u brunoflaven \r\n\r\n# create a root user with all privileges\r\nCREATE USER 'root'@'hostname' IDENTIFIED BY 'root';\r\n# CREATE USER 'root'@'%' IDENTIFIED BY 'root';\r\nSELECT USER,is_role,default_role FROM mysql.user;\r\nGRANT ALL PRIVILEGES ON *.* TO 'root'@localhost IDENTIFIED BY 'root';\r\nFLUSH PRIVILEGES;\r\nSHOW GRANTS FOR 'root'@localhost;\r\n\r\n# connection infos\r\n# select mysql\r\n# add port 3306\r\n# add host docker.for.mac.host.internal or 127.0.0.1\r\n# db_name : mydatabase_try_mariadb\r\n# user: root\r\n# pwd: root\r\n\r\n\r\n\r\n# useful commands\r\n# create databases\r\nCREATE DATABASE try_mariadb;\r\nUSE try_mariadb;\r\nCREATE TABLE testtable\r\n(\r\n id int not null primary key,\r\n name varchar(20) not null,\r\n lastupdate timestamp not null\r\n );\r\n\r\n# insert\r\nINSERT INTO testtable\r\n (id, name, lastupdate)\r\n values (1,'Sample name','2022-09-22 18:53');\r\n\r\nINSERT INTO testtable\r\n (id, name, lastupdate)\r\n values (2,'Sample name 2','2022-09-22 18:54');\r\n\r\n# update\r\nUPDATE testtable set name = 'updated name' where id=1;\r\n\r\n# delete one record with the id equal to 4\r\nDELETE FROM testtable where id = 4;\r\n\r\n# select all content from the table testtable \r\nSELECT * FROM testtable;\r\n\r\n# drop\r\nDROP TABLE testtable;\r\n\r\n# empty\r\nTRUNCATE testtable;\r\n\r\n\r\n\r\n<\/pre>\n<p><b>2.2 POSTGRES<\/b><\/p>\n<p>PostgreSQL (Postgres) is a powerful, open-source object-relational<br \/>\ndatabase system with a strong emphasis on reliability, data integrity, and<br \/>\ncorrectness. It supports a wide range of data types, including<br \/>\ngeographical data, large objects such as images, JSON, and XML documents,<br \/>\nand advanced features like stored procedures, triggers, and rules.<\/p>\n<p><b>Advantages of PostgreSQL:<\/b><\/p>\n<ol>\n<li><b>Robustness:<\/b> Postgres is known for its robustness in handling complex<br \/>\nqueries, concurrency, and reliability. It follows the ACID (Atomicity,<br \/>\nConsistency, Isolation, Durability) principles to ensure data integrity.<\/li>\n<li><b>Extensibility:<\/b> Postgres offers a rich ecosystem with built-in support<br \/>\nfor various languages and data types. Its plugin architecture allows for<br \/>\nseamless integration of new features and functionality without altering<br \/>\nthe core system.<\/li>\n<li><b>Compatibility:<\/b> PostgreSQL is highly compatible with many popular<br \/>\ndatabase systems, including SQL Server, Oracle, MySQL, and DB2. This makes<br \/>\nit easy to migrate existing applications oruser<\/li>\n<\/ol>\n<pre>\r\n\r\n# install and start postgresql with homebrew \r\nbrew search postgresql\r\nbrew install postgresql\r\nbrew services start postgresql\r\nbrew services stop postgresql\r\n\r\n# connect to postgres\r\npsql postgres\r\n\r\n# way_1 to connect to postgresql\r\n# in the console\r\nCREATEUSER -s postgres\r\n# in the postgres client\r\nALTER USER postgres WITH PASSWORD 'password';\r\n\r\n# way_2 to connect to postgresql\r\n\r\n# in the postgres client\r\nCREATE ROLE root WITH LOGIN PASSWORD 'root';\r\nALTER ROLE root CREATEDB;\r\n\r\n# connect to postgres in a terminal\r\npsql postgres\r\n\r\n# your username should be listed\r\npostgres=# \\du\r\n\r\n# let's validate it\r\npostgres=# \\q;\r\n\r\n# and then:\r\npsql -U brunoflaven postgres;\r\npsql -U root postgres;\r\n\r\n# to quit\r\npostgres=# \\q;\r\n\r\n# list all databases\r\npostgres=# \\list;\r\npostgres=# \\l;\r\n\r\n# connect to a certain database\r\npostgres=# \\c; <db name>\r\n\r\n# examples with real postgres databases\r\npostgres=# \\c postgres;\r\npostgres=# \\c mydatabase_try_postgresql;\r\npostgres=# \\c template1;\r\n\r\n# list all tables in the current database using your search_path\r\npostgres=# \\dt;\r\n\r\n\r\n# In postgres, in the console, give a complete creation tables and and insert datas for a database named \"mydatabase_try_postgresql\"\r\n\r\n\r\n# connect to the newly created database\r\n\\c mydatabase_try_postgresql\r\n\r\n# Create 'users' table\r\nCREATE TABLE users (\r\n    user_id SERIAL PRIMARY KEY,\r\n    username VARCHAR(50) NOT NULL,\r\n    email VARCHAR(100) NOT NULL\r\n);\r\n\r\n# Create 'orders' table\r\nCREATE TABLE orders (\r\n    order_id SERIAL PRIMARY KEY,\r\n    user_id INT REFERENCES users(user_id),\r\n    order_date DATE,\r\n    total_amount DECIMAL(10, 2) NOT NULL\r\n);\r\n\r\n\r\n\r\n\r\n# configure postgresql db in superset\r\n# Not working localhost or 127.0.0.1 on Mac\r\n# Working docker.for.mac.host.internal or 127.0.0.1 on Mac\r\n\r\n\r\n# select postgresql\r\n# add port 5432\r\n# add host docker.for.mac.host.internal\r\n# db_name : mydatabase_try_postgresql\r\n# user: postgres\r\n# pwd: password\r\n\r\n\r\n# createdb mydatabase_try_postgresql\r\n# dropdb mydatabase_try_postgresql\r\n<\/pre>\n<p><i>This time, for this POC, I did not install <code>mysql<\/code> and <code>mongodb<\/code> as I want to have a &#8220;quick and dirty&#8221; csv conversion into superset.<\/i><\/p>\n<p><b>Customization with <code>.env<\/code> for Superset<\/b><br \/>\nModify the .env files for environment-specific configurations and install additional Python packages by adding them to requirements-local.txt.<br \/>\nYou can use a combinaison of a docker-compose.yml file and .env file to install Superset with docker-compose.<\/p>\n<pre>\r\n# You can create some_random_base64_string using this command in shell\r\nopenssl rand -base64 42\r\n# OUTPUT: uKqlflwJGdDH\/+NpwuRhJh8mZrNsTGu45OMT7akZhGhaBlOqkkOR0xMP\r\n\r\n# in the mac terminal define the SUPERSET_SECRET_KEY\r\nexport SUPERSET_SECRET_KEY=\"uKqlflwJGdDH\/+NpwuRhJh8mZrNsTGu45OMT7akZhGhaBlOqkkOR0xMP\"\r\n\r\n<\/pre>\n<pre>\r\n# Lists containers (and tells you which images they are spun from)\r\ndocker ps -a                \r\n\r\n# Lists images \r\ndocker images               \r\n\r\n# Removes a stopped container\r\ndocker rm <container_id>    \r\n\r\n# Forces the removal of a running container (uses SIGKILL)\r\ndocker rm -f <container_id> \r\n\r\n# Removes an image\r\n# Will fail if there is a running instance of that image i.e. container\r\ndocker rmi <image_id>       \r\n\r\n\r\n# Forces removal of image even if it is referenced in multiple repositories, \r\n# i.e. same image id given multiple names\/tags \r\n# Will still fail if there is a docker container referencing image\r\ndocker rmi -f <image_id>    \r\n\r\n\r\n# command for docker\r\ndocker info\r\ndocker container prune -a\r\ndocker image prune\r\ndocker volume prune\r\ndocker network prune\r\ndocker system prune\r\ndocker system prune -a\r\n<\/pre>\n<h2>3. Collecting data: Using kafka, a corner stone<\/H2><br \/>\nApache Kafka is a distributed streaming platform that is widely used for building real-time data pipelines and streaming applications. In the context of an analytics application, Kafka plays a crucial role in handling the flow of data between different components of the application. It provides a scalable, fault-tolerant, and high-throughput messaging system that allows seamless communication between various modules of the analytics application.<\/p>\n<p>Here are some key purposes of Kafka within an analytics application:<\/p>\n<ol>\n<li><b>Data Ingestion<\/b>: Kafka acts as a central hub for ingesting data from various sources such as databases, logs, sensors, and other systems. It enables the application to handle large volumes of incoming data in a scalable and efficient manner.<\/li>\n<li><b>Event Streaming<\/b>: Kafka allows the streaming of events in real-time. This is beneficial for analytics applications that require continuous processing of data, enabling real-time insights and analytics.<\/li>\n<li><b>Decoupling of Components<\/b>: Kafka helps in decoupling different components of the analytics application. Producers can publish data to Kafka topics without worrying about who will consume it, and consumers can subscribe to the topics they are interested in.<\/li>\n<li><b>Fault Tolerance and Durability<\/b>: Kafka ensures fault tolerance by replicating data across multiple nodes. This makes it a reliable and durable solution, ensuring that data is not lost in case of failures.<\/li>\n<\/ol>\n<p><i>Source: <a href=\"https:\/\/kafka.apache.org\/\" target=\"_blank\" rel=\"noopener\">https:\/\/kafka.apache.org\/<\/a><\/i><\/p>\n<p><b>We are going to take the most straightforward way on mac, meaning using homebrew like we did previously for database. The commands will almost the same as we will use Homebrew.<\/b><\/p>\n<p>Again, if you need to install homebrew, type in the console, the following command.<\/p>\n<pre>\r\n\/bin\/bash -c \"$(curl -fsSL https:\/\/raw.githubusercontent.com\/Homebrew\/install\/HEAD\/install.sh)\"\r\n<\/pre>\n<p><b>To install kafka with Homebrew<\/b><\/p>\n<pre>\r\nbrew install kafka\r\n<\/pre>\n<p><b>To list the services from Homebrew<\/b><\/p>\n<pre>\r\nbrew services list\r\n<\/pre>\n<p><b>If you&#8217;ve installed Kafka and Zookeeper using Homebrew on your macOS system, you can use the following commands to interact with Kafka and gain an understanding of its general principles.<\/b><\/p>\n<p><b>1. Start Zookeeper:<\/b><br \/>\nZookeeper is a prerequisite for Kafka, and it manages distributed configurations and synchronization between nodes. Open a terminal and start Zookeeper:<\/p>\n<pre>\r\nbrew services start zookeeper\r\n<\/pre>\n<p><b>2. Start Kafka Server:<\/b><\/p>\n<p>Now, start the Kafka server using Homebrew:<\/p>\n<pre>\r\nbrew services start kafka\r\n<\/pre>\n<p>This command will start the Kafka server as a background service.<\/p>\n<p><b>3. Create a Topic:<\/b><\/p>\n<p>Kafka organizes data into topics. Create a Kafka topic to publish and subscribe messages:<\/p>\n<pre>\r\nkafka-topics --create --topic brunotopic1 --bootstrap-server localhost:9092 --partitions 1 --replication-factor 1\r\n<\/pre>\n<p>Replace `brunotopic1` with the desired topic name.<\/p>\n<p><b>4. List Topics:<\/b><\/p>\n<p>List the existing Kafka topics:<\/p>\n<pre>\r\nkafka-topics --list --bootstrap-server localhost:9092\r\n<\/pre>\n<p><b>5. Produce Messages:<\/b><\/p>\n<p>Produce some messages to the topic:<\/p>\n<pre>\r\nkafka-console-producer --topic brunotopic1 --bootstrap-server localhost:9092\r\n<\/pre>\n<p>This command opens a console where you can type messages. Press `Ctrl + D` to exit.<\/p>\n<p><b>6. Consume Messages:<\/b><\/p>\n<p>Open a new terminal and consume messages from the topic:<\/p>\n<pre>\r\nkafka-console-consumer --topic brunotopic1 --bootstrap-server localhost:9092 --from-beginning\r\n<\/pre>\n<p>This command subscribes to the topic and prints incoming messages.<\/p>\n<p><b>7. Describe a Topic:<\/b><\/p>\n<p>Describe the properties of a Kafka topic:<\/p>\n<pre>\r\nkafka-topics --describe --topic brunotopic1 --bootstrap-server localhost:9092\r\n<\/pre>\n<p><b>8. Kafka Commands Documentation:<\/b><\/p>\n<p>Explore additional Kafka commands and options by checking the official documentation:<\/p>\n<pre>\r\nkafka-topics --help\r\nkafka-console-producer --help\r\nkafka-console-consumer --help\r\n<\/pre>\n<p><b>9. Stop Kafka:<\/b><\/p>\n<p>When you&#8217;re done, you can stop the Kafka server:<\/p>\n<pre>\r\nbrew services stop kafka\r\nbrew services stop zookeeper\r\n<\/pre>\n<p>This will stop the Kafka server running as a background service.<\/p>\n<p>These commands provide a basic overview of Kafka&#8217;s functionalities. You can experiment further and refer to the [official documentation](https:\/\/kafka.apache.org\/documentation\/) for more in-depth understanding and configuration options.<\/p>\n<p><b>Using faststream<\/b><\/p>\n<p>To go further, you can leverage on <b>FastStream<\/b>. A kind of <b>FastAPI<\/b> for Kafka. Indeed, FastStream simplifies the process of writing producers and consumers for message queues, handling all the parsing, networking and documentation generation automatically.<\/p>\n<p><i>Source: <a href=\"https:\/\/faststream.airt.ai\/latest\/faststream\/\" target=\"_blank\" rel=\"noopener\">https:\/\/faststream.airt.ai\/latest\/faststream\/<\/a><\/i><\/p>\n<p><H2>More infos<\/H2><br \/>\n<H3>Superset<\/H3><\/p>\n<ul>\n<li>Welcome | Superset<br \/><a href=\"https:\/\/superset.apache.org\/\" target=\"_blank\" rel=\"noopener\">https:\/\/superset.apache.org\/<\/a><\/li>\n<li>Apache Superset Tutorial \u00b7 Start Data Engineering<br \/><a href=\"https:\/\/www.startdataengineering.com\/post\/apache-superset-tutorial\/\" target=\"_blank\" rel=\"noopener\">https:\/\/www.startdataengineering.com\/post\/apache-superset-tutorial\/<\/a><\/li>\n<li>Introduction | Superset<br \/><a href=\"https:\/\/superset.apache.org\/docs\/intro\/\" target=\"_blank\" rel=\"noopener\">https:\/\/superset.apache.org\/docs\/intro\/<\/a><\/li>\n<li>Setting up Superset GitHub Integration: 3 Easy Methods<br \/><a href=\"https:\/\/hevodata.com\/learn\/superset-github\/#l12\" target=\"_blank\" rel=\"noopener\">https:\/\/hevodata.com\/learn\/superset-github\/#l12<\/a><\/li>\n<li>Course Bytes &#8211; YouTube<br \/><a href=\"https:\/\/www.youtube.com\/@coursebytes\" target=\"_blank\" rel=\"noopener\">https:\/\/www.youtube.com\/@coursebytes<\/a><\/li>\n<li>Preset Cloud &#8211; Modern Open Source BI Platform | Preset<br \/><a href=\"https:\/\/preset.io\/product\/\" target=\"_blank\" rel=\"noopener\">https:\/\/preset.io\/product\/<\/a><\/li>\n<li>Get started with Apache Superset and PostgreSQL\u00ae<br \/><a href=\"https:\/\/aiven.io\/blog\/get-started-with-apache-superset-and-postgresql\" target=\"_blank\" rel=\"noopener\">https:\/\/aiven.io\/blog\/get-started-with-apache-superset-and-postgresql<\/a><\/li>\n<li>Tutorial &#8211; Creating your first dashboard \u2014 Apache Superset  documentation<br \/><a href=\"https:\/\/apache-superset.readthedocs.io\/en\/0.28.1\/tutorial.html\" target=\"_blank\" rel=\"noopener\">https:\/\/apache-superset.readthedocs.io\/en\/0.28.1\/tutorial.html<\/a><\/li>\n<li>Introduction \u00e0 Apache Superset &#8211; datacorner par Benoit Cayla<br \/><a href=\"https:\/\/datacorner.fr\/introduction-a-apache-superset\/\" target=\"_blank\" rel=\"noopener\">https:\/\/datacorner.fr\/introduction-a-apache-superset\/<\/a><\/li>\n<li>Documentation Superset \u2014 Restack<br \/><a href=\"https:\/\/www.restack.io\/docs\/superset\" target=\"_blank\" rel=\"noopener\">https:\/\/www.restack.io\/docs\/superset<\/a><\/li>\n<li>GitHub &#8211; apache\/superset: Apache Superset is a Data Visualization and Data Exploration Platform<br \/><a href=\"https:\/\/github.com\/apache\/superset\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/apache\/superset<\/a><\/li>\n<li>Apache Superset Tutorial | Censius Blog<br \/><a href=\"https:\/\/censius.ai\/blogs\/apache-superset-tutorial\" target=\"_blank\" rel=\"noopener\">https:\/\/censius.ai\/blogs\/apache-superset-tutorial<\/a><\/li>\n<li>Fully managed Redash \u2014 Restack<br \/><a href=\"https:\/\/www.restack.io\/store\/redash\" target=\"_blank\" rel=\"noopener\">https:\/\/www.restack.io\/store\/redash<\/a><\/li>\n<li>Apache Superset Overview Video &#8211; YouTube<br \/><a href=\"https:\/\/www.youtube.com\/watch?v=kGfUIOK87V8\" target=\"_blank\" rel=\"noopener\">https:\/\/www.youtube.com\/watch?v=kGfUIOK87V8<\/a><\/li>\n<li>Redash vs Superset: Which data visualization tool should you select? &#8211; YouTube<br \/><a href=\"https:\/\/www.youtube.com\/watch?v=U33wA0gW01M\" target=\"_blank\" rel=\"noopener\">https:\/\/www.youtube.com\/watch?v=U33wA0gW01M<\/a><\/li>\n<li>Comment utiliser l\u2019IA pour l\u2019analyse des donn\u00e9es ? Expliqu\u00e9 avec plusieurs cas d&#8217;utilisation<br \/><a href=\"https:\/\/www.edrawsoft.com\/fr\/ai-tools-tips\/ai-for-data-analysis.html\" target=\"_blank\" rel=\"noopener\">https:\/\/www.edrawsoft.com\/fr\/ai-tools-tips\/ai-for-data-analysis.html<\/a><\/li>\n<li>403 Forbidden<br \/><a href=\"https:\/\/online.edhec.edu\/fr\/blog\/le-role-de-lia-et-du-machine-learning\/\" target=\"_blank\" rel=\"noopener\">https:\/\/online.edhec.edu\/fr\/blog\/le-role-de-lia-et-du-machine-learning\/<\/a><\/li>\n<li>Attention Required! | Cloudflare<br \/><a href=\"https:\/\/geekflare.com\/fr\/ai-data-analysis-tools\/\" target=\"_blank\" rel=\"noopener\">https:\/\/geekflare.com\/fr\/ai-data-analysis-tools\/<\/a><\/li>\n<li>6 Best AI Tools for Data Analysts (January 2024) &#8211; Unite.AI<br \/><a href=\"https:\/\/www.unite.ai\/ai-tools-data-analysts\/\" target=\"_blank\" rel=\"noopener\">https:\/\/www.unite.ai\/ai-tools-data-analysts\/<\/a><\/li>\n<li>AutoML and AutoAI &#8211; IBM Watson Studio<br \/><a href=\"https:\/\/www.ibm.com\/products\/watson-studio\/autoai\" target=\"_blank\" rel=\"noopener\">https:\/\/www.ibm.com\/products\/watson-studio\/autoai<\/a><\/li>\n<li>How to Perform Data Analysis in Python Using the OpenAI API \u2014 SitePoint<br \/><a href=\"https:\/\/www.sitepoint.com\/openai-api-python-data-analysis\/\" target=\"_blank\" rel=\"noopener\">https:\/\/www.sitepoint.com\/openai-api-python-data-analysis\/<\/a><\/li>\n<li>GitHub &#8211; Apress\/python-data-analytics-2e: Source Code for &#8216;Python Data Analytics, 2nd Edition&#8217; by Fabio Nelli<br \/><a href=\"https:\/\/github.com\/Apress\/python-data-analytics-2e\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/Apress\/python-data-analytics-2e<\/a><\/li>\n<li>Python for Data Analysis, 3E<br \/><a href=\"https:\/\/wesmckinney.com\/book\/\" target=\"_blank\" rel=\"noopener\">https:\/\/wesmckinney.com\/book\/<\/a><\/li>\n<li>100+ AI Use Cases &#038; Applications: In-Depth Guide for 2024<br \/><a href=\"https:\/\/research.aimultiple.com\/ai-usecases\/#ai-use-cases-for-marketing\" target=\"_blank\" rel=\"noopener\">https:\/\/research.aimultiple.com\/ai-usecases\/#ai-use-cases-for-marketing<\/a><\/li>\n<li>Devinterview.io \u2013 Ace your next tech interview with confidence in 2024.<br \/><a href=\"https:\/\/devinterview.io\/\" target=\"_blank\" rel=\"noopener\">https:\/\/devinterview.io\/<\/a><\/li>\n<li>GitHub &#8211; DerekKane\/Use-Cases-Data-Science: A list of working examples of Data Science Use Cases and Applications by Industry<br \/><a href=\"https:\/\/github.com\/DerekKane\/Use-Cases-Data-Science\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/DerekKane\/Use-Cases-Data-Science<\/a><\/li>\n<li>Fast Open-Source OLAP DBMS &#8211; ClickHouse<br \/><a href=\"https:\/\/clickhouse.com\/\" target=\"_blank\" rel=\"noopener\">https:\/\/clickhouse.com\/<\/a><\/li>\n<li>GitHub &#8211; ClickHouse\/ClickHouse: ClickHouse\u00ae is a free analytics DBMS for big data<br \/><a href=\"https:\/\/github.com\/ClickHouse\/ClickHouse\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/ClickHouse\/ClickHouse<\/a><\/li>\n<li>GitHub &#8211; apache\/zeppelin: Web-based notebook that enables data-driven, interactive data analytics and collaborative documents with SQL, Scala and more.<br \/><a href=\"https:\/\/github.com\/apache\/zeppelin\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/apache\/zeppelin<\/a><\/li>\n<li>GitHub &#8211; datafuselabs\/databend: Modern alternative to Snowflake. Cost-effective and simple for massive-scale analytics. Cloud: https:\/\/databend.com<br \/><a href=\"https:\/\/github.com\/datafuselabs\/databend\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/datafuselabs\/databend<\/a><\/li>\n<li>GitHub &#8211; apache\/spark: Apache Spark &#8211; A unified analytics engine for large-scale data processing<br \/><a href=\"https:\/\/github.com\/apache\/spark\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/apache\/spark<\/a><\/li>\n<li>GitHub &#8211; metabase\/metabase: The simplest, fastest way to get business intelligence and analytics to everyone in your company :yum:<br \/><a href=\"https:\/\/github.com\/metabase\/metabase\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/metabase\/metabase<\/a><\/li>\n<li>GitHub &#8211; getredash\/redash: Make Your Company Data Driven. Connect to any data source, easily visualize, dashboard and share your data.<br \/><a href=\"https:\/\/github.com\/getredash\/redash\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/getredash\/redash<\/a><\/li>\n<li>GitHub &#8211; microsoft\/ML-For-Beginners: 12 weeks, 26 lessons, 52 quizzes, classic Machine Learning for all<br \/><a href=\"https:\/\/github.com\/microsoft\/ML-For-Beginners\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/microsoft\/ML-For-Beginners<\/a><\/li>\n<li>Fast Open-Source OLAP DBMS &#8211; ClickHouse<br \/><a href=\"https:\/\/clickhouse.com\/\" target=\"_blank\" rel=\"noopener\">https:\/\/clickhouse.com\/<\/a><\/li>\n<li>How to setup PostgreSQL on MacOS<br \/><a href=\"https:\/\/www.robinwieruch.de\/postgres-sql-macos-setup\/\" target=\"_blank\" rel=\"noopener\">https:\/\/www.robinwieruch.de\/postgres-sql-macos-setup\/<\/a><\/li>\n<li>Apache Superset on Mac M1 Guide \u2014 Restack<br \/><a href=\"https:\/\/www.restack.io\/docs\/superset-knowledge-apache-superset-mac-m1-guide\" target=\"_blank\" rel=\"noopener\">https:\/\/www.restack.io\/docs\/superset-knowledge-apache-superset-mac-m1-guide<\/a><\/li>\n<li>Advanced Apache Superset for Data Engineers \u2014 Restack<br \/><a href=\"https:\/\/www.restack.io\/docs\/superset-advanced-apache-superset-data-engineers\" target=\"_blank\" rel=\"noopener\">https:\/\/www.restack.io\/docs\/superset-advanced-apache-superset-data-engineers<\/a><\/li>\n<li>GitHub &#8211; kkiaune\/emails-classification: Emails classification template using python. Technology stack: docker-compose, jupyter notebooks, fastapi, airflow, posgreSQL, superset, minio, portainer, pgAdmin<br \/><a href=\"https:\/\/github.com\/kkiaune\/emails-classification\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/kkiaune\/emails-classification<\/a><\/li>\n<li>GitHub &#8211; JDiego199\/superset-docker-compose<br \/><a href=\"https:\/\/github.com\/JDiego199\/superset-docker-compose\/\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/JDiego199\/superset-docker-compose\/<\/a><\/li>\n<li>GitHub &#8211; mauricioobgo\/StreamingProject: This Docker Compose project establishes a data pipeline with Apache Spark, Kafka, Cassandra, MySQL, and Superset. Engineered for real-time processing of streaming data, it stores results in distributed databases and offers visualization through Superset dashboards.<br \/><a href=\"https:\/\/github.com\/mauricioobgo\/StreamingProject\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/mauricioobgo\/StreamingProject<\/a><\/li>\n<li>GitHub &#8211; insight-infrastructure\/superset-docker-compose: Superset deployed with docker-compose and features<br \/><a href=\"https:\/\/github.com\/insight-infrastructure\/superset-docker-compose\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/insight-infrastructure\/superset-docker-compose<\/a><\/li>\n<li>Supercharging Apache Superset | by Airbnb | The Airbnb Tech Blog<br \/><a href=\"https:\/\/medium.com\/airbnb-engineering\/supercharging-apache-superset-b1a2393278bd\" target=\"_blank\" rel=\"noopener\">https:\/\/medium.com\/airbnb-engineering\/supercharging-apache-superset-b1a2393278bd<\/a><\/li>\n<li>Running Apache Superset at Scale. A set of recommendations and starting\u2026 | by Mahdi Karabiben | Towards Data Science<br \/><a href=\"https:\/\/towardsdatascience.com\/running-apache-superset-at-scale-1539e3945093\" target=\"_blank\" rel=\"noopener\">https:\/\/towardsdatascience.com\/running-apache-superset-at-scale-1539e3945093<\/a><\/li>\n<li>How Airbnb Achieved Metric Consistency at Scale | by Robert Chang | The Airbnb Tech Blog | Medium<br \/><a href=\"https:\/\/medium.com\/airbnb-engineering\/how-airbnb-achieved-metric-consistency-at-scale-f23cc53dea70\" target=\"_blank\" rel=\"noopener\">https:\/\/medium.com\/airbnb-engineering\/how-airbnb-achieved-metric-consistency-at-scale-f23cc53dea70<\/a><\/li>\n<li>How Airbnb Achieved Metric Consistency at Scale | by Robert Chang | The Airbnb Tech Blog | Medium<br \/><a href=\"https:\/\/medium.com\/airbnb-engineering\/how-airbnb-achieved-metric-consistency-at-scale-f23cc53dea70\" target=\"_blank\" rel=\"noopener\">https:\/\/medium.com\/airbnb-engineering\/how-airbnb-achieved-metric-consistency-at-scale-f23cc53dea70<\/a><\/li>\n<li>Pricing | Preset<br \/><a href=\"https:\/\/preset.io\/pricing\/\" target=\"_blank\" rel=\"noopener\">https:\/\/preset.io\/pricing\/<\/a><\/li>\n<li>Connecting Your Data<br \/><a href=\"https:\/\/docs.preset.io\/v1\/docs\/connecting-your-data\" target=\"_blank\" rel=\"noopener\">https:\/\/docs.preset.io\/v1\/docs\/connecting-your-data<\/a><\/li>\n<li>How to build a real-time analytics platform using Kafka, ksqlDB and ClickHouse ? | by Florian Hussonnois | StreamThoughts | Medium<br \/><a href=\"https:\/\/medium.com\/streamthoughts\/how-to-build-a-real-time-analytical-platform-using-kafka-ksqldb-and-clickhouse-bfabd65d05e4\" target=\"_blank\" rel=\"noopener\">https:\/\/medium.com\/streamthoughts\/how-to-build-a-real-time-analytical-platform-using-kafka-ksqldb-and-clickhouse-bfabd65d05e4<\/a><\/li>\n<li>Build a Real-Time Event Streaming Pipeline with Kafka, BigQuery &#038; Looker Studio | by Tobi Sam | Towards Data Science<br \/><a href=\"https:\/\/towardsdatascience.com\/real-time-event-streaming-with-kafka-bigquery-69c3baebb51e\" target=\"_blank\" rel=\"noopener\">https:\/\/towardsdatascience.com\/real-time-event-streaming-with-kafka-bigquery-69c3baebb51e<\/a><\/li>\n<li>Stream data with open source Kafka by Aiven analyze with BigQuery | Google Cloud Blog<br \/><a href=\"https:\/\/cloud.google.com\/blog\/products\/data-analytics\/stream-data-with-open-source-kafka-by-aiven-analyze-with-bigquery\" target=\"_blank\" rel=\"noopener\">https:\/\/cloud.google.com\/blog\/products\/data-analytics\/stream-data-with-open-source-kafka-by-aiven-analyze-with-bigquery<\/a><\/li>\n<li>Restack &#8211; YouTube<br \/><a href=\"https:\/\/www.youtube.com\/@Restackio\" target=\"_blank\" rel=\"noopener\">https:\/\/www.youtube.com\/@Restackio<\/a><\/li>\n<li>Better Data Science &#8211; YouTube<br \/><a href=\"https:\/\/www.youtube.com\/@BetterDataScience\/videos\" target=\"_blank\" rel=\"noopener\">https:\/\/www.youtube.com\/@BetterDataScience\/videos<\/a><\/li>\n<li>Overview of Real-Time Analytics &#8211; Microsoft Fabric | Microsoft Learn<br \/><a href=\"https:\/\/learn.microsoft.com\/en-us\/fabric\/real-time-analytics\/overview#what-makes-real-time-analytics-unique\" target=\"_blank\" rel=\"noopener\">https:\/\/learn.microsoft.com\/en-us\/fabric\/real-time-analytics\/overview#what-makes-real-time-analytics-unique<\/a><\/li>\n<li>Build a real-time analytics pipeline in less time than your morning bus ride<br \/><a href=\"https:\/\/aiven.io\/blog\/build-a-real-time-analytics-pipeline\" target=\"_blank\" rel=\"noopener\">https:\/\/aiven.io\/blog\/build-a-real-time-analytics-pipeline<\/a><\/li>\n<li>What is real-time analytics? &#8211; DEV Community<br \/><a href=\"https:\/\/dev.to\/tinybirdco\/what-is-real-time-analytics-5ah3\" target=\"_blank\" rel=\"noopener\">https:\/\/dev.to\/tinybirdco\/what-is-real-time-analytics-5ah3<\/a><\/li>\n<li>Building real-time analytics into your next project &#8211; DEV Community<br \/><a href=\"https:\/\/dev.to\/tinybirdco\/building-real-time-analytics-into-your-next-project-3b6n\" target=\"_blank\" rel=\"noopener\">https:\/\/dev.to\/tinybirdco\/building-real-time-analytics-into-your-next-project-3b6n<\/a><\/li>\n<li>Real-time analytics with stream processing and OLAP | CNCF<br \/><a href=\"https:\/\/www.cncf.io\/blog\/2023\/08\/08\/real-time-analytics-with-stream-processing-and-olap\/\" target=\"_blank\" rel=\"noopener\">https:\/\/www.cncf.io\/blog\/2023\/08\/08\/real-time-analytics-with-stream-processing-and-olap\/<\/a><\/li>\n<li>Real-time analytics on big data architecture &#8211; Azure Solution Ideas | Microsoft Learn<br \/><a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/architecture\/solution-ideas\/articles\/real-time-analytics\" target=\"_blank\" rel=\"noopener\">https:\/\/learn.microsoft.com\/en-us\/azure\/architecture\/solution-ideas\/articles\/real-time-analytics<\/a><\/li>\n<li>Real-time Databases: What developers need to know<br \/><a href=\"https:\/\/www.tinybird.co\/blog-posts\/real-time-databases-what-developers-need-to-know\" target=\"_blank\" rel=\"noopener\">https:\/\/www.tinybird.co\/blog-posts\/real-time-databases-what-developers-need-to-know<\/a><\/li>\n<li>Real time analytics: Airflow + Kafka + Druid + Superset &#8211; [Eng] | Duy Nguyen<br \/><a href=\"https:\/\/duynguyenngoc.com\/posts\/real-time-analytics-airflow-kafka-druid-superset\/\" target=\"_blank\" rel=\"noopener\">https:\/\/duynguyenngoc.com\/posts\/real-time-analytics-airflow-kafka-druid-superset\/<\/a><\/li>\n<li>Realtime data streaming with Apache Kafka, Apache Pinot, Apache Druid and Apache Superset | by Bruno Cardoso Farias | Medium<br \/><a href=\"https:\/\/medium.com\/@emergeit\/realtime-data-streaming-with-apache-kafka-apache-pinot-apache-druid-and-apache-superset-e67161eb9666\" target=\"_blank\" rel=\"noopener\">https:\/\/medium.com\/@emergeit\/realtime-data-streaming-with-apache-kafka-apache-pinot-apache-druid-and-apache-superset-e67161eb9666<\/a><\/li>\n<li>Unlock Advanced Data Visualization: The Complete Guide to Installing and Using Apache Superset on Linux | by Rathish Kumar B | Level Up Coding<br \/><a href=\"https:\/\/levelup.gitconnected.com\/unlock-advanced-data-visualization-the-complete-guide-to-installing-and-using-apache-superset-on-afecb3c63889\" target=\"_blank\" rel=\"noopener\">https:\/\/levelup.gitconnected.com\/unlock-advanced-data-visualization-the-complete-guide-to-installing-and-using-apache-superset-on-afecb3c63889<\/a><\/li>\n<li>Kafka in 100 Seconds &#8211; YouTube<br \/><a href=\"https:\/\/www.youtube.com\/watch?v=uvb00oaa3k8\" target=\"_blank\" rel=\"noopener\">https:\/\/www.youtube.com\/watch?v=uvb00oaa3k8<\/a><\/li>\n<li>Apache Superset: Installing locally is easy using the makefile &#8211; DEV Community<br \/><a href=\"https:\/\/dev.to\/lyndsiwilliams\/apache-superset-installing-locally-is-easy-using-the-makefile-4ofi\" target=\"_blank\" rel=\"noopener\">https:\/\/dev.to\/lyndsiwilliams\/apache-superset-installing-locally-is-easy-using-the-makefile-4ofi<\/a><\/li>\n<li>Setting up a local Apache Kafka instance for testing &#8211; Sahan Serasinghe &#8211; Engineering Blog<br \/><a href=\"https:\/\/sahansera.dev\/setting-up-kafka-locally-for-testing\/\" target=\"_blank\" rel=\"noopener\">https:\/\/sahansera.dev\/setting-up-kafka-locally-for-testing\/<\/a><\/li>\n<li>Postico 2<br \/><a href=\"https:\/\/eggerapps.at\/postico2\/\" target=\"_blank\" rel=\"noopener\">https:\/\/eggerapps.at\/postico2\/<\/a><\/li>\n<li>DBeaver Community | Free Universal Database Tool<br \/><a href=\"https:\/\/dbeaver.io\/\" target=\"_blank\" rel=\"noopener\">https:\/\/dbeaver.io\/<\/a><\/li>\n<li>Manage MySQL, MongoDB and PostgreSQL using Homebrew Services<br \/><a href=\"https:\/\/www.chrisjmendez.com\/2017\/02\/04\/homebrew-services\/\" target=\"_blank\" rel=\"noopener\">https:\/\/www.chrisjmendez.com\/2017\/02\/04\/homebrew-services\/<\/a><\/li>\n<li>Install MongoDB, MySQL, and Postgres using Homebrew<br \/><a href=\"https:\/\/www.chrisjmendez.com\/2016\/05\/09\/easy-mongodb-and-mysql-management-on-a-mac\/\" target=\"_blank\" rel=\"noopener\">https:\/\/www.chrisjmendez.com\/2016\/05\/09\/easy-mongodb-and-mysql-management-on-a-mac\/<\/a><\/li>\n<li>GitHub &#8211; datablist\/sample-csv-files<br \/><a href=\"https:\/\/github.com\/datablist\/sample-csv-files\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/datablist\/sample-csv-files<\/a><\/li>\n<li>Tweets Sample | Kaggle<br \/><a href=\"https:\/\/www.kaggle.com\/datasets\/ahmedshahriarsakib\/tweet-sample\" target=\"_blank\" rel=\"noopener\">https:\/\/www.kaggle.com\/datasets\/ahmedshahriarsakib\/tweet-sample<\/a><\/li>\n<li>Expanding Visibility With Apache Kafka &#8211; Salesforce Engineering Blog<br \/><a href=\"https:\/\/engineering.salesforce.com\/expanding-visibility-with-apache-kafka-e305b12c4aba\/\" target=\"_blank\" rel=\"noopener\">https:\/\/engineering.salesforce.com\/expanding-visibility-with-apache-kafka-e305b12c4aba\/<\/a><\/li>\n<li>How to setup Apache SuperSet &#8211; YouTube<br \/><a href=\"https:\/\/www.youtube.com\/watch?v=08jK2FbPMNI\" target=\"_blank\" rel=\"noopener\">https:\/\/www.youtube.com\/watch?v=08jK2FbPMNI<\/a><\/li>\n<\/ul>\n<p><H3>Kafka<\/H3><\/p>\n<ul>\n<li>Building an Order Delivery Analytics Application With FastAPI, Kafka, Apache Pinot, and Dash, Part 1 | by Valerio Uberti | Better Programming<br \/><a href=\"https:\/\/betterprogramming.pub\/building-an-order-delivery-analytics-application-with-fastapi-kafka-apache-pinot-and-dash-part-ca276a3ee631\" target=\"_blank\" rel=\"noopener\">https:\/\/betterprogramming.pub\/building-an-order-delivery-analytics-application-with-fastapi-kafka-apache-pinot-and-dash-part-ca276a3ee631<\/a><\/li>\n<li>Building an Order Delivery Analytics Application with FastAPI, Kafka, Apache Pinot, and Dash, Part 2 | by Valerio Uberti | Better Programming<br \/><a href=\"https:\/\/betterprogramming.pub\/building-an-order-delivery-analytics-application-with-fastapi-kafka-apache-pinot-and-dash-part-f98202296d64\" target=\"_blank\" rel=\"noopener\">https:\/\/betterprogramming.pub\/building-an-order-delivery-analytics-application-with-fastapi-kafka-apache-pinot-and-dash-part-f98202296d64<\/a><\/li>\n<li>Generating production-level streaming microservices using AI &#8211; DEV Community<br \/><a href=\"https:\/\/dev.to\/airtai\/generating-production-level-streaming-microservices-using-ai-41ji\" target=\"_blank\" rel=\"noopener\">https:\/\/dev.to\/airtai\/generating-production-level-streaming-microservices-using-ai-41ji<\/a><\/li>\n<li>An asynchronous Consumer and Producer API for Kafka with FastAPI in Python &#8211; Home<br \/><a href=\"https:\/\/vinybrasil.github.io\/portfolio\/kafkafastapiasync\/\" target=\"_blank\" rel=\"noopener\">https:\/\/vinybrasil.github.io\/portfolio\/kafkafastapiasync\/<\/a><\/li>\n<li>GitHub &#8211; pedrodeoliveira\/fastapi-kafka-consumer: A Python RESTful API using FastAPI with a Kafka Consumer<br \/><a href=\"https:\/\/github.com\/pedrodeoliveira\/fastapi-kafka-consumer\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/pedrodeoliveira\/fastapi-kafka-consumer<\/a><\/li>\n<li>FastStream: Python&#8217;s framework for Efficient Message Queue Handling &#8211; DEV Community<br \/><a href=\"https:\/\/dev.to\/airtai\/faststream-pythons-framework-for-efficient-message-queue-handling-3pd2\" target=\"_blank\" rel=\"noopener\">https:\/\/dev.to\/airtai\/faststream-pythons-framework-for-efficient-message-queue-handling-3pd2<\/a><\/li>\n<li>Getting Started &#8211; FastStream<br \/><a href=\"https:\/\/faststream.airt.ai\/latest\/getting-started\/\" target=\"_blank\" rel=\"noopener\">https:\/\/faststream.airt.ai\/latest\/getting-started\/<\/a><\/li>\n<li>Streamlining Asynchronous Services with FastStream | NATS blog<br \/><a href=\"https:\/\/nats.io\/blog\/nats-supported-by-faststream\/\" target=\"_blank\" rel=\"noopener\">https:\/\/nats.io\/blog\/nats-supported-by-faststream\/<\/a><\/li>\n<li>Kafka &#8211; DEV Community<br \/><a href=\"https:\/\/dev.to\/t\/kafka\" target=\"_blank\" rel=\"noopener\">https:\/\/dev.to\/t\/kafka<\/a><\/li>\n<li>Demystifying Apache Kafka: An exploratory journey for newcomers &#8211; DEV Community<br \/><a href=\"https:\/\/dev.to\/ladmerc\/demystifying-apache-kafka-an-exploratory-journey-for-newcomers-18k9\" target=\"_blank\" rel=\"noopener\">https:\/\/dev.to\/ladmerc\/demystifying-apache-kafka-an-exploratory-journey-for-newcomers-18k9<\/a><\/li>\n<li>Install Apache Kafka on macOS using Homebrew &#8211; DEV Community<br \/><a href=\"https:\/\/dev.to\/andremare\/install-apache-kafka-on-macos-using-homebrew-5gno\" target=\"_blank\" rel=\"noopener\">https:\/\/dev.to\/andremare\/install-apache-kafka-on-macos-using-homebrew-5gno<\/a><\/li>\n<li>FastStream: Python&#8217;s framework for Efficient Message Queue Handling &#8211; DEV Community<br \/><a href=\"https:\/\/dev.to\/airtai\/faststream-pythons-framework-for-efficient-message-queue-handling-3pd2\" target=\"_blank\" rel=\"noopener\">https:\/\/dev.to\/airtai\/faststream-pythons-framework-for-efficient-message-queue-handling-3pd2<\/a><\/li>\n<li>GitHub &#8211; Aiven-Labs\/python-fake-data-producer-for-apache-kafka: The Python fake data producer for Apache Kafka\u00ae  is a complete demo app allowing you to quickly produce JSON fake streaming datasets and push it to an Apache Kafka topic.<br \/><a href=\"https:\/\/github.com\/Aiven-Labs\/python-fake-data-producer-for-apache-kafka\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/Aiven-Labs\/python-fake-data-producer-for-apache-kafka<\/a><\/li>\n<li>Getting started with Apache Kafka using Python &#8211; DEV Community<br \/><a href=\"https:\/\/dev.to\/rubnsbarbosa\/getting-started-with-apache-kafka-using-python-36ko\" target=\"_blank\" rel=\"noopener\">https:\/\/dev.to\/rubnsbarbosa\/getting-started-with-apache-kafka-using-python-36ko<\/a><\/li>\n<li>How to Start Using Apache Kafka in Python<br \/><a href=\"https:\/\/kafkaide.com\/learn\/how-to-start-using-apache-kafka-in-python\/\" target=\"_blank\" rel=\"noopener\">https:\/\/kafkaide.com\/learn\/how-to-start-using-apache-kafka-in-python\/<\/a><\/li>\n<li>Installing and running Apache Kafka on MacOS with Apple Silicon | by Taapas Agrawal | Medium<br \/><a href=\"https:\/\/medium.com\/@taapasagrawal\/installing-and-running-apache-kafka-on-macos-with-m1-processor-5238dda81d51\" target=\"_blank\" rel=\"noopener\">https:\/\/medium.com\/@taapasagrawal\/installing-and-running-apache-kafka-on-macos-with-m1-processor-5238dda81d51<\/a><\/li>\n<li>GitHub &#8211; BenasB\/kafka-faker: User friendly and convenient Apache Kafka JSON message faking<br \/><a href=\"https:\/\/github.com\/BenasB\/kafka-faker\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/BenasB\/kafka-faker<\/a><\/li>\n<li>Kickstart your Kafka with Faker Data &#8211; Speaker Deck<br \/><a href=\"https:\/\/speakerdeck.com\/ftisiot\/kickstart-your-kafka-with-faker-data\" target=\"_blank\" rel=\"noopener\">https:\/\/speakerdeck.com\/ftisiot\/kickstart-your-kafka-with-faker-data<\/a><\/li>\n<li>Intro to Kafka using Docker and Python &#8211; DEV Community<br \/><a href=\"https:\/\/dev.to\/boyu1997\/intro-to-kafka-4hn2\" target=\"_blank\" rel=\"noopener\">https:\/\/dev.to\/boyu1997\/intro-to-kafka-4hn2<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>I changed the nature of my personal sprint objective, moving away slightly from AI concerns to reconnect with more general considerations about Data and its&hellip; <\/p>\n<p class=\"text-center\"><a href=\"https:\/\/flaven.fr\/2024\/01\/navigating-the-data-landscape-exploring-key-elements-of-superset-and-kafka-for-a-real-time-analytics-platform\/\" class=\"more-link\">Continue reading &rarr; <span class=\"screen-reader-text\">Navigating the Data Landscape: Exploring Key Elements of Superset and Kafka for a Real-Time Analytics Platform<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":12742,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"bf_ai_meta_description":"Master real-time analytics with Superset and Kafka. Enhance data visualization and processing for actionable insights.","bf_ai_og_title":"Real-Time Analytics: Superset & Kafka","footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[3438,3437,3444,3447,3448,3449,3450,3435],"tags":[2194,3103,2833,3104,2434,3500,3102,3489,3514,3105,2387,3490,3106,3101],"class_list":["post-12740","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ai-machine-learning","category-business-case-studies","category-programming-databases","category-technology-trends","category-tools-productivity","category-tutorials-how-to","category-ux-product-design","category-web-development","tag-agile","tag-agile2","tag-analytics","tag-datavision","tag-docker","tag-jupyter","tag-kafka","tag-microsoft-azure","tag-mongodb","tag-platform","tag-poc","tag-postgresql","tag-project","tag-superset"],"jetpack_publicize_connections":[],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p3Vuhl-3ju","jetpack_featured_media_url":"https:\/\/flaven.fr\/wp-content\/uploads\/2024\/01\/how_to_use_superset_kafka_b.png","_links":{"self":[{"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/posts\/12740","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/comments?post=12740"}],"version-history":[{"count":4,"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/posts\/12740\/revisions"}],"predecessor-version":[{"id":12745,"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/posts\/12740\/revisions\/12745"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/media\/12742"}],"wp:attachment":[{"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/media?parent=12740"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/categories?post=12740"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/tags?post=12740"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}