{
  "format": "dataset-manifest/1",
  "slug": "podcast-network",
  "version": 2,
  "seed": "podcast-network:1",
  "spec": {
    "format": "dataset/1",
    "slug": "podcast-network",
    "name": "Podcast Network",
    "tagline": "Shows, seasons, episodes with durations, hosts, and daily download counts from a podcast network.",
    "description": "Podcast networks produce a variety of shows that cater to different audiences. This dataset captures the intricacies of such a network, detailing shows, seasons, episodes, hosts, and guests. Each episode has a duration and is linked to daily download counts, providing insights into audience engagement over time. By analyzing this data, users can discover trends in listenership, understand which shows or episodes are most popular, and evaluate the impact of hosts and guests on downloads. The tables are interconnected, allowing for a comprehensive analysis of the podcast ecosystem. This synthetic dataset is designed for developers to practice SQL queries and understand data relationships, making it perfect for teaching and ORM seeding.",
    "domain": "media",
    "shape": "transactional",
    "useCases": [
      "orm-seeding",
      "teaching"
    ],
    "keywords": [
      "podcast",
      "media",
      "shows",
      "episodes",
      "hosts",
      "guests",
      "downloads",
      "analytics"
    ],
    "locale": "en",
    "license": "CC0-1.0",
    "version": 1,
    "tables": {
      "shows": {
        "description": "This table lists all the shows in the podcast network. Each show has a unique identifier and is linked to multiple seasons.",
        "rows": 20,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for the show."
          },
          "title": {
            "kind": "fullName",
            "description": "The title of the podcast show."
          },
          "description": {
            "kind": "paragraph",
            "description": "A brief description of what the show is about.",
            "nullable": true
          },
          "launch_date": {
            "kind": "date",
            "from": "2020-01-01",
            "to": "2023-12-31",
            "description": "The date the show was launched.",
            "trend": "growing"
          }
        }
      },
      "seasons": {
        "description": "This table contains information about the seasons of each show, linking back to the shows table.",
        "rows": 50,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for the season."
          },
          "show_id": {
            "kind": "fk",
            "ref": "shows.id",
            "description": "Reference to the show this season belongs to."
          },
          "season_number": {
            "kind": "int",
            "min": 1,
            "max": 10,
            "description": "The season number."
          },
          "release_date": {
            "kind": "date",
            "from": "2020-01-01",
            "to": "2023-12-31",
            "description": "The release date of the season.",
            "nullable": true,
            "trend": "seasonal"
          }
        }
      },
      "episodes": {
        "description": "This table lists all episodes within each season, including their duration and linking to hosts and guests.",
        "rows": 100,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for the episode."
          },
          "season_id": {
            "kind": "fk",
            "ref": "seasons.id",
            "description": "Reference to the season this episode belongs to."
          },
          "title": {
            "kind": "fullName",
            "description": "The title of the episode."
          },
          "duration_minutes": {
            "kind": "int",
            "min": 10,
            "max": 120,
            "description": "Duration of the episode in minutes.",
            "nullable": true,
            "distribution": "normal"
          },
          "release_date": {
            "kind": "date",
            "from": "2020-01-01",
            "to": "2023-12-31",
            "description": "The release date of the episode.",
            "trend": "growing"
          }
        }
      },
      "hosts": {
        "description": "This table contains information about hosts, linking them to episodes they present.",
        "rows": 30,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for the host."
          },
          "full_name": {
            "kind": "fullName",
            "description": "The full name of the host."
          },
          "bio": {
            "kind": "paragraph",
            "description": "A short biography of the host.",
            "nullable": true
          }
        }
      },
      "episode_downloads": {
        "description": "This table records daily download counts for each episode, allowing analysis of popularity over time.",
        "rows": 600,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for the download record."
          },
          "episode_id": {
            "kind": "fk",
            "ref": "episodes.id",
            "description": "Reference to the episode being downloaded."
          },
          "download_date": {
            "kind": "date",
            "from": "2020-01-01",
            "to": "2023-12-31",
            "description": "The date of the download.",
            "nullable": true
          },
          "download_count": {
            "kind": "int",
            "min": 0,
            "max": 10000,
            "description": "Number of downloads on this date.",
            "nullable": true,
            "distribution": "long-tail"
          }
        }
      }
    },
    "structure": "multi-table",
    "traits": [
      "timestamped",
      "high-cardinality",
      "nullable"
    ],
    "analysisQuestions": [
      "Which episodes have the highest download counts over time?",
      "How do download trends vary between different shows?",
      "What is the average duration of episodes within each show?",
      "How many hosts contribute to each show, and what is their impact on downloads?",
      "Are there specific days of the week when downloads peak?"
    ],
    "suggestedQueries": [
      {
        "title": "List all episodes with their hosts and download counts",
        "sql": "SELECT episodes.title, hosts.full_name, episode_downloads.download_count FROM episodes JOIN hosts ON episodes.id = hosts.id JOIN episode_downloads ON episodes.id = episode_downloads.episode_id;",
        "dialect": "postgres"
      },
      {
        "title": "Find the average downloads per episode",
        "sql": "SELECT AVG(download_count) FROM episode_downloads GROUP BY episode_id;",
        "dialect": "postgres"
      },
      {
        "title": "Get all episodes from a specific season",
        "sql": "SELECT episodes.title FROM episodes JOIN seasons ON episodes.season_id = seasons.id WHERE seasons.season_number = 1;",
        "dialect": "postgres"
      },
      {
        "title": "Count downloads by day for a specific episode",
        "sql": "SELECT download_date, SUM(download_count) FROM episode_downloads WHERE episode_id = 1 GROUP BY download_date;",
        "dialect": "postgres"
      }
    ],
    "usageScenarios": [
      {
        "title": "Podcast Analytics Dashboard",
        "body": "Developers can use this dataset to create an analytics dashboard that visualizes the performance of different podcast episodes and shows. By querying download counts and episode durations, users can identify trends and make data-driven decisions to improve content strategy."
      },
      {
        "title": "Teaching SQL and Data Relationships",
        "body": "Educators can leverage this dataset to teach students about SQL queries and the importance of data relationships. By creating exercises around JOIN operations and aggregate functions, students will gain practical experience with real-world scenarios."
      },
      {
        "title": "Market Analysis for Podcasters",
        "body": "Podcasters can analyze the dataset to understand audience preferences based on download counts and episode features. This information can guide them in content creation, helping to align with listener interests and optimize show formats."
      }
    ]
  },
  "counts": {
    "hosts": 30,
    "shows": 20,
    "seasons": 50,
    "episodes": 100,
    "episode_downloads": 600
  },
  "stats": {
    "shows": {
      "rows": 20,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 20,
          "min": 1,
          "max": 20
        },
        "title": {
          "nulls": 0,
          "distinct": 20,
          "min": "Amir Chen",
          "max": "Tariq Hassan"
        },
        "description": {
          "nulls": 1,
          "distinct": 19
        },
        "launch_date": {
          "nulls": 0,
          "distinct": 20,
          "min": "2020-01-20",
          "max": "2023-11-22"
        }
      }
    },
    "seasons": {
      "rows": 50,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 50,
          "min": 1,
          "max": 50
        },
        "show_id": {
          "nulls": 0,
          "distinct": 17,
          "min": 1,
          "max": 20
        },
        "season_number": {
          "nulls": 0,
          "distinct": 10,
          "min": 1,
          "max": 10
        },
        "release_date": {
          "nulls": 4,
          "distinct": 46,
          "min": "2020-01-02",
          "max": "2023-12-23"
        }
      }
    },
    "episodes": {
      "rows": 100,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 100,
          "min": 1,
          "max": 100
        },
        "season_id": {
          "nulls": 0,
          "distinct": 44,
          "min": 2,
          "max": 50
        },
        "title": {
          "nulls": 0,
          "distinct": 100,
          "min": "Alice Hoffmann",
          "max": "Zoe Wilson"
        },
        "duration_minutes": {
          "nulls": 10,
          "distinct": 48,
          "min": 31,
          "max": 100
        },
        "release_date": {
          "nulls": 0,
          "distinct": 99,
          "min": "2020-01-31",
          "max": "2023-12-30"
        }
      }
    },
    "hosts": {
      "rows": 30,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 30,
          "min": 1,
          "max": 30
        },
        "full_name": {
          "nulls": 0,
          "distinct": 30,
          "min": "Alice Davis",
          "max": "Yusuf Meyer"
        },
        "bio": {
          "nulls": 5,
          "distinct": 25
        }
      }
    },
    "episode_downloads": {
      "rows": 600,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 600,
          "min": 1,
          "max": 600
        },
        "episode_id": {
          "nulls": 0,
          "distinct": 99,
          "min": 1,
          "max": 99
        },
        "download_date": {
          "nulls": 55,
          "distinct": 440,
          "min": "2020-01-04",
          "max": "2023-12-30"
        },
        "download_count": {
          "nulls": 61,
          "distinct": 505,
          "min": 0,
          "max": 9971
        }
      }
    }
  },
  "artifacts": [
    {
      "file": "csv/hosts.csv",
      "format": "csv",
      "table": "hosts",
      "key": "datasets/podcast-network/v2/csv/hosts.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/podcast-network/v2/csv/hosts.csv",
      "bytes": 4767,
      "sha256": "7c4a8d62908f41013c1d4344c83beb8a996b0e4d278a05b2e6a9094e0715be7c",
      "rows": 30,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/shows.csv",
      "format": "csv",
      "table": "shows",
      "key": "datasets/podcast-network/v2/csv/shows.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/podcast-network/v2/csv/shows.csv",
      "bytes": 3640,
      "sha256": "1082bf43e747dc8794d6653a335b242feecd96bbc8d038e626ebff7205977686",
      "rows": 20,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/seasons.csv",
      "format": "csv",
      "table": "seasons",
      "key": "datasets/podcast-network/v2/csv/seasons.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/podcast-network/v2/csv/seasons.csv",
      "bytes": 963,
      "sha256": "92964d0d461a3603985f81e3d7c972eac4ffb30342f0d015db5de9b27073556c",
      "rows": 50,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/episodes.csv",
      "format": "csv",
      "table": "episodes",
      "key": "datasets/podcast-network/v2/csv/episodes.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/podcast-network/v2/csv/episodes.csv",
      "bytes": 3324,
      "sha256": "ece8496b89601d625b593ff4f90eaf930b5482e4d36585da3c0419386ab96df3",
      "rows": 100,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/episode_downloads.csv",
      "format": "csv",
      "table": "episode_downloads",
      "key": "datasets/podcast-network/v2/csv/episode_downloads.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/podcast-network/v2/csv/episode_downloads.csv",
      "bytes": 13250,
      "sha256": "c7310194164dc77b3ac919fd124191078b0228c4550141113f7c00170d714823",
      "rows": 600,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "podcast-network.json",
      "format": "json",
      "table": null,
      "key": "datasets/podcast-network/v2/podcast-network.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/podcast-network/v2/podcast-network.json",
      "bytes": 103440,
      "sha256": "1aa3395de1fac736acd57259b5bd6c9c94db0a30b11d55caa3cf1894d2dfab7f",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    },
    {
      "file": "sql/postgres.sql",
      "format": "sql-postgres",
      "table": null,
      "key": "datasets/podcast-network/v2/sql/postgres.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/podcast-network/v2/sql/postgres.sql",
      "bytes": 37969,
      "sha256": "cfd8044033fdf477f73885d6485ca1b0bb839050445bb30875e73f02997590f4",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mysql.sql",
      "format": "sql-mysql",
      "table": null,
      "key": "datasets/podcast-network/v2/sql/mysql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/podcast-network/v2/sql/mysql.sql",
      "bytes": 37410,
      "sha256": "bb9761989ba5eba6eeb0d6b178df13e23dc1fba0e1ae3d4da790716075f25453",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mssql.sql",
      "format": "sql-mssql",
      "table": null,
      "key": "datasets/podcast-network/v2/sql/mssql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/podcast-network/v2/sql/mssql.sql",
      "bytes": 38645,
      "sha256": "2f622051a336abba508fa8f1a375d6a33747720e421e77847141200a535552e3",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/sqlite.sql",
      "format": "sql-sqlite",
      "table": null,
      "key": "datasets/podcast-network/v2/sql/sqlite.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/podcast-network/v2/sql/sqlite.sql",
      "bytes": 37269,
      "sha256": "9a2fc64490570aeb29025f0a06af7709d36f739a2bd7e32ed9bb965cacca4aea",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "prisma/seed.ts",
      "format": "prisma-seed",
      "table": null,
      "key": "datasets/podcast-network/v2/prisma/seed.ts",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/podcast-network/v2/prisma/seed.ts",
      "bytes": 81475,
      "sha256": "b6dd3df169e6a2e11f584312a823fb810207a8605cee3da7c6f54c68008a090a",
      "rows": null,
      "contentType": "application/typescript; charset=utf-8"
    },
    {
      "file": "django/fixtures.json",
      "format": "django-fixture",
      "table": null,
      "key": "datasets/podcast-network/v2/django/fixtures.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/podcast-network/v2/django/fixtures.json",
      "bytes": 140888,
      "sha256": "83c50c7df8261a436c3bf4bb2fbe8ef6a05d31b4ef1f418b9671d69699b985a1",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    }
  ],
  "publishedAt": 1788768286231,
  "updatedAt": 1788785503708
}
