{
  "format": "dataset-manifest/1",
  "slug": "safari-trip",
  "version": 2,
  "seed": "safari-trip:1",
  "spec": {
    "format": "dataset/1",
    "slug": "safari-trip",
    "name": "Safari Experience Records",
    "tagline": "Tours, itineraries, animal sightings, gear details, and lodge information from thousands of safari adventures.",
    "description": "Travelers embark on unforgettable safari adventures, exploring diverse ecosystems and witnessing wildlife in their natural habitats. These experiences are meticulously organized into tours, each offering distinct itineraries that outline daily activities and highlight the beauty of nature. The operations involve various components, including gear used by tourists, which not only enhances their comfort but also contributes to the overall safety during their excursions. Drivers play a crucial role, guiding guests through the wilderness while ensuring they have the best chance to witness the incredible wildlife, including both common and endangered species. Lodges provide essential accommodations, allowing travelers to rest and rejuvenate after exhilarating days in the wild.\n\nThe tables within this dataset illustrate how these components interact in the business. The 'tours' table contains records of individual safari experiences, linking to 'itineraries' that detail daily plans. Each itinerary connects to 'animal_sightings' that catalog the wildlife viewed during the safari, showcasing the variety of species encountered. Information about 'gear' assists in understanding the equipment each traveler has during their journey, while 'drivers' records provide insights into the professionals leading these expeditions. Lastly, the 'lodges' table reveals the accommodations available, ensuring visitors have a comfortable stay amidst their adventures.\n\nThis dataset answers several questions that are crucial for analyzing safari operations. It helps understand which animals are most commonly sighted, how often specific lodges are booked, and what types of gear are most frequently used. Practicing with this data allows developers to explore trends in wildlife encounters and identify which itineraries lead to the most memorable experiences for guests. The uniqueness of each safari is reflected not just in the overall statistics, but also in the rare events, such as sightings of endangered species that create lasting memories for travelers. As a synthetic dataset, it serves as a versatile resource for developers looking to refine their skills in data management and analysis.",
    "domain": "travel",
    "shape": "event-log",
    "useCases": [
      "analytics-demo",
      "etl-pipelines"
    ],
    "keywords": [
      "safari",
      "travel",
      "wildlife",
      "tours",
      "itineraries",
      "gear",
      "drivers",
      "lodges"
    ],
    "locale": "en",
    "license": "CC0-1.0",
    "version": 1,
    "tables": {
      "tours": {
        "description": "Each row represents a unique safari tour, detailing its characteristics, including dates and locations.",
        "rows": 200,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each tour."
          },
          "tour_name": {
            "kind": "words",
            "max": 3,
            "description": "The name of the safari tour.",
            "pool": [
              "Safari",
              "Expedition",
              "Adventure",
              "Journey",
              "Quest",
              "Expeditionary",
              "Odyssey",
              "Exploration",
              "Wildlife",
              "Safari-Experience",
              "Nature",
              "Discovery",
              "Trail",
              "Voyage",
              "Safari-Trek",
              "Safari-Adventure",
              "Safari-Quest",
              "Safari-Exploration",
              "Safari-Journey",
              "Safari-Odyssey"
            ],
            "min": 1
          },
          "start_date": {
            "kind": "date",
            "from": "2022-01-01",
            "to": "2023-12-31",
            "description": "The starting date of the tour."
          },
          "end_date": {
            "kind": "date",
            "after": "start_date",
            "withinDays": 30,
            "description": "The ending date of the tour."
          },
          "national_park": {
            "kind": "enum",
            "values": [
              "Serengeti",
              "Masai Mara",
              "Kruger",
              "Chobe",
              "Etosha"
            ],
            "description": "The national park where the tour takes place.",
            "weights": [
              6,
              4,
              3,
              2,
              1
            ]
          },
          "number_of_travelers": {
            "kind": "int",
            "min": 1,
            "max": 20,
            "description": "The number of travelers participating in the tour."
          }
        }
      },
      "itineraries": {
        "description": "This table records the daily activities planned for each safari tour.",
        "rows": {
          "per": "tours",
          "via": "tour_id",
          "min": 2,
          "max": 5,
          "skew": "long-tail"
        },
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each itinerary entry."
          },
          "tour_id": {
            "kind": "fk",
            "ref": "tours.id",
            "description": "Reference to the associated tour."
          },
          "day_number": {
            "kind": "int",
            "min": 1,
            "max": 10,
            "description": "The day number of the safari tour."
          },
          "activity": {
            "kind": "words",
            "max": 3,
            "description": "Description of the activity planned for the day.",
            "pool": [
              "Hiking",
              "Birdwatching",
              "Game-drive",
              "Photography",
              "Camping",
              "Tracking",
              "Exploring",
              "Sightseeing",
              "Relaxing",
              "Fishing",
              "Cultural",
              "Wildlife-viewing",
              "Stargazing",
              "Nature-walk",
              "Picnicking",
              "Safari-walk",
              "Adventure-sport",
              "Kayaking",
              "Swimming",
              "Biking"
            ],
            "min": 1
          }
        }
      },
      "animal_sightings": {
        "description": "Records of animal sightings made during each safari tour, capturing memorable wildlife encounters.",
        "rows": {
          "per": "tours",
          "via": "tour_id",
          "min": 0,
          "max": 15,
          "skew": "long-tail"
        },
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each animal sighting."
          },
          "tour_id": {
            "kind": "fk",
            "ref": "tours.id",
            "description": "Reference to the associated tour."
          },
          "animal_species": {
            "kind": "words",
            "max": 3,
            "description": "The species of the animal sighted.",
            "pool": [
              "Lion",
              "Elephant",
              "Giraffe",
              "Zebra",
              "Cheetah",
              "Buffalo",
              "Leopard",
              "Rhino",
              "Hippo",
              "Hyena",
              "Kudu",
              "Wildebeest",
              "Antelope",
              "Gazelle",
              "Monkey",
              "Baboon",
              "Ostrich",
              "Eagle",
              "Vulture",
              "Flamingo"
            ],
            "min": 1
          },
          "sighting_date": {
            "kind": "date",
            "after": "tour_id.start_date",
            "withinDays": 30,
            "description": "Date when the sighting occurred."
          },
          "endangered": {
            "kind": "bool",
            "trueRate": 0.1,
            "description": "Indicates if the sighted animal is endangered."
          }
        }
      },
      "gear": {
        "description": "Lists the gear used by travelers during their safari tours, essential for a successful experience.",
        "rows": {
          "per": "tours",
          "via": "tour_id",
          "min": 1,
          "max": 8,
          "skew": "long-tail"
        },
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each gear entry."
          },
          "tour_id": {
            "kind": "fk",
            "ref": "tours.id",
            "description": "Reference to the associated tour."
          },
          "gear_item": {
            "kind": "words",
            "max": 3,
            "description": "The name of the gear item.",
            "pool": [
              "Camera",
              "Tripod",
              "Field-guide",
              "Backpack",
              "Water-bottle",
              "Hat",
              "Sunscreen",
              "Binoculars",
              "First-aid",
              "Map",
              "Flashlight",
              "Notebook",
              "Compass",
              "Raincoat",
              "Tent",
              "Sleeping-bag",
              "Cooking-gear",
              "Fishing-rod",
              "Climbing-gear",
              "Cooler"
            ],
            "min": 1
          },
          "quantity": {
            "kind": "int",
            "min": 1,
            "max": 10,
            "description": "Quantity of the gear item used."
          }
        }
      },
      "drivers": {
        "description": "Information on the drivers guiding the safari tours, including their expertise and experience.",
        "rows": 50,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each driver."
          },
          "full_name": {
            "kind": "fullName",
            "description": "The full name of the safari driver."
          },
          "experience_years": {
            "kind": "int",
            "min": 1,
            "max": 30,
            "description": "Years of experience driving safari tours.",
            "distribution": "normal"
          },
          "languages_spoken": {
            "kind": "words",
            "max": 3,
            "description": "Languages spoken by the driver.",
            "pool": [
              "English",
              "Swahili",
              "French",
              "Spanish",
              "German",
              "Italian",
              "Portuguese",
              "Dutch",
              "Mandarin",
              "Zulu",
              "Xhosa",
              "Afrikaans",
              "Russian",
              "Arabic",
              "Japanese",
              "Kiswahili",
              "Hindi",
              "Turkish",
              "Thai",
              "Vietnamese"
            ],
            "min": 1
          }
        }
      },
      "lodges": {
        "description": "This table contains information on lodges where travelers stay during their safari tours.",
        "rows": 30,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each lodge."
          },
          "lodge_name": {
            "kind": "words",
            "max": 3,
            "description": "The name of the lodge.",
            "pool": [
              "Serengeti-Lodge",
              "Ngorongoro-Crater-Lodge",
              "Masai-Mara-Lodge",
              "Kruger-Park-Lodge",
              "Okavango-Delta-Lodge",
              "Chobe-Lodge",
              "Zambezi-River-Lodge",
              "Tarangire-Lodge",
              "Kalahari-Desert-Lodge",
              "Lake-Nakuru-Lodge",
              "Amboseli-Lodge",
              "Etosha-Lodge",
              "Sabi-Sand-Lodge",
              "Victoria-Falls-Lodge",
              "Selous-Lodge",
              "Bwindi-Lodge",
              "Ruinsori-Lodge",
              "Tsavo-Lodge",
              "Addo-Lodge"
            ],
            "min": 1
          },
          "capacity": {
            "kind": "int",
            "min": 1,
            "max": 50,
            "description": "The maximum capacity of the lodge."
          },
          "national_park": {
            "kind": "enum",
            "values": [
              "Serengeti",
              "Masai Mara",
              "Kruger",
              "Chobe",
              "Etosha"
            ],
            "description": "The national park where the lodge is located.",
            "weights": [
              5,
              4,
              3,
              2,
              1
            ]
          }
        }
      }
    },
    "structure": "multi-table",
    "traits": [
      "timestamped",
      "categorical",
      "nullable"
    ],
    "analysisQuestions": [
      "What are the most common activities planned during safari tours?",
      "Which animal species are most frequently sighted on tours?",
      "How does the experience of drivers correlate with traveler satisfaction?",
      "What types of gear are most commonly used by travelers?",
      "How do lodge accommodations affect tour preferences?"
    ],
    "suggestedQueries": [
      {
        "title": "Join Tours with Itineraries",
        "sql": "SELECT tours.tour_name, itineraries.activity FROM tours JOIN itineraries ON tours.id = itineraries.tour_id;",
        "dialect": "postgres"
      },
      {
        "title": "Count Animal Sightings by Species",
        "sql": "SELECT animal_species, COUNT(*) FROM animal_sightings GROUP BY animal_species;",
        "dialect": "postgres"
      },
      {
        "title": "Average Experience Years of Drivers by Lodge",
        "sql": "SELECT lodges.lodge_name, AVG(drivers.experience_years) FROM drivers JOIN tours ON drivers.id = tours.id JOIN lodges ON tours.national_park = lodges.national_park GROUP BY lodges.lodge_name;",
        "dialect": "postgres"
      },
      {
        "title": "Daily Activities for a Specific Tour",
        "sql": "SELECT day_number, activity FROM itineraries WHERE tour_id = $1;",
        "dialect": "postgres"
      },
      {
        "title": "Endangered Species Sightings",
        "sql": "SELECT animal_species, COUNT(*) FROM animal_sightings WHERE endangered = TRUE GROUP BY animal_species;",
        "dialect": "postgres"
      }
    ],
    "usageScenarios": [
      {
        "title": "Travel Agencies",
        "body": "Travel agencies can use the 'Safari Experience Records' dataset to analyze popular safari tours and develop new itineraries based on traveler preferences and wildlife sightings. By examining the data, they can optimize their offerings and enhance customer satisfaction."
      },
      {
        "title": "Conservation Organizations",
        "body": "Conservation organizations can leverage this dataset to track endangered species sightings during safaris. Understanding the frequency and locations of these sightings can help inform conservation strategies and policy-making, ultimately contributing to wildlife preservation."
      },
      {
        "title": "Tour Operators",
        "body": "Tour operators can benefit from the insights provided by this dataset to improve their service quality. By analyzing traveler feedback, gear used, and driver experience, they can refine their operations and create more memorable safari experiences for their clients."
      },
      {
        "title": "Data Analysts and Researchers",
        "body": "Data analysts and researchers can utilize this dataset to explore trends in travel behavior, wildlife interactions, and accommodation preferences. By conducting analyses, they can provide valuable reports and recommendations for various stakeholders in the travel industry."
      }
    ]
  },
  "counts": {
    "drivers": 50,
    "lodges": 30,
    "tours": 200,
    "animal_sightings": 906,
    "gear": 654,
    "itineraries": 560
  },
  "stats": {
    "tours": {
      "rows": 200,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 200,
          "min": 1,
          "max": 200
        },
        "tour_name": {
          "nulls": 0,
          "distinct": 149
        },
        "start_date": {
          "nulls": 0,
          "distinct": 171,
          "min": "2022-01-02",
          "max": "2023-12-29"
        },
        "end_date": {
          "nulls": 0,
          "distinct": 182,
          "min": "2022-01-13",
          "max": "2024-01-07"
        },
        "national_park": {
          "nulls": 0,
          "distinct": 5,
          "min": "Chobe",
          "max": "Serengeti"
        },
        "number_of_travelers": {
          "nulls": 0,
          "distinct": 20,
          "min": 1,
          "max": 20
        }
      }
    },
    "itineraries": {
      "rows": 560,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 560,
          "min": 1,
          "max": 560
        },
        "tour_id": {
          "nulls": 0,
          "distinct": 200,
          "min": 1,
          "max": 200
        },
        "day_number": {
          "nulls": 0,
          "distinct": 10,
          "min": 1,
          "max": 10
        },
        "activity": {
          "nulls": 0,
          "distinct": 346
        }
      }
    },
    "animal_sightings": {
      "rows": 906,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 906,
          "min": 1,
          "max": 906
        },
        "tour_id": {
          "nulls": 0,
          "distinct": 145,
          "min": 1,
          "max": 200
        },
        "animal_species": {
          "nulls": 0,
          "distinct": 534
        },
        "sighting_date": {
          "nulls": 0,
          "distinct": 498,
          "min": "2022-01-20",
          "max": "2024-01-28"
        },
        "endangered": {
          "nulls": 0,
          "distinct": 2,
          "min": "false",
          "max": "true"
        }
      }
    },
    "gear": {
      "rows": 654,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 654,
          "min": 1,
          "max": 654
        },
        "tour_id": {
          "nulls": 0,
          "distinct": 200,
          "min": 1,
          "max": 200
        },
        "gear_item": {
          "nulls": 0,
          "distinct": 397
        },
        "quantity": {
          "nulls": 0,
          "distinct": 10,
          "min": 1,
          "max": 10
        }
      }
    },
    "drivers": {
      "rows": 50,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 50,
          "min": 1,
          "max": 50
        },
        "full_name": {
          "nulls": 0,
          "distinct": 50,
          "min": "Alice Brown",
          "max": "Zara Adams"
        },
        "experience_years": {
          "nulls": 0,
          "distinct": 15,
          "min": 6,
          "max": 22
        },
        "languages_spoken": {
          "nulls": 0,
          "distinct": 44
        }
      }
    },
    "lodges": {
      "rows": 30,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 30,
          "min": 1,
          "max": 30
        },
        "lodge_name": {
          "nulls": 0,
          "distinct": 27
        },
        "capacity": {
          "nulls": 0,
          "distinct": 23,
          "min": 5,
          "max": 47
        },
        "national_park": {
          "nulls": 0,
          "distinct": 5,
          "min": "Chobe",
          "max": "Serengeti"
        }
      }
    }
  },
  "artifacts": [
    {
      "file": "csv/drivers.csv",
      "format": "csv",
      "table": "drivers",
      "key": "datasets/safari-trip/v2/csv/drivers.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/safari-trip/v2/csv/drivers.csv",
      "bytes": 1783,
      "sha256": "8c87ef0c65bac077cfa932b1f7f9de0a184a39ab6bc9cae092a01ba31136a9a8",
      "rows": 50,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/lodges.csv",
      "format": "csv",
      "table": "lodges",
      "key": "datasets/safari-trip/v2/csv/lodges.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/safari-trip/v2/csv/lodges.csv",
      "bytes": 1505,
      "sha256": "dbc11a6f51156962191fd8fb15e3022f5e2a1d5db05d88775267b1d659525644",
      "rows": 30,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/tours.csv",
      "format": "csv",
      "table": "tours",
      "key": "datasets/safari-trip/v2/csv/tours.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/safari-trip/v2/csv/tours.csv",
      "bytes": 12040,
      "sha256": "588bc9e9becba4455b52b154dc368a14ed0b214bbaca0a0b5b2ade6ca606df16",
      "rows": 200,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/animal_sightings.csv",
      "format": "csv",
      "table": "animal_sightings",
      "key": "datasets/safari-trip/v2/csv/animal_sightings.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/safari-trip/v2/csv/animal_sightings.csv",
      "bytes": 36426,
      "sha256": "b75406663f550e011f6c585984c546f97335610fa5c46089e9f70d991c4bf16c",
      "rows": 906,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/gear.csv",
      "format": "csv",
      "table": "gear",
      "key": "datasets/safari-trip/v2/csv/gear.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/safari-trip/v2/csv/gear.csv",
      "bytes": 19028,
      "sha256": "3d315aec8b275d3306521c06621f43458038171f393404ec6f6a08cdbd2c2872",
      "rows": 654,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/itineraries.csv",
      "format": "csv",
      "table": "itineraries",
      "key": "datasets/safari-trip/v2/csv/itineraries.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/safari-trip/v2/csv/itineraries.csv",
      "bytes": 17791,
      "sha256": "20bab346ea359591d10efbb787056e33b5df4cfbd520641944b27ca29c286f49",
      "rows": 560,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "safari-trip.json",
      "format": "json",
      "table": null,
      "key": "datasets/safari-trip/v2/safari-trip.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/safari-trip/v2/safari-trip.json",
      "bytes": 331906,
      "sha256": "e6a9e770f0d1d7accb972f1f23faf34aef75af4ec37b831be9c0b296ca0ec2df",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    },
    {
      "file": "sql/postgres.sql",
      "format": "sql-postgres",
      "table": null,
      "key": "datasets/safari-trip/v2/sql/postgres.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/safari-trip/v2/sql/postgres.sql",
      "bytes": 123020,
      "sha256": "8dc910968911ec1e36be3b4ce203c87e740127998a8a2559e5fa357e01315533",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mysql.sql",
      "format": "sql-mysql",
      "table": null,
      "key": "datasets/safari-trip/v2/sql/mysql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/safari-trip/v2/sql/mysql.sql",
      "bytes": 118812,
      "sha256": "8b9f0dc2641e1795606798a4f9ca456897377916b13d591c4cd367661862c3dc",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mssql.sql",
      "format": "sql-mssql",
      "table": null,
      "key": "datasets/safari-trip/v2/sql/mssql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/safari-trip/v2/sql/mssql.sql",
      "bytes": 123168,
      "sha256": "84430de44dd68a4368ade085479ca0745d2c83d32905fb17722c110709facbf2",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/sqlite.sql",
      "format": "sql-sqlite",
      "table": null,
      "key": "datasets/safari-trip/v2/sql/sqlite.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/safari-trip/v2/sql/sqlite.sql",
      "bytes": 118637,
      "sha256": "9e516ed45f93f96b8359047f08ecf1c18a2560288ae29787d5f5b2394d9a132d",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "prisma/seed.ts",
      "format": "prisma-seed",
      "table": null,
      "key": "datasets/safari-trip/v2/prisma/seed.ts",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/safari-trip/v2/prisma/seed.ts",
      "bytes": 255461,
      "sha256": "945e25cc24d14ac6fc2c0d4875821fc5f1021a719f0d79ba4f5578a7f5478696",
      "rows": null,
      "contentType": "application/typescript; charset=utf-8"
    },
    {
      "file": "django/fixtures.json",
      "format": "django-fixture",
      "table": null,
      "key": "datasets/safari-trip/v2/django/fixtures.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/safari-trip/v2/django/fixtures.json",
      "bytes": 435815,
      "sha256": "117e0030a753e20e6e54758ad81a417d9fcdf8c9138976a6674f23b0e35c7e06",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    }
  ],
  "publishedAt": 1788766884105,
  "updatedAt": 1788785818304
}
