{
  "format": "dataset-manifest/1",
  "slug": "device-registry",
  "version": 1,
  "seed": "device-registry:1",
  "spec": {
    "format": "dataset/1",
    "slug": "device-registry",
    "name": "Device Registry",
    "tagline": "Manufacturers, device models, and deployed IoT devices with firmware versions and installation dates.",
    "description": "The device registry serves as a structured repository for information about various IoT devices, their manufacturers, models, and firmware versions. It allows users to query data related to device specifications and deployment histories. This synthetic dataset comprises multiple interrelated tables that offer insights into the relationships between manufacturers, device models, firmware versions, and the actual devices deployed at different sites. Understanding this data can help IoT developers, data analysts, and educators in various ways, including tracking device lifecycles, analyzing deployment patterns, and managing firmware updates. The tables are designed to facilitate common queries such as identifying devices by manufacturer, comparing firmware versions, and tracking installation dates for devices in the field. This dataset is synthetic, ensuring it can be used for practice without privacy concerns.",
    "domain": "iot",
    "shape": "lookup-catalog",
    "useCases": [
      "teaching",
      "orm-seeding"
    ],
    "keywords": [
      "IoT",
      "devices",
      "registry",
      "manufacturers",
      "models",
      "firmware",
      "deployment",
      "installation"
    ],
    "locale": "en",
    "license": "CC0-1.0",
    "version": 1,
    "tables": {
      "manufacturers": {
        "description": "This table contains information about device manufacturers. Each row represents a unique manufacturer identified by its name.",
        "rows": 50,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for the manufacturer."
          },
          "name": {
            "kind": "fullName",
            "description": "The full name of the manufacturer."
          },
          "country": {
            "kind": "country",
            "description": "The country where the manufacturer is based.",
            "nullable": true
          }
        }
      },
      "device_models": {
        "description": "This table provides details about various device models, linking each model to its manufacturer. Each row corresponds to a unique device model.",
        "rows": 200,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for the device model."
          },
          "model_name": {
            "kind": "productName",
            "description": "The name of the device model."
          },
          "manufacturer_id": {
            "kind": "fk",
            "ref": "manufacturers.id",
            "description": "Foreign key referencing the manufacturer of this model."
          },
          "firmware_version": {
            "kind": "words",
            "description": "The current firmware version for this device model.",
            "nullable": true
          }
        }
      },
      "deployed_devices": {
        "description": "This table tracks the devices deployed at various sites, linking them to their respective models. Each row represents a specific device installation.",
        "rows": 300,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for the deployed device."
          },
          "device_model_id": {
            "kind": "fk",
            "ref": "device_models.id",
            "description": "Foreign key referencing the device model."
          },
          "installation_date": {
            "kind": "date",
            "from": "2020-01-01",
            "to": "2023-12-31",
            "description": "The date when the device was installed at the site.",
            "trend": "growing"
          },
          "site_name": {
            "kind": "words",
            "description": "The name of the site where the device is installed.",
            "nullable": true
          }
        }
      }
    },
    "structure": "multi-table",
    "traits": [
      "high-cardinality",
      "categorical",
      "timestamped"
    ],
    "analysisQuestions": [
      "What are the most common device models being deployed?",
      "Which manufacturers have the most devices installed?",
      "How does firmware versioning vary across different device models?",
      "What trends can be observed in installation dates over time?"
    ],
    "suggestedQueries": [
      {
        "title": "List all device models by manufacturer",
        "sql": "SELECT dm.model_name, m.name AS manufacturer FROM device_models dm JOIN manufacturers m ON dm.manufacturer_id = m.id;",
        "dialect": "postgres"
      },
      {
        "title": "Count of devices installed per site",
        "sql": "SELECT site_name, COUNT(*) AS device_count FROM deployed_devices GROUP BY site_name;",
        "dialect": "postgres"
      },
      {
        "title": "Get firmware versions for a specific manufacturer",
        "sql": "SELECT dm.firmware_version FROM device_models dm JOIN manufacturers m ON dm.manufacturer_id = m.id WHERE m.name = 'Specific Manufacturer';",
        "dialect": "postgres"
      },
      {
        "title": "Find installation trends over time",
        "sql": "SELECT DATE_TRUNC('month', installation_date) AS month, COUNT(*) AS installations FROM deployed_devices GROUP BY month ORDER BY month;",
        "dialect": "postgres"
      }
    ],
    "usageScenarios": [
      {
        "title": "IoT Developer Training",
        "body": "In an IoT development course, educators can use this dataset to teach students about device management and deployment strategies. By querying the data, students can learn how to analyze manufacturer performance and model popularity, gaining practical SQL skills in the process."
      },
      {
        "title": "Firmware Update Management",
        "body": "A device management team can utilize this dataset to track which devices are running outdated firmware versions. Using the information provided, they can prioritize updates based on installation dates and device models, ensuring that critical updates are applied to the most relevant devices."
      },
      {
        "title": "Market Analysis for IoT Devices",
        "body": "Market analysts in the IoT sector can leverage this dataset to identify trends in device adoption across different manufacturers and models. By analyzing installation dates and the number of deployed devices, they can generate insights into market dynamics and growth opportunities."
      }
    ]
  },
  "counts": {
    "manufacturers": 50,
    "device_models": 200,
    "deployed_devices": 300
  },
  "stats": {
    "manufacturers": {
      "rows": 50,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 50,
          "min": 1,
          "max": 50
        },
        "name": {
          "nulls": 0,
          "distinct": 50,
          "min": "Alice Schneider",
          "max": "Yusuf Kaya"
        },
        "country": {
          "nulls": 11,
          "distinct": 21,
          "min": "Australia",
          "max": "United States"
        }
      }
    },
    "device_models": {
      "rows": 200,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 200,
          "min": 1,
          "max": 200
        },
        "model_name": {
          "nulls": 0,
          "distinct": 163,
          "min": "Classic Chair",
          "max": "Wireless Watch"
        },
        "manufacturer_id": {
          "nulls": 0,
          "distinct": 49,
          "min": 1,
          "max": 50
        },
        "firmware_version": {
          "nulls": 24,
          "distinct": 176
        }
      }
    },
    "deployed_devices": {
      "rows": 300,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 300,
          "min": 1,
          "max": 300
        },
        "device_model_id": {
          "nulls": 0,
          "distinct": 156,
          "min": 1,
          "max": 200
        },
        "installation_date": {
          "nulls": 0,
          "distinct": 274,
          "min": "2020-01-01",
          "max": "2023-12-31"
        },
        "site_name": {
          "nulls": 34,
          "distinct": 265
        }
      }
    }
  },
  "artifacts": [
    {
      "file": "csv/manufacturers.csv",
      "format": "csv",
      "table": "manufacturers",
      "key": "datasets/device-registry/v1/csv/manufacturers.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/device-registry/v1/csv/manufacturers.csv",
      "bytes": 1178,
      "sha256": "177e800fdcb2900a0e1ba8c22d0ad6b94a74966def96dd7a0ad738ade9a5173c",
      "rows": 50,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/device_models.csv",
      "format": "csv",
      "table": "device_models",
      "key": "datasets/device-registry/v1/csv/device_models.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/device-registry/v1/csv/device_models.csv",
      "bytes": 9195,
      "sha256": "717efbaf778839b2bd036a07bcb267b886500d574f76820f12f8ef3fb220a505",
      "rows": 200,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/deployed_devices.csv",
      "format": "csv",
      "table": "deployed_devices",
      "key": "datasets/device-registry/v1/csv/deployed_devices.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/device-registry/v1/csv/deployed_devices.csv",
      "bytes": 12697,
      "sha256": "41754a29197f581a77a07da44eb28633d0ab30d7e0337b79673cd2cc003ef144",
      "rows": 300,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "device-registry.json",
      "format": "json",
      "table": null,
      "key": "datasets/device-registry/v1/device-registry.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/device-registry/v1/device-registry.json",
      "bytes": 77226,
      "sha256": "d03ed8e6d4f8cdc31fca23ec6150fac406189ea7289b77c862a26070d32027c2",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    },
    {
      "file": "sql/postgres.sql",
      "format": "sql-postgres",
      "table": null,
      "key": "datasets/device-registry/v1/sql/postgres.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/device-registry/v1/sql/postgres.sql",
      "bytes": 32014,
      "sha256": "38290514247b70c3769e6b51e5992e5a462d1909204e76dea1f2a2aefd1607b2",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mysql.sql",
      "format": "sql-mysql",
      "table": null,
      "key": "datasets/device-registry/v1/sql/mysql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/device-registry/v1/sql/mysql.sql",
      "bytes": 31655,
      "sha256": "2b87ad7a458f8051f4bb6a7924c1686d0a42ac0441d23741d0fe5e9d9737587c",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mssql.sql",
      "format": "sql-mssql",
      "table": null,
      "key": "datasets/device-registry/v1/sql/mssql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/device-registry/v1/sql/mssql.sql",
      "bytes": 32910,
      "sha256": "40a1d4d81a523fb8b5eeaeb4dfd340cff9dfb290d9dc53848b1d46da2a66f0dd",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/sqlite.sql",
      "format": "sql-sqlite",
      "table": null,
      "key": "datasets/device-registry/v1/sql/sqlite.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/device-registry/v1/sql/sqlite.sql",
      "bytes": 31503,
      "sha256": "caee3868cbdc72a6d6cdfb3429599e65b7c03b54cb8c9bdbf48dc1dd84412c0b",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "prisma/seed.ts",
      "format": "prisma-seed",
      "table": null,
      "key": "datasets/device-registry/v1/prisma/seed.ts",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/device-registry/v1/prisma/seed.ts",
      "bytes": 63038,
      "sha256": "da99704f71deb077e4c5aaafd59758eef05cdfdf3394943111b3298d6719f5f1",
      "rows": null,
      "contentType": "application/typescript; charset=utf-8"
    },
    {
      "file": "django/fixtures.json",
      "format": "django-fixture",
      "table": null,
      "key": "datasets/device-registry/v1/django/fixtures.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/device-registry/v1/django/fixtures.json",
      "bytes": 102998,
      "sha256": "a82fec2203f4ce94927931fcac88eaa928ab316d785a4f6811c05afc896c1290",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    }
  ],
  "publishedAt": 1788767277164,
  "updatedAt": 1788767277164
}
