Showing preview only (5,746K chars total). Download the full file or copy to clipboard to get everything.
Repository: DataExpert-io/data-engineer-handbook
Branch: main
Commit: bea2302ba7c4
Files: 113
Total size: 218.0 MB
Directory structure:
gitextract_h73oh_xs/
├── .gitignore
├── README.md
├── beginner-bootcamp/
│ ├── introduction.md
│ └── software.md
├── books.md
├── communities.md
├── data_cleaning.md
├── intermediate-bootcamp/
│ ├── introduction.md
│ ├── materials/
│ │ ├── 1-dimensional-data-modeling/
│ │ │ ├── .gitignore
│ │ │ ├── Makefile
│ │ │ ├── README.md
│ │ │ ├── data.dump
│ │ │ ├── docker-compose.yml
│ │ │ ├── example.env
│ │ │ ├── homework/
│ │ │ │ ├── .gitkeep
│ │ │ │ └── homework.md
│ │ │ ├── lecture-lab/
│ │ │ │ ├── analytical_query.sql
│ │ │ │ ├── graph_ddls.sql
│ │ │ │ ├── incremental_scd_query.sql
│ │ │ │ ├── pipeline_query.sql
│ │ │ │ ├── player_game_edges.sql
│ │ │ │ ├── player_player_edges.sql
│ │ │ │ ├── players.sql
│ │ │ │ ├── players_scd_table.sql
│ │ │ │ ├── scd_generation_query.sql
│ │ │ │ ├── team_vertices.sql
│ │ │ │ └── unnest_query.sql
│ │ │ ├── scripts/
│ │ │ │ └── init-db.sh
│ │ │ └── sql/
│ │ │ ├── actor_films.sql
│ │ │ ├── game_details.sql
│ │ │ ├── games.sql
│ │ │ ├── load_players_table_day2.sql
│ │ │ └── player_seasons.sql
│ │ ├── 2-fact-data-modeling/
│ │ │ ├── .gitignore
│ │ │ ├── README.md
│ │ │ ├── homework/
│ │ │ │ ├── .gitkeep
│ │ │ │ └── homework.md
│ │ │ ├── lecture-lab/
│ │ │ │ ├── anaylze_datelist.sql
│ │ │ │ ├── array_metrics_analysis.sql
│ │ │ │ ├── generate_datelist.sql
│ │ │ │ ├── generate_monthly_array_metrics.sql
│ │ │ │ ├── quick_sum_device_hits.sql
│ │ │ │ └── user_cumulated_populate.sql
│ │ │ └── tables/
│ │ │ ├── array_metrics_ddl.sql
│ │ │ ├── devices.sql
│ │ │ ├── events.sql
│ │ │ ├── game_details.sql
│ │ │ ├── games.sql
│ │ │ ├── monthly_user_site_hits.sql
│ │ │ ├── user_datelist_int.sql
│ │ │ └── users_cumulated.sql
│ │ ├── 3-spark-fundamentals/
│ │ │ ├── .gitignore
│ │ │ ├── Makefile
│ │ │ ├── README.md
│ │ │ ├── data/
│ │ │ │ ├── devices.csv
│ │ │ │ ├── events.csv
│ │ │ │ ├── maps.csv
│ │ │ │ ├── match_details.csv
│ │ │ │ ├── matches.csv
│ │ │ │ ├── medals.csv
│ │ │ │ └── medals_matches_players.csv
│ │ │ ├── docker-compose.yaml
│ │ │ ├── homework/
│ │ │ │ ├── homework.md
│ │ │ │ └── homework_testing.md
│ │ │ ├── notebooks/
│ │ │ │ ├── Caching.ipynb
│ │ │ │ ├── DatasetApi.ipynb
│ │ │ │ ├── bucket-joins-in-iceberg.ipynb
│ │ │ │ └── event_data_pyspark.ipynb
│ │ │ ├── requirements.txt
│ │ │ └── src/
│ │ │ ├── __init__.py
│ │ │ ├── jobs/
│ │ │ │ ├── __init__.py
│ │ │ │ ├── monthly_user_site_hits_job.py
│ │ │ │ ├── players_scd_job.py
│ │ │ │ └── team_vertex_job.py
│ │ │ └── tests/
│ │ │ ├── __init__.py
│ │ │ ├── conftest.py
│ │ │ ├── test_monthly_user_site_hits.py
│ │ │ ├── test_player_scd.py
│ │ │ └── test_team_vertex_job.py
│ │ ├── 4-apache-flink-training/
│ │ │ ├── .gitignore
│ │ │ ├── Dockerfile
│ │ │ ├── Makefile
│ │ │ ├── README.md
│ │ │ ├── docker-compose.yml
│ │ │ ├── example.env
│ │ │ ├── homework/
│ │ │ │ └── homework.md
│ │ │ ├── requirements.txt
│ │ │ ├── sql/
│ │ │ │ └── init.sql
│ │ │ └── src/
│ │ │ └── job/
│ │ │ ├── aggregation_job.py
│ │ │ └── start_job.py
│ │ ├── 4-applying-analytical-patterns/
│ │ │ ├── README.md
│ │ │ ├── homework/
│ │ │ │ └── homework.md
│ │ │ ├── lecture-lab/
│ │ │ │ ├── funnel_analysis.sql
│ │ │ │ ├── grouping_sets.sql
│ │ │ │ ├── growth_accounting.sql
│ │ │ │ ├── retention_analysis.sql
│ │ │ │ └── window_based_analysis.sql
│ │ │ └── tables/
│ │ │ └── user_growth_accounting.sql
│ │ ├── 5-kpis-and-experimentation/
│ │ │ ├── README.md
│ │ │ ├── homework/
│ │ │ │ └── homework.md
│ │ │ ├── requirements.txt
│ │ │ └── src/
│ │ │ └── server.py
│ │ ├── 6-data-impact-training/
│ │ │ ├── .gitignore
│ │ │ ├── README.md
│ │ │ ├── data/
│ │ │ │ ├── devices.csv
│ │ │ │ └── events.csv
│ │ │ └── homework/
│ │ │ └── homework.md
│ │ └── 6-data-pipeline-maintenance/
│ │ ├── README.md
│ │ └── homework/
│ │ └── homework.md
│ └── software.md
├── interviews.md
├── newsletters.md
└── projects.md
================================================
FILE CONTENTS
================================================
================================================
FILE: .gitignore
================================================
.idea/
.DS_Store
================================================
FILE: README.md
================================================
# The Data Engineering Handbook
<a href="https://trendshift.io/repositories/8755" target="_blank"><img src="https://trendshift.io/api/badge/repositories/8755" alt="DataExpert-io%2Fdata-engineer-handbook | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/></a>
This repo has all the resources you need to become an amazing data engineer!
## Getting started
If you are new to data engineering, start by following this [2024 breaking into data engineering roadmap](https://blog.dataengineer.io/p/the-2024-breaking-into-data-engineering)
If you are here for the [4-week free beginner boot camp](https://learn.dataexpert.io/program/the-absolute-beginner-data-engineering-boot-camp-starting-august-7th-6453/details) you can check out:
- [introduction](beginner-bootcamp/introduction.md)
- [software needed](beginner-bootcamp/software.md)
If you are here for the [6-week free intermediate boot camp](https://learn.dataexpert.io/program/free-community-boot-camp/details) you can check out
- [introduction](intermediate-bootcamp/introduction.md)
- [software needed](intermediate-bootcamp/software.md)
For more applied learning:
- Check out the [projects](projects.md) section for more hands-on examples!
- Check out the [interviews](interviews.md) section for more advice on how to pass data engineering interviews!
- Check out the [books](books.md) section for a list of high quality data engineering books
- Check out the [communities](communities.md) section for a list of high quality data engineering communities to join
- Check out the [newsletter](newsletters.md) section to learn via email
## Resources
### Great [list of over 25 books](books.md)
Top 3 must read books are:
- [Fundamentals of Data Engineering](https://www.amazon.com/Fundamentals-Data-Engineering-Robust-Systems/dp/1098108302/)
- [Designing Data-Intensive Applications](https://www.amazon.com/Designing-Data-Intensive-Applications-Reliable-Maintainable/dp/1449373321/)
- [Designing Machine Learning Systems](https://www.amazon.com/Designing-Machine-Learning-Systems-Production-Ready/dp/1098107969)
### Great [list of over 10 communities to join](communities.md):
Top must-join communities for DE:
- [DataExpert.io Community Discord](https://discord.gg/JGumAXncAK)
- [Data Talks Club Slack](https://datatalks.club/slack)
- [Data Engineer Things Community](https://www.dataengineerthings.org/)
Top must-join communities for ML:
- [AdalFlow Discord](https://discord.com/invite/ezzszrRZvT)
- [Chip Huyen MLOps Discord](https://discord.gg/dzh728c5t3)
### Companies:
- Orchestration
- [Mage](https://www.mage.ai)
- [Astronomer](https://www.astronomer.io)
- [Prefect](https://www.prefect.io)
- [Dagster](https://www.dagster.io)
- [Airflow](https://airflow.apache.org/)
- [Kestra](https://kestra.io/)
- [Shipyard](https://www.shipyardapp.com/)
- [Hamilton](https://github.com/dagworks-inc/hamilton)
- Data Lake / Cloud
- [Tabular](https://www.tabular.io)
- [Microsoft](https://www.microsoft.com)
- [Databricks](https://www.databricks.com/company/about-us)
- [Onehouse](https://www.onehouse.ai)
- [Delta Lake](https://delta.io/)
- [Ilum](https://ilum.cloud/)
- [DuckLake](https://ducklake.select/)
- [Apache Iceberg](https://iceberg.apache.org/)
- [Apache Polaris](https://polaris.apache.org/)
- [Lakekeeper](https://lakekeeper.io/)
- Data Warehouse
- [Snowflake](https://www.snowflake.com/en/)
- [Firebolt](https://www.firebolt.io/)
- [Databend](https://www.databend.com/)
- Data Quality
- [dbt](https://www.getdbt.com/)
- [Metaplane](https://www.metaplane.dev/)
- [Gable](https://www.gable.ai)
- [Great Expectations](https://www.greatexpectations.io)
- [Streamdal](https://streamdal.com)
- [Coalesce](https://coalesce.io/)
- [Soda](https://www.soda.io/)
- [DQOps](https://dqops.com/)
- [HEDDA.IO](https://hedda.io)
- [Dingo](https://github.com/MigoXLab/dingo)
- Education Companies
- [DataExpert.io](https://www.dataexpert.io)
- [LearnDataEngineering.com](https://www.learndataengineering.com)
- [AlgoExpert](https://www.algoexpert.io)
- [ByteByteGo](https://www.bytebytego.com)
- Analytics / Visualization
- [Preset](https://www.preset.io)
- [Starburst](https://www.starburst.io)
- [Metabase](https://www.metabase.com/)
- [Looker Studio](https://lookerstudio.google.com/overview)
- [Tableau](https://www.tableau.com/)
- [Power BI](https://powerbi.microsoft.com/)
- [Hex](https://hex.ai/)
- [Apache Superset](https://superset.apache.org/)
- [Evidence](https://evidence.dev)
- [Redash](https://redash.io/)
- [Lightdash](https://lightdash.com/)
- Data Integration
- [Cube](https://cube.dev)
- [Fivetran](https://www.fivetran.com)
- [Airbyte](https://airbyte.io)
- [dlt](https://dlthub.com/)
- [Sling](https://slingdata.io/)
- [Meltano](https://meltano.com/)
- [Estuary](https://estuary.dev/)
- [Arpe.io](https://arpe.io/)
- Semantic Layers
- [Cube](https://cube.dev)
- [dbt Semantic Layer](https://www.getdbt.com/product/semantic-layer)
- Modern OLAP
- [Apache Druid](https://druid.apache.org/)
- [ClickHouse](https://clickhouse.com/)
- [Apache Pinot](https://pinot.apache.org/)
- [Apache Kylin](https://kylin.apache.org/)
- [DuckDB](https://duckdb.org/)
- [QuestDB](https://questdb.io/)
- [StarRocks](https://www.starrocks.io/)
- LLM application library
- [AdalFlow](https://github.com/SylphAI-Inc/AdalFlow)
- [LangChain](https://github.com/langchain-ai/langchain)
- [LlamaIndex](https://github.com/run-llama/llama_index)
- Real-Time Data
- [Aggregations.io](https://aggregations.io)
- [Responsive](https://www.responsive.dev/)
- [RisingWave](https://risingwave.com/)
- [Striim](https://www.striim.com/)
- Data Lineage
- [OpenLineage](https://openlineage.io/)
### Data Engineering blogs of companies:
- [Netflix](https://netflixtechblog.com/tagged/big-data)
- [Uber](https://www.uber.com/blog/houston/data/?uclick_id=b2f43229-f3f4-4bae-bd5d-10a05db2f70c)
- [Databricks](https://www.databricks.com/blog/category/engineering/data-engineering)
- [Airbnb](https://medium.com/airbnb-engineering/data/home)
- [Amazon AWS Blog](https://aws.amazon.com/blogs/big-data/)
- [Microsoft Data Architecture Blogs](https://techcommunity.microsoft.com/t5/data-architecture-blog/bg-p/DataArchitectureBlog)
- [Microsoft Fabric Blog](https://blog.fabric.microsoft.com/)
- [Oracle](https://blogs.oracle.com/datawarehousing/)
- [Meta](https://engineering.fb.com/category/data-infrastructure/)
- [Onehouse](https://www.onehouse.ai/blog)
- [Estuary Blog](https://estuary.dev/blog/)
### Data Engineering Whitepapers:
- [A Five-Layered Business Intelligence Architecture](https://ibimapublishing.com/articles/CIBIMA/2011/695619/695619.pdf)
- [Lakehouse:A New Generation of Open Platforms that Unify Data Warehousing and Advanced Analytics](https://www.cidrdb.org/cidr2021/papers/cidr2021_paper17.pdf)
- [Big Data Quality: A Data Quality Profiling Model](https://link.springer.com/chapter/10.1007/978-3-030-23381-5_5)
- [The Data Lakehouse: Data Warehousing and More](https://arxiv.org/abs/2310.08697)
- [Spark: Cluster Computing with Working Sets](https://dl.acm.org/doi/10.5555/1863103.1863113)
- [The Google File System](https://research.google/pubs/the-google-file-system/)
- [Building a Universal Data Lakehouse](https://www.onehouse.ai/whitepaper/onehouse-universal-data-lakehouse-whitepaper)
- [XTable in Action: Seamless Interoperability in Data Lakes](https://arxiv.org/abs/2401.09621)
- [MapReduce: Simplified Data Processing on Large Clusters](https://research.google/pubs/mapreduce-simplified-data-processing-on-large-clusters/)
- [Tidy Data](https://vita.had.co.nz/papers/tidy-data.pdf)
- [Data Engineering Whitepapers](https://www.ssp.sh/brain/data-engineering-whitepapers/)
### Social Media Accounts
Here's the mostly comprehensive list of data engineering creators:
**(You have to have at least 5k followers somewhere to be added!)**
#### YouTube
| Name | YouTube Channel | Follower Count |
|----------------------------|---------------------------------------------------------------------------------------------------------|---------------:|
| ByteByteGo | [ByteByteGo](https://www.youtube.com/c/ByteByteGo) | 1,000,000+ |
| Data with Baraa | [Data with Baraa](https://www.youtube.com/@DataWithBaraa) | 195,000+ |
| Zach Wilson | [Data with Zach](https://www.youtube.com/@eczachly_) | 150,000+ |
| Shashank Mishra | [E-learning Bridge](https://www.youtube.com/@shashank_mishra) | 100,000+ |
| Seattle Data Guy | [Seattle Data Guy](https://www.youtube.com/c/SeattleDataGuy) | 100,000+ |
| TrendyTech | [TrendyTech](https://www.youtube.com/c/TrendytechInsights) | 100,000+ |
| Darshil Parmar | [Darshil Parmar](https://www.youtube.com/@DarshilParmar) | 100,000+ |
| Andreas Kretz | [Andreas Kretz](https://www.youtube.com/c/andreaskayy) | 100,000+ |
| The Ravit Show | [The Ravit Show](https://youtube.com/@theravitshow) | 100,000+ |
| Guy in a Cube | [Guy in a Cube](https://www.youtube.com/@GuyInACube) | 100,000+ |
| Adam Marczak | [Adam Marczak](https://www.youtube.com/@AdamMarczakYT) | 100,000+ |
| nullQueries | [nullQueries](https://www.youtube.com/@nullQueries) | 100,000+ |
| TECHTFQ by Thoufiq | [TECHTFQ by Thoufiq](https://www.youtube.com/@techTFQ) | 100,000+ |
| SQLBI | [SQLBI](https://www.youtube.com/@SQLBI) | 100,000+ |
| Alex Freberg | [Alex The Analyst](https://www.youtube.com/@AlexTheAnalyst) | 100,000+ |
| Ankur Ranjan | [Big Data Show](https://www.youtube.com/@TheBigDataShow) | 100,000+ |
| Prashanth Kumar Pandey | [ScholarNest](https://www.youtube.com/@ScholarNest) | 77,000+ |
| ITVersity | [ITVersity](https://www.youtube.com/@itversity) | 67,000+ |
| Soumil Shah | [Soumil Shah](https://www.youtube.com/@SoumilShah) | 50,000 |
| Ansh Lamba | [Ansh Lamba](https://www.youtube.com/@AnshLambaJSR) | 18,000+ |
| Azure Lib | [Azure Lib](https://www.youtube.com/@azurelib-academy) | 10,000+ |
| Advancing Analytics | [Advancing Analytics](https://www.youtube.com/@AdvancingAnalytics) | 10,000+ |
| Kahan Data Solutions | [Kahan Data Solutions](https://www.youtube.com/@KahanDataSolutions) | 10,000+ |
| Ankit Bansal | [Ankit Bansal](https://youtube.com/@ankitbansal6) | 10,000+ |
| Mr. K Talks Tech | [Mr. K Talks Tech](https://www.youtube.com/channel/UCzdOan4AmF65PmLLks8Lmww) | 10,000+ |
| Samuel Focht | [Python Basics](https://www.youtube.com/@PythonBasics) | 10,000+ |
| Mehdi Ouazza | [Mehdio DataTV](https://www.youtube.com/@mehdio) | 3,000+ |
| Alex Merced | [Alex Merced Data](https://www.youtube.com/@alexmerceddata_) | N/A |
| John Kutay | [John Kutay](https://www.youtube.com/@striiminc) | N/A |
| Emil Kaminski | [Databricks For Professionals](https://www.youtube.com/@DatabricksPro) | 5,000+ |
#### LinkedIn
| Name | LinkedIn Profile | Follower Count |
|--------------------------|----------------------------------------------------------------------------------------------------------|---------------:|
| Zach Wilson | [Zach Wilson](https://www.linkedin.com/in/eczachly) | 400,000+ |
| Chip Huyen | [Chip Huyen](https://www.linkedin.com/in/chiphuyen/) | 250,000+ |
| Shashank Mishra | [Shashank Mishra](https://www.linkedin.com/in/shashank219/) | 100,000+ |
| Seattle Data Guy | [Ben Rogojan](https://www.linkedin.com/in/benjaminrogojan) | 100,000+ |
| TrendyTech | [Sumit Mittal](https://www.linkedin.com/in/bigdatabysumit/) | 100,000+ |
| Darshil Parmar | [Darshil Parmar](https://www.linkedin.com/in/darshil-parmar/) | 100,000+ |
| Andreas Kretz | [Andreas Kretz](https://www.linkedin.com/in/andreas-kretz) | 100,000+ |
| ByteByteGo (Alex Xu) | [Alex Xu](https://www.linkedin.com/in/alexxubyte) | 100,000+ |
| Azure Lib (Deepak Goyal) | [Deepak Goyal](https://www.linkedin.com/in/deepak-goyal-93805a17/) | 100,000+ |
| Alex Freberg | [Alex Freberg](https://www.linkedin.com/in/alex-freberg/) | 100,000+ |
| SQLBI (Marco Russo) | [Marco Russo](https://www.linkedin.com/in/sqlbi) | 50,000+ |
| Ankit Bansal | [Ankit Bansal](https://www.linkedin.com/in/ankitbansal6/) | 50,000+ |
| Marc Lamberti | [Marc Lamberti](https://www.linkedin.com/in/marclamberti) | 50,000+ |
| Ankur Ranjan | [Ankur Ranjan](https://www.linkedin.com/in/thebigdatashow/) | 48,000+ |
| ITVersity (Durga Gadiraju)| [Durga Gadiraju](https://www.linkedin.com/in/durga0gadiraju/) | 48,000+ |
| Prashanth Kumar Pandey | [Prashanth Kumar Pandey](https://www.linkedin.com/in/prashant-kumar-pandey/) | 37,000+ |
| Alex Merced | [Alex Merced](https://www.linkedin.com/in/alexmerced) | 30,000+ |
| Ijaz Ali | [Ijaz Ali](https://www.linkedin.com/in/ijaz-ali-6aaa87122/) | 24,000+ |
| Mehdi Ouazza | [Mehdi Ouazza](https://www.linkedin.com/in/mehd-io/) | 20,000+ |
| Ananth Packkildurai | [Ananth Packkildurai](https://www.linkedin.com/in/ananthdurai/) | 18,000+ |
| Ansh Lamba | [Ansh Lamba](https://www.linkedin.com/in/ansh-lamba-793681184/) | 13,000+ |
| Manojkumar Vadivel | [Manojkumar Vadivel](https://www.linkedin.com/in/manojvsj/) | 12,000+ |
| Advancing Analytics | [Simon Whiteley](https://www.linkedin.com/in/simon-whiteley-uk/) | 10,000+ |
| Li Yin | [Li Yin](https://www.linkedin.com/in/li-yin-ai/) | 10,000+ |
| Jaco van Gelder | [Jaco van Gelder](https://www.linkedin.com/in/jwvangelder/) | 10,000+ |
| Joseph Machado | [Joseph Machado](https://www.linkedin.com/in/josephmachado1991/) | 10,000+ |
| Eric Roby | [Eric Roby](https://www.linkedin.com/in/codingwithroby/) | 10,000+ |
| Simon Späti | [Simon Späti](https://www.linkedin.com/in/sspaeti/) | 10,000+ |
| Constantin Lungu | [Constantin Lungu](https://www.linkedin.com/in/constantin-lungu-668b8756) | 10,000+ |
| Lakshmi Sontenam | [Lakshmi Sontenam](https://www.linkedin.com/in/shivaga9esh) | 9,500+ |
| Dani Pálma | [Daniel Pálma](https://www.linkedin.com/in/danthelion/) | 9,000+ |
| Soumil Shah | [Soumil Shah](https://www.linkedin.com/in/shah-soumil/) | 8,000+ |
| Arnaud Milleker | [Arnaud Milleker](https://www.linkedin.com/in/arnaudmilleker/) | 7,000+ |
| Dimitri Visnadi | [Dimitri Visnadi](https://www.linkedin.com/in/visnadi/) | 7,000+ |
| Lenny | [Lenny A](https://www.linkedin.com/in/lennyardiles/) | 6,000+ |
| Dipankar Mazumdar | [Dipankar Mazumdar](https://www.linkedin.com/in/dipankar-mazumdar/) | 5,000+ |
| Daniel Ciocirlan | [Daniel Ciocirlan](https://www.linkedin.com/in/danielciocirlan) | 5,000+ |
| Hugo Lu | [Hugo Lu](https://www.linkedin.com/in/hugo-lu-confirmed/) | 5,000+ |
| Tobias Macey | [Tobias Macey](https://www.linkedin.com/in/tmacey) | 5,000+ |
| Marcos Ortiz | [Marcos Ortiz](https://www.linkedin.com/in/mlortiz) | 5,000+ |
| Julien Hurault | [Julien Hurault](https://www.linkedin.com/in/julienhuraultanalytics/) | 5,000+ |
| John Kutay | [John Kutay](https://www.linkedin.com/in/johnkutay/) | 5,000+ |
| Hassaan Akbar | [Hassaan Akbar](https://www.linkedin.com/in/ehassaan) | 5,000+ |
| Subhankar | [Subhankar](https://www.linkedin.com/in/subhankarumass/) | 5,000+ |
| Nitin | [Nitin](https://www.linkedin.com/in/tomernitin29/) | N/A |
| Hassaan | [Hassaan](https://www.linkedin.com/in/shassaan/) | 5000+ |
| Javier de la Torre | [Javier](www.linkedin.com/in/javier-de-la-torre-medina) | 5000+ |
#### X/Twitter
| Name | X/Twitter Profile | Follower Count |
|-------------------|------------------------------------------------------------------|---------------:|
| ByteByteGo | [alexxubyte](https://twitter.com/alexxubyte/) | 100,000+ |
| Dan Kornas | [@dankornas](https://www.twitter.com/dankornas) | 66,000+ |
| Zach Wilson | [EcZachly](https://www.twitter.com/EcZachly) | 30,000+ |
| Seattle Data Guy | [SeattleDataGuy](https://www.twitter.com/SeattleDataGuy) | 10,000+ |
| SQLBI | [marcorus](https://x.com/marcorus) | 10,000+ |
| Joseph Machado | [startdataeng](https://twitter.com/startdataeng) | 5,000+ |
| Alex Merced | [@amdatalakehouse](https://www.twitter.com/amdatalakehouse) | N/A |
| John Kutay | [@JohnKutay](https://x.com/JohnKutay) | N/A |
| Mehdi Ouazza | [mehd_io](https://x.com/mehd_io) | N/A |
#### Instagram
| Name | Instagram Profile | Follower Count |
|----------------|--------------------------------------------------------------------------------------|---------------:|
| Sundas Khalid | [sundaskhalidd](https://www.instagram.com/sundaskhalidd) | 300,000+ |
| Zach Wilson | [eczachly](https://www.instagram.com/eczachly) | 150,000+ |
| Andreas Kretz | [learndataengineering](https://www.instagram.com/learndataengineering) | 5,000+ |
| Alex Merced | [@alexmercedcoder](https://www.instagram.com/alexmercedcoder) | N/A |
#### TikTok
| Name | TikTok Profile | Follower Count |
|-----------------|----------------------------------------------------------------------------------|---------------:|
| Zach Wilson | [@eczachly](https://www.tiktok.com/@eczachly) | 70,000+ |
| Alex Freberg | [@alex_the_analyst](https://www.tiktok.com/@alex_the_analyst) | 10,000+ |
| Mehdi Ouazza | [@mehdio_datatv](https://www.tiktok.com/@mehdio_datatv) | N/A |
### Great Podcasts
- [The Data Engineering Show](https://www.dataengineeringshow.com/)
- [Data Engineering Podcast](https://www.dataengineeringpodcast.com/)
- [DataTopics](https://www.datatopics.io/)
- [The Data Engineering Side Of Data](https://podcasts.apple.com/us/podcast/the-engineering-side-of-data/id1566999533)
- [DataWare](https://www.ascend.io/dataaware-podcast/)
- [The Data Coffee Break Podcast](https://www.deezer.com/us/show/5293247)
- [The Datastack show](https://datastackshow.com/)
- [Intricity101 Data Sharks Podcast](https://www.intricity.com/learningcenter/podcast)
- [Drill to Detail with Mark Rittman](https://www.rittmananalytics.com/drilltodetail/)
- [Analytics Power Hour](https://analyticshour.io/)
- [Catalog & cocktails](https://listen.casted.us/public/127/Catalog-%26-Cocktails-2fcf8728)
- [Datatalks](https://datatalks.club/podcast.html)
- [Data Brew by Databricks](https://www.databricks.com/discover/data-brew)
- [The Data Cloud Podcast by Snowflake](https://rise-of-the-data-cloud.simplecast.com/)
- [What's New in Data](https://www.striim.com/podcast/)
- [Open||Source||Data by Datastax](https://www.datastax.com/resources/podcast/open-source-data)
- [Streaming Audio by confluent](https://developer.confluent.io/podcast/)
- [The Data Scientist Show](https://podcasts.apple.com/us/podcast/the-data-scientist-show/id1584430381)
- [MLOps.community](https://podcast.mlops.community/)
- [Monday Morning Data Chat](https://open.spotify.com/show/3Km3lBNzJpc1nOTJUtbtMh)
- [The Data Chief](https://www.thoughtspot.com/data-chief/podcast)
- [The Joe Reis Show](https://open.spotify.com/show/3mcKitYGS4VMG2eHd2PfDN)
- [Data Bytes](https://open.spotify.com/show/6VbjON5Ck9QYInBnmoqrDE)
- [Super Data Science: ML & AI Podcast with Jon Krohn](https://open.spotify.com/show/1n8P7ZSgfVLVJ3GegxPat1)
### Great [list of 20+ newsletters](newsletters.md)
Top must follow newsletters for data engineering:
- [DataEngineer.io Newsletter](https://blog.dataengineer.io)
- [Joe Reis](https://joereis.substack.com)
- [Start Data Engineering](https://www.startdataengineering.com)
- [Data Engineering Weekly](https://www.dataengineeringweekly.com)
- [Data Engineer Things](https://dataengineerthings.substack.com/)
### Glossaries:
- [Data Engineering Vault](https://www.ssp.sh/brain/data-engineering/)
- [Airbyte Data Glossary](https://glossary.airbyte.com/)
- [Data Engineering Wiki by Reddit](https://dataengineering.wiki/Index)
- [Seconda Glossary](https://www.secoda.co/glossary/)
- [Glossary Databricks](https://www.databricks.com/glossary)
- [Airtable Glossary](https://airtable.com/shrGh8BqZbkfkbrfk/tbluZ3ayLHC3CKsDb)
- [Data Engineering Glossary by Dagster](https://dagster.io/glossary)
### Design Patterns
- [Cumulative Table Design](https://www.github.com/DataExpert-io/cumulative-table-design)
- [Microbatch Deduplication](https://www.github.com/EcZachly/microbatch-hourly-deduped-tutorial)
- [The Little Book of Pipelines](https://www.github.com/EcZachly/little-book-of-pipelines)
- [Data Developer Platform](https://datadeveloperplatform.org/architecture/)
### Courses / Academies
- [DataExpert.io course](https://www.dataexpert.io) use code **HANDBOOK10** for a discount!
- [LearnDataEngineering.com](https://www.learndataengineering.com)
- [Technical Freelancer Academy](https://www.technicalfreelanceracademy.com/) Use code **zwtech** for a discount!
- [IBM Data Engineering for Everyone](https://www.edx.org/learn/data-engineering/ibm-data-engineering-basics-for-everyone)
- [Qwiklabs](https://www.qwiklabs.com/)
- [DataCamp](https://www.datacamp.com/)
- [Udemy Courses from Shruti Mantri](https://www.udemy.com/user/shruti-mantri-5/)
- [Rock the JVM](https://rockthejvm.com/) teaches Spark (in Scala), Flink and others
- [Data Engineering Zoomcamp by DataTalksClub](https://datatalks.club/)
- [Efficient Data Processing in Spark](https://josephmachado.podia.com/efficient-data-processing-in-spark)
- [Scaler](https://www.scaler.com/)
- [DataTeams - Data Engingeer hiring platform](https://www.datateams.ai/)
- [Udemy Courses from Daniel Blanco](https://danielblanco.dev/links)
- [DeepLearning.AI Data Engineering Professional Certificate](https://www.coursera.org/professional-certificates/data-engineering)
### Certifications Courses
- [Google Cloud Certified - Professional Data Engineer](https://cloud.google.com/certification/data-engineer)
- [Databricks - Certified Associate Developer for Apache Spark](https://www.databricks.com/learn/certification/apache-spark-developer-associate)
- [Databricks - Data Engineer Associate](https://www.databricks.com/learn/certification/data-engineer-associate)
- [Databricks - Data Engineer Professional](https://www.databricks.com/learn/certification/data-engineer-professional)
- [Microsoft DP-203: Data Engineering on Microsoft Azure](https://learn.microsoft.com/en-us/credentials/certifications/exams/dp-203/?tab=tab-learning-paths)
- [Microsoft DP-600: Fabric Analytics Engineer Associate](https://learn.microsoft.com/credentials/certifications/fabric-analytics-engineer-associate/)
- [Microsoft DP-700: Fabric Data Engineer Associate](https://learn.microsoft.com/en-us/credentials/certifications/fabric-data-engineer-associate/?practice-assessment-type=certification)
- [AWS Certified Data Engineer - Associate](https://aws.amazon.com/certification/certified-data-engineer-associate/)
================================================
FILE: beginner-bootcamp/introduction.md
================================================
### The ultimate YouTube DE boot camp
This will be four weeks of curricula
- Bootcamp Database Setup is [here](https://www.dataexpert.io/lesson/boot-camp-database-setup-yt)
- SQL
- Homework (coming soon)
- Python
- Homework (coming soon)
- Data Modeling
- Homework (coming soon)
- Data Pipelines
- Homework (coming soon)
================================================
FILE: beginner-bootcamp/software.md
================================================
Make sure your computer can run
- Docker (install guide [here](https://docs.docker.com/engine/install/))
- Python 3.11 (or higher)
================================================
FILE: books.md
================================================
# Amazing Data Engineering books to read
- [Fundamentals of Data Engineering](https://www.amazon.com/Fundamentals-Data-Engineering-Robust-Systems/dp/1098108302/)
- [Designing Data-Intensive Applications](https://www.amazon.com/Designing-Data-Intensive-Applications-Reliable-Maintainable/dp/1449373321/)
- [Designing Machine Learning Systems](https://www.amazon.com/Designing-Machine-Learning-Systems-Production-Ready/dp/1098107969)
- [The Hundred Page Machine Learning Book](https://www.amazon.com/Hundred-Page-Machine-Learning-Book/dp/199957950X)
- [Kimball - The Data Warehouse Toolkit](https://ia801609.us.archive.org/14/items/the-data-warehouse-toolkit-kimball/The%20Data%20Warehouse%20Toolkit%20-%20Kimball.pdf)
- [Data Mesh](https://www.oreilly.com/library/view/data-mesh/9781492092384/)
- [Machine Learning System Design Interview](https://www.amazon.com/Machine-Learning-System-Design-Interview/dp/1736049127)
- [Streaming Systems](https://www.amazon.com/Streaming-Systems-Where-Large-Scale-Processing/dp/1491983876)
- [High Performance Spark](https://www.amazon.com/High-Performance-Spark-Practices-Optimizing/dp/1491943203)
- [Spark: The Definitive Guide](https://www.oreilly.com/library/view/spark-the-definitive/9781491912201/)
- [Learning Spark](https://www.oreilly.com/library/view/learning-spark/9781449359034/)
- [Building Evolutionary Architectures, 2nd Edition](https://www.oreilly.com/library/view/building-evolutionary-architectures/9781492097532/)
- [Data Management at Scale, 2nd Edition](https://www.oreilly.com/library/view/data-management-at/9781098138851/)
- [Deciphering Data Architectures](https://www.oreilly.com/library/view/deciphering-data-architectures/9781098150754/)
- [97 Things Every Data Engineer Should Know: Collective Wisdom from the Experts](https://www.amazon.com/Things-Every-Data-Engineer-Should/dp/1492062413)
- [Data Governance: The Definitive Guide](https://www.oreilly.com/library/view/data-governance-the/9781492063483/)
- [Trino: The Definitive Guide](https://trino.io/trino-the-definitive-guide.html)
- [Delta Lake: The Definitive Guide](https://www.oreilly.com/library/view/delta-lake-the/9781098151935/)
- [Hadoop: The Definitive Guide](https://www.oreilly.com/library/view/hadoop-the-definitive/9781491901687/)
- [Modern Data Engineering with Apache Spark: A Hands-On Guide for Building Mission-Critical Streaming Applications](https://www.amazon.com/Modern-Engineering-Apache-Spark-Hands/dp/1484274512)
- [Data Engineering with dbt: A practical guide to building a dependable data platform with SQL](https://www.amazon.com/Data-Engineering-dbt-cloud-based-dependable-ebook/dp/B0C4LL19G7)
- [Data Engineering with AWS](https://www.oreilly.com/library/view/data-engineering-with/9781804614426/)
- [Practical DataOps: Delivering Agile Date Science at Scale](https://www.amazon.com/Practical-DataOps-Delivering-Agile-Science/dp/1484251032)
- [Data Engineering Design Patterns](https://www.dedp.online/)
- [Snowflake Data Engineering](https://www.manning.com/books/snowflake-data-engineering)
- [Unlocking dbt](https://www.amazon.com/Unlocking-dbt-Design-Transformations-Warehouse/dp/1484296990/)
- [Learning Spark, Second Edition](https://pages.databricks.com/rs/094-YMS-629/images/LearningSpark2.0.pdf)
- [Pandas Cookbook, Third Edition](https://www.amazon.com/Pandas-Cookbook-Practical-scientific-exploratory/dp/1836205872)
- [Data Pipelines Pocket Reference](https://www.oreilly.com/library/view/data-pipelines-pocket/9781492087823/)
- [Stream Processing with Apache Flink](https://www.oreilly.com/library/view/stream-processing-with/9781491974285/)
- [Apache Iceberg The Definitive Guide](https://www.oreilly.com/library/view/apache-iceberg-the/9781098148614/)
- [Python for Data Analysis, 3E](https://wesmckinney.com/book/)
- [Architecting an Apache Iceberg Lakehouse](https://www.manning.com/books/architecting-an-apache-iceberg-lakehouse)
- [Learn AI Data Engineering in a Month of Lunches](https://www.manning.com/books/learn-ai-data-engineering-in-a-month-of-lunches)
================================================
FILE: communities.md
================================================
# Awesome communities to join
- [Seattle Data Guy Discord](https://discord.gg/ah95MZKkFF)
- [EcZachly Data Engineering Discord](https://discord.gg/JGumAXncAK)
- [AdalFlow Discord (LLM Library)](https://discord.com/invite/ezzszrRZvT)
- [Chip Huyen MLOps Discord](https://discord.gg/dzh728c5t3)
- [Data Engineer Things Community](https://www.dataengineerthings.org/)
- [DBT Community](https://www.getdbt.com/community/join-the-community/)
- [r/dataengineering](https://www.reddit.com/r/dataengineering)
- [Microsoft Fabric Community](https://community.fabric.microsoft.com/)
- [r/MicrosoftFabric](https://www.reddit.com/r/MicrosoftFabric/)
- [r/databricks](https://www.reddit.com/r/databricks/)
- [Data Talks Club Slack](https://datatalks.club/slack)
- [Data Engineering Wiki](https://dataengineering.wiki/)
================================================
FILE: data_cleaning.md
================================================
## Data Cleaning Best Practices
# Data Cleaning Best Practices
- Remove duplicate rows to avoid data leakage.
- Standardize column names (lowercase, underscores).
- Handle missing values using median/mean or domain logic.
- Convert date columns to proper datetime format.
- Validate data types before modeling.
## Python Example
import pandas as pd
df = pd.read_csv("data.csv")
df = df.drop_duplicates()
df.columns = [c.lower().replace(" ", "_") for c in df.columns]
num_cols = df.select_dtypes(include="number").columns
df[num_cols] = df[num_cols].fillna(df[num_cols].median())
if "date" in df.columns:
df["date"] = pd.to_datetime(df["date"])
================================================
FILE: intermediate-bootcamp/introduction.md
================================================
### The ultimate YouTube DE boot camp
This will be six weeks of curricula
- Bootcamp Database Setup is [here](https://www.dataexpert.io/lesson/boot-camp-database-setup-yt)
- Dimensional Data Modeling
- Homework is [here](materials/1-dimensional-data-modeling/homework/homework.md)
- Day 1 Lecture is [here](https://www.dataexpert.io/lesson/dimensional-data-modeling-lecture-day-1-yt)
- Day 1 Lab is [here](https://www.dataexpert.io/lesson/dimensional-data-modeling-lab-day-1-yt)
- Day 2 Lecture is [here](https://www.dataexpert.io/lesson/dimensional-data-modeling-day-2-lecture-yt)
- Day 2 Lab is [here](https://www.dataexpert.io/lesson/dimensional-data-modeling-day-2-lab-yt)
- Day 3 Lecture is [here](https://www.dataexpert.io/lesson/dimensional-data-modeling-day-3-lecture-yt)
- Day 3 Lab is [here](https://www.dataexpert.io/lesson/dimensional-data-modeling-day-3-lab-yt)
- Fact Data Modeling
- Homework is [here](materials/2-fact-data-modeling/homework/homework.md)
- Day 1 Lecture is [here](https://www.dataexpert.io/lesson/fact-data-modeling-day-1-lecture-yt)
- Day 1 Lab is [here](https://www.dataexpert.io/lesson/fact-data-modeling-day-1-lab-yt)
- Day 2 Lecture is [here](https://www.dataexpert.io/lesson/fact-data-modeling-day-2-lecture-yt)
- Day 2 Lab is [here](https://www.dataexpert.io/lesson/fact-data-modeling-day-2-lab-yt)
- Day 3 Lecture is [here](https://www.dataexpert.io/lesson/fact-data-modeling-day-3-lecture-yt)
- Day 3 Lab is [here](https://www.dataexpert.io/lesson/fact-data-modeling-day-3-lab-yt)
- Data Quality (analytics)
- Data Quality (infrastructure)
- Data impact and visualization (analytics)
- Day 1 Lecture is [here](https://www.dataexpert.io/lesson/data-visualization-and-impact-day-1-lecture-yt)
- Day 1 Lab is [here](https://www.dataexpert.io/lesson/data-visualization-and-impact-day-1-lab-yt)
- Day 2 Lecture is [here](https://www.dataexpert.io/lesson/data-visualization-and-impact-day-2-lecture-yt)
- Day 2 Lab is [here](https://www.dataexpert.io/lesson/data-visualization-and-impact-day-2-lab-yt)
- Data pipeline maintenance (infrastructure)
- Homework is [here](materials/6-data-pipeline-maintenance/homework/homework.md)
- Day 1 Lecture is [here](https://www.dataexpert.io/lesson/data-pipeline-maintenance-day-1-lecture-yt)
- Day 1 Lab is [here](https://www.dataexpert.io/lesson/data-pipeline-maintenance-day-1-lab-yt)
- Day 2 Lecture is [here](https://www.dataexpert.io/lesson/data-pipeline-maintenance-day-2-lecture-yt)
- Applying Analytical Patterns (analytics)
- Homework is [here](materials/4-applying-analytical-patterns/homework/homework.md)
- Day 1 Lecture is [here](https://www.dataexpert.io/lesson/data-quality-patterns-day-1-lecture-yt)
- Day 1 Lab is [here](https://www.dataexpert.io/lesson/data-quality-patterns-day-1-lab-yt)
- Day 2 Lecture is [here](https://www.dataexpert.io/lesson/data-quality-patterns-day-2-lecture-yt)
- Real-time Pipelines with Flink and Kafka (infrastructure)
- Flink setup is [here](https://www.dataexpert.io/lesson/flink-lab-setup-yt)
- Homework is [here](materials/4-apache-flink-training/homework/homework.md)
- Day 1 Lecture is [here](https://www.dataexpert.io/lesson/streaming-pipelines-day-1-lecture-yt)
- Day 1 Lab is [here](https://www.dataexpert.io/lesson/streaming-pipelines-day-1-lab-yt)
- Day 2 Lecture is [here](https://www.dataexpert.io/lesson/streaming-pipelines-day-2-lecture-yt)
- Day 2 Lab is [here](https://www.dataexpert.io/lesson/streaming-pipelines-day-2-lab-yt)
- KPIs and Experimentation (analytics)
- Homework is [here](materials/5-kpis-and-experimentation/homework/homework.md)
- Day 1 Lecture is [here](https://www.dataexpert.io/lesson/kpis-and-experimentation-day-1-lecture-yt)
- Day 1 Lab is [here](https://www.dataexpert.io/lesson/kpis-and-experimentation-day-1-lab-yt)
- Day 2 Lecture is [here](https://www.dataexpert.io/lesson/kpis-and-experimentation-day-2-lecture-yt)
- Apache Spark fundamentals (infrastructure)
- Homework is [here](materials/3-spark-fundamentals/homework/homework.md)
- Testing Homework is [here](materials/3-spark-fundamentals/homework/homework_testing.md)
- Day 1 Lecture is [here](https://www.dataexpert.io/lesson/apache-spark-day-1-lecture-yt)
- Day 1 Lab is [here](https://www.dataexpert.io/lesson/apache-spark-day-1-lab-yt)
- Day 2 Lecture is [here](https://www.dataexpert.io/lesson/apache-spark-day-2-lecture-yt)
- Day 2 Lab is [here](https://www.dataexpert.io/lesson/apache-spark-day-2-lab-yt)
- Day 3 Lecture is [here](https://www.dataexpert.io/lesson/apache-spark-day-3-lecture-yt)
- Day 3 Lab is [here](https://www.dataexpert.io/lesson/apache-spark-day-3-lab-yt)
================================================
FILE: intermediate-bootcamp/materials/1-dimensional-data-modeling/.gitignore
================================================
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class
# C extensions
*.so
# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
pip-wheel-metadata/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST
# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec
# Installer logs
pip-log.txt
pip-delete-this-directory.txt
# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/
.pytest_cache/
# Translations
*.mo
*.pot
# Django stuff:
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal
# Flask stuff:
instance/
.webassets-cache
# Scrapy stuff:
.scrapy
# Sphinx documentation
docs/_build/
# PyBuilder
target/
# Jupyter Notebook
.ipynb_checkpoints
# IPython
profile_default/
ipython_config.py
# pyenv
.python-version
# pipenv
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
# However, in case of collaboration, if having platform-specific dependencies or dependencies
# having no cross-platform support, pipenv may install dependencies that don't work, or not
# install all needed dependencies.
#Pipfile.lock
# PEP 582; used by e.g. github.com/David-OConnor/pyflow
__pypackages__/
# Celery stuff
celerybeat-schedule
celerybeat.pid
# SageMath parsed files
*.sage.py
# Environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/
# Spyder project settings
.spyderproject
.spyproject
# Rope project settings
.ropeproject
# mkdocs documentation
/site
# mypy
.mypy_cache/
.dmypy.json
dmypy.json
# Pyre type checker
.pyre/
dump.sql
# Personal workspace files
.idea/*
.vscode/*
postgres-data/*
homework/your_username
================================================
FILE: intermediate-bootcamp/materials/1-dimensional-data-modeling/Makefile
================================================
include example.env
.PHONY: up
up:
@if [ ! -f .env ]; then \
echo "WARNING: .env file does not exist! 'example.env' copied to '.env'. Please update the configurations in the .env file running this target."; \
cp example.env .env; \
exit 1; \
fi
docker compose up -d;
.PHONY: down
down:
docker compose down -v
@if [[ "$(docker ps -q -f name=${DOCKER_CONTAINER})" ]]; then \
echo "Terminating running container..."; \
docker rm ${DOCKER_CONTAINER}; \
fi
.PHONY: stop
stop:
docker compose stop
.PHONY: start
start:
docker logs start
.PHONY: restart
restart:
docker compose down -v; \
sleep 5; \
docker compose up -d;
.PHONY: logs
logs:
docker logs ${DOCKER_CONTAINER}
.PHONY: inspect
inspect:
docker inspect ${DOCKER_CONTAINER} | grep "Source"
.PHONY: ip
ip:
@if [[ "$$(docker ps -q -f name=${DOCKER_CONTAINER})" ]]; then \
echo "Container ${DOCKER_CONTAINER} running! Forwarding connections from $$(docker port ${DOCKER_CONTAINER})"; \
else \
echo "Container not running. Please start the container and try again."; \
fi
================================================
FILE: intermediate-bootcamp/materials/1-dimensional-data-modeling/README.md
================================================
# 📊 Get Set for Data Modeling (Weeks 1 & 2)
Welcome, Data Explorer! 🚀 Whether you're just beginning or brushing up on skills, this guide will walk you through everything you need — from installing tools to troubleshooting hiccups — all in one friendly place.
---
## 🧰 Your Dev Toolkit at a Glance
🟦 **Git**
_Clone code, version your work._
🟪 **PostgreSQL**
_Reliable, powerful open-source database engine._
⬛ **PSQL (CLI)**
_Talk directly to your database via terminal._
🐳 **Docker + Compose**
_Spin up Postgres + PGAdmin instantly, no manual setup._
🧑💻 **PGAdmin / DBeaver / VS Code**
_Graphical tools for exploring and querying your data._
---
## 📝 Your Setup in 3 Steps
### Step 1️⃣: Download the Code
Clone the course files onto your machine:
```bash
git clone git@github.com:DataExpert-io/data-engineer-handbook.git
cd data-engineer-handbook/intermediate-bootcamp/materials/1-dimensional-data-modeling
```
> 🔐 Need SSH set up first? Use [GitHub’s SSH guide](https://docs.github.com/en/authentication/connecting-to-github-with-ssh)
---
### Step 2️⃣: Start PostgreSQL
#### 🐳 Option A: Docker (Simplest & Preferred)
1. Install [Docker Desktop](https://www.docker.com/products/docker-desktop)
2. Copy the env template:
```bash
cp example.env .env
```
> The `.env` file stores credentials used by PostgreSQL and PGAdmin
3. Start PostgreSQL & PGAdmin in containers:
```bash
# Mac users:
make up
# Windows (or general):
docker compose up -d
```
4. Check containers are running:
```bash
docker ps -a
```
5. When you're done with work:
```bash
docker compose stop
```
---
#### 🧩 Option B: Local Installation (Manual Setup)
1. Install PostgreSQL
- [Mac – use Homebrew](https://brew.sh/)
- [Windows – official installer](https://www.postgresql.org/download/)
2. Restore the sample database:
```bash
pg_restore -c --if-exists -U <your-username> -d postgres data.dump
```
If that fails, try:
```bash
pg_restore -U [username] -d [db_name] -h [host] -p [port] data.dump
```
---
### Step 3️⃣: Connect to PostgreSQL
Choose any GUI tool you like. Here’s how:
#### 🌐 If using PGAdmin (via Docker browser)
1. Go to [http://localhost:5050](http://localhost:5050)
2. Log in using the credentials from your `.env` file
3. Create a new server:
1. `Dashboard` ➜ `Quick Links` ➜ `Add New Server`
2. Under the `General` tab: give it a friendly `Name`, e.g. `Data-Engineer-Handbook-DB`
3. `Connection` tab: Copy in credentials from `.env`, where the defaults are:
- **Name**: Name of your choice
- **Host**: `my-postgres-container`
- **Port**: `5432`
- **Database**: `postgres`
- **Username**: `postgres`
- **Password**: `postgres`
- ✅ Save Password
4. Click **Save** — and you’re connected!
5. Expand `Servers` › *`your-server`* › `Databases` › `postgres`
- The database must be highlighted to be able to open the `Query Tool`
- Further expanding `postgres` › `Schemas` › `public` › `Tables` should show the expected content
---
#### 💻 If using a desktop client (like DataGrip, DBeaver, or VS Code)
Use the following values to set up a new PostgreSQL connection:
- **Host**: `localhost`
- **Port**: `5432`
- **Database**: `postgres`
- **Username**: `postgres`
- **Password**: `postgres`
- ✅ Save Password
✅ Test & Save your connection and you’re good to go.
---
## 🧩 Tables Not Loading? Let’s Fix It!
If you don’t see any tables after restoring the database, try these steps depending on how you installed Postgres:
### 📦 For Local Installation (No Docker)
1. **Find your `psql` client executable** (on Windows):
```bash
C:\Program Files\PostgreSQL\13\runpsql.bat
```
Or search for **SQL Shell (psql)** in your Start menu.
2. **Open your terminal and `cd` into the repo folder**, where `data.dump` is located.
3. **Run `psql` and enter credentials** (username is usually `postgres`)
4. Once you’re inside the Postgres prompt (`postgres=#`), run:
```sql
\i data.dump
```
> 🧠 This tells Postgres to execute all SQL commands inside the dump file, creating tables and loading data.
---
### 🐳 For Docker Users
1. Get your running containers:
```bash
docker ps
```
2. Copy the name of your Postgres container (e.g., `my-postgres-container`)
3. Open a bash terminal inside it:
```bash
docker exec -it my-postgres-container bash
```
4. Run the restore manually from inside the container:
```bash
pg_restore -U $POSTGRES_USER -d $POSTGRES_DB /docker-entrypoint-initdb.d/data.dump
```
> ✅ Replace `$POSTGRES_USER` and `$POSTGRES_DB` with actual values from your `.env` file if needed.
5. Optionally check if tables are loaded:
```bash
psql -U postgres -d postgres -c '\dt'
```
This shows all the tables in the current schema.
---
## ❓ Common Errors & Fixes
### ❌ “Connection refused” or can’t connect to localhost?
- Double check host is correct (`localhost` or `my-postgres-container`)
- Ensure Docker is running and the container is up
- Try restarting the services with `make restart`
---
### 🔄 Port 5432 already in use?
You may have another service (like another DB) using it.
#### macOS:
```bash
lsof -i :5432
kill -9 <PID>
```
#### Windows:
```cmd
netstat -ano | findstr :5432
taskkill /PID <PID> /F
```
---
### 🚪 PGAdmin login not working?
Make sure you’re using values from `.env`:
```env
PGADMIN_DEFAULT_EMAIL=postgres@postgres.com
PGADMIN_DEFAULT_PASSWORD=postgres
```
If you've changed the `.env`, delete the PGAdmin container and re-run `make up`.
---
### 🕵️ Not sure which container is which?
Run:
```bash
docker ps
```
Look under the `NAMES` column for `my-postgres-container` and `pgadmin`.
---
### 🔁 Want a fresh start?
Stop and remove all running containers:
```bash
docker compose down
docker compose up -d
```
Or use:
```bash
make restart
```
---
## 🔧 Helpful Docker Make Commands
| Command | What it does |
|------------------|----------------------------------|
| `make up` | Start Postgres and PGAdmin |
| `make stop` | Stop both containers |
| `make restart` | Restart the Postgres container |
| `make logs` | View logs from containers |
| `make inspect` | Inspect container configuration |
| `make ip` | Get container IP address |
---
🎉 That’s it! You’re all set for the next chapters of your data journey.
================================================
FILE: intermediate-bootcamp/materials/1-dimensional-data-modeling/data.dump
================================================
[File too large to display: 46.8 MB]
================================================
FILE: intermediate-bootcamp/materials/1-dimensional-data-modeling/docker-compose.yml
================================================
services:
postgres:
image: postgres:14
restart: on-failure
container_name: ${DOCKER_CONTAINER}
env_file:
- .env
environment:
- POSTGRES_DB=${POSTGRES_SCHEMA}
- POSTGRES_USER=${POSTGRES_USER}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
ports:
- "${HOST_PORT}:5432"
volumes:
- ./:/bootcamp/
- ./data.dump:/docker-entrypoint-initdb.d/data.dump
- ./scripts/init-db.sh:/docker-entrypoint-initdb.d/init-db.sh
- postgres-data:/var/lib/postgresql/data
pgadmin:
image: dpage/pgadmin4
restart: on-failure
container_name: pgadmin
environment:
- PGADMIN_DEFAULT_EMAIL=${PGADMIN_EMAIL}
- PGADMIN_DEFAULT_PASSWORD=${PGADMIN_PASSWORD}
ports:
- "${PGADMIN_PORT}:80"
volumes:
- pgadmin-data:/var/lib/pgadmin
volumes:
postgres-data:
pgadmin-data:
================================================
FILE: intermediate-bootcamp/materials/1-dimensional-data-modeling/example.env
================================================
POSTGRES_SCHEMA=postgres
POSTGRES_USER=postgres
POSTGRES_DB=postgres
POSTGRES_PASSWORD=postgres
HOST_PORT=5432
CONTAINER_PORT=5432
DOCKER_CONTAINER=my-postgres-container
DOCKER_IMAGE=my-postgres-image
PGADMIN_EMAIL=postgres@postgres.com
PGADMIN_PASSWORD=postgres
PGADMIN_PORT=5050
================================================
FILE: intermediate-bootcamp/materials/1-dimensional-data-modeling/homework/.gitkeep
================================================
================================================
FILE: intermediate-bootcamp/materials/1-dimensional-data-modeling/homework/homework.md
================================================
# Dimensional Data Modeling - Week 1
This week's assignment involves working with the `actor_films` dataset. Your task is to construct a series of SQL queries and table definitions that will allow us to model the actor_films dataset in a way that facilitates efficient analysis. This involves creating new tables, defining data types, and writing queries to populate these tables with data from the actor_films dataset
## Dataset Overview
The `actor_films` dataset contains the following fields:
- `actor`: The name of the actor.
- `actorid`: A unique identifier for each actor.
- `film`: The name of the film.
- `year`: The year the film was released.
- `votes`: The number of votes the film received.
- `rating`: The rating of the film.
- `filmid`: A unique identifier for each film.
The primary key for this dataset is (`actor_id`, `film_id`).
## Assignment Tasks
1. **DDL for `actors` table:** Create a DDL for an `actors` table with the following fields:
- `films`: An array of `struct` with the following fields:
- film: The name of the film.
- votes: The number of votes the film received.
- rating: The rating of the film.
- filmid: A unique identifier for each film.
- `quality_class`: This field represents an actor's performance quality, determined by the average rating of movies of their most recent year. It's categorized as follows:
- `star`: Average rating > 8.
- `good`: Average rating > 7 and ≤ 8.
- `average`: Average rating > 6 and ≤ 7.
- `bad`: Average rating ≤ 6.
- `is_active`: A BOOLEAN field that indicates whether an actor is currently active in the film industry (i.e., making films this year).
2. **Cumulative table generation query:** Write a query that populates the `actors` table one year at a time.
3. **DDL for `actors_history_scd` table:** Create a DDL for an `actors_history_scd` table with the following features:
- Implements type 2 dimension modeling (i.e., includes `start_date` and `end_date` fields).
- Tracks `quality_class` and `is_active` status for each actor in the `actors` table.
4. **Backfill query for `actors_history_scd`:** Write a "backfill" query that can populate the entire `actors_history_scd` table in a single query.
5. **Incremental query for `actors_history_scd`:** Write an "incremental" query that combines the previous year's SCD data with new incoming data from the `actors` table.
================================================
FILE: intermediate-bootcamp/materials/1-dimensional-data-modeling/lecture-lab/analytical_query.sql
================================================
SELECT player_name,
(seasons[cardinality(seasons)]::season_stats).pts/
CASE WHEN (seasons[1]::season_stats).pts = 0 THEN 1
ELSE (seasons[1]::season_stats).pts END
AS ratio_most_recent_to_first
FROM players
WHERE current_season = 1998;
================================================
FILE: intermediate-bootcamp/materials/1-dimensional-data-modeling/lecture-lab/graph_ddls.sql
================================================
CREATE TYPE vertex_type
AS ENUM('player', 'team', 'game');
CREATE TABLE vertices (
identifier TEXT,
type vertex_type,
properties JSON,
PRIMARY KEY (identifier, type)
);
CREATE TYPE edge_type AS
ENUM ('plays_against',
'shares_team',
'plays_in',
'plays_on'
);
CREATE TABLE edges (
subject_identifier TEXT,
subject_type vertex_type,
object_identifier TEXT,
object_type vertex_type,
edge_type edge_type,
properties JSON,
PRIMARY KEY (subject_identifier,
subject_type,
object_identifier,
object_type,
edge_type)
)
================================================
FILE: intermediate-bootcamp/materials/1-dimensional-data-modeling/lecture-lab/incremental_scd_query.sql
================================================
CREATE TYPE scd_type AS (
scoring_class scoring_class,
is_active boolean,
start_season INTEGER,
end_season INTEGER
)
WITH last_season_scd AS (
SELECT * FROM players_scd
WHERE current_season = 2021
AND end_season = 2021
),
historical_scd AS (
SELECT
player_name,
scoring_class,
is_active,
start_season,
end_season
FROM players_scd
WHERE current_season = 2021
AND end_season < 2021
),
this_season_data AS (
SELECT * FROM players
WHERE current_season = 2022
),
unchanged_records AS (
SELECT
ts.player_name,
ts.scoring_class,
ts.is_active,
ls.start_season,
ts.current_season as end_season
FROM this_season_data ts
JOIN last_season_scd ls
ON ls.player_name = ts.player_name
WHERE ts.scoring_class = ls.scoring_class
AND ts.is_active = ls.is_active
),
changed_records AS (
SELECT
ts.player_name,
UNNEST(ARRAY[
ROW(
ls.scoring_class,
ls.is_active,
ls.start_season,
ls.end_season
)::scd_type,
ROW(
ts.scoring_class,
ts.is_active,
ts.current_season,
ts.current_season
)::scd_type
]) as records
FROM this_season_data ts
LEFT JOIN last_season_scd ls
ON ls.player_name = ts.player_name
WHERE (ts.scoring_class <> ls.scoring_class
OR ts.is_active <> ls.is_active)
),
unnested_changed_records AS (
SELECT player_name,
(records::scd_type).scoring_class,
(records::scd_type).is_active,
(records::scd_type).start_season,
(records::scd_type).end_season
FROM changed_records
),
new_records AS (
SELECT
ts.player_name,
ts.scoring_class,
ts.is_active,
ts.current_season AS start_season,
ts.current_season AS end_season
FROM this_season_data ts
LEFT JOIN last_season_scd ls
ON ts.player_name = ls.player_name
WHERE ls.player_name IS NULL
)
SELECT *, 2022 AS current_season FROM (
SELECT *
FROM historical_scd
UNION ALL
SELECT *
FROM unchanged_records
UNION ALL
SELECT *
FROM unnested_changed_records
UNION ALL
SELECT *
FROM new_records
) a
================================================
FILE: intermediate-bootcamp/materials/1-dimensional-data-modeling/lecture-lab/pipeline_query.sql
================================================
WITH last_season AS (
SELECT * FROM players
WHERE current_season = 1997
), this_season AS (
SELECT * FROM player_seasons
WHERE season = 1998
)
INSERT INTO players
SELECT
COALESCE(ls.player_name, ts.player_name) as player_name,
COALESCE(ls.height, ts.height) as height,
COALESCE(ls.college, ts.college) as college,
COALESCE(ls.country, ts.country) as country,
COALESCE(ls.draft_year, ts.draft_year) as draft_year,
COALESCE(ls.draft_round, ts.draft_round) as draft_round,
COALESCE(ls.draft_number, ts.draft_number)
as draft_number,
COALESCE(ls.seasons,
ARRAY[]::season_stats[]
) || CASE WHEN ts.season IS NOT NULL THEN
ARRAY[ROW(
ts.season,
ts.pts,
ts.ast,
ts.reb, ts.weight)::season_stats]
ELSE ARRAY[]::season_stats[] END
as seasons,
CASE
WHEN ts.season IS NOT NULL THEN
(CASE WHEN ts.pts > 20 THEN 'star'
WHEN ts.pts > 15 THEN 'good'
WHEN ts.pts > 10 THEN 'average'
ELSE 'bad' END)::scoring_class
ELSE ls.scoring_class
END as scoring_class,
ts.season IS NOT NULL as is_active,
1998 AS current_season
FROM last_season ls
FULL OUTER JOIN this_season ts
ON ls.player_name = ts.player_name
================================================
FILE: intermediate-bootcamp/materials/1-dimensional-data-modeling/lecture-lab/player_game_edges.sql
================================================
INSERT INTO edges
WITH deduped AS (
SELECT *, row_number() over (PARTITION BY player_id, game_id) AS row_num
FROM game_details
)
SELECT
player_id AS subject_identifier,
'player'::vertex_type as subject_type,
game_id AS object_identifier,
'game'::vertex_type AS object_type,
'plays_in'::edge_type AS edge_type,
json_build_object(
'start_position', start_position,
'pts', pts,
'team_id', team_id,
'team_abbreviation', team_abbreviation
) as properties
FROM deduped
WHERE row_num = 1;
================================================
FILE: intermediate-bootcamp/materials/1-dimensional-data-modeling/lecture-lab/player_player_edges.sql
================================================
WITH deduped AS (
SELECT *, row_number() over (PARTITION BY player_id, game_id) AS row_num
FROM game_details
),
filtered AS (
SELECT * FROM deduped
WHERE row_num = 1
),
aggregated AS (
SELECT
f1.player_id,
f1.player_name,
f2.player_id,
f2.player_name,
CASE WHEN f1.team_abbreviation = f2.team_abbreviation
THEN 'shares_team'::edge_type
ELSE 'plays_against'::edge_type
END,
COUNT(1) AS num_games,
SUM(f1.pts) AS left_points,
SUM(f2.pts) as right_points
FROM filtered f1
JOIN filtered f2
ON f1.game_id = f2.game_id
AND f1.player_name <> f2.player_name
WHERE f1.player_id > f2.player_id
GROUP BY
f1.player_id,
f1.player_name,
f2.player_id,
f2.player_name,
CASE WHEN f1.team_abbreviation = f2.team_abbreviation
THEN 'shares_team'::edge_type
ELSE 'plays_against'::edge_type
END
)
================================================
FILE: intermediate-bootcamp/materials/1-dimensional-data-modeling/lecture-lab/players.sql
================================================
CREATE TYPE season_stats AS (
season Integer,
pts REAL,
ast REAL,
reb REAL,
weight INTEGER
);
CREATE TYPE scoring_class AS
ENUM ('bad', 'average', 'good', 'star');
CREATE TABLE players (
player_name TEXT,
height TEXT,
college TEXT,
country TEXT,
draft_year TEXT,
draft_round TEXT,
draft_number TEXT,
seasons season_stats[],
scoring_class scoring_class,
years_since_last_active INTEGER,
is_active BOOLEAN,
current_season INTEGER,
PRIMARY KEY (player_name, current_season)
);
================================================
FILE: intermediate-bootcamp/materials/1-dimensional-data-modeling/lecture-lab/players_scd_table.sql
================================================
create table players_scd_table
(
player_name text,
scoring_class scoring_class,
is_active boolean,
start_season integer,
end_date integer,
current_season INTEGER
);
================================================
FILE: intermediate-bootcamp/materials/1-dimensional-data-modeling/lecture-lab/scd_generation_query.sql
================================================
WITH streak_started AS (
SELECT player_name,
current_season,
scoring_class,
LAG(scoring_class, 1) OVER
(PARTITION BY player_name ORDER BY current_season) <> scoring_class
OR LAG(scoring_class, 1) OVER
(PARTITION BY player_name ORDER BY current_season) IS NULL
AS did_change
FROM players
),
streak_identified AS (
SELECT
player_name,
scoring_class,
current_season,
SUM(CASE WHEN did_change THEN 1 ELSE 0 END)
OVER (PARTITION BY player_name ORDER BY current_season) as streak_identifier
FROM streak_started
),
aggregated AS (
SELECT
player_name,
scoring_class,
streak_identifier,
MIN(current_season) AS start_date,
MAX(current_season) AS end_date
FROM streak_identified
GROUP BY 1,2,3
)
SELECT player_name, scoring_class, start_date, end_date
FROM aggregated
================================================
FILE: intermediate-bootcamp/materials/1-dimensional-data-modeling/lecture-lab/team_vertices.sql
================================================
WITH teams_deduped AS (
SELECT *, ROW_NUMBER() OVER(PARTITION BY team_id) as row_num
FROM teams
)
SELECT
team_id AS identifier,
'team'::vertex_type AS type,
json_build_object(
'abbreviation', abbreviation,
'nickname', nickname,
'city', city,
'arena', arena,
'year_founded', yearfounded
)
FROM teams_deduped
WHERE row_num = 1
================================================
FILE: intermediate-bootcamp/materials/1-dimensional-data-modeling/lecture-lab/unnest_query.sql
================================================
SELECT player_name,
UNNEST(seasons) -- CROSS JOIN UNNEST
-- / LATERAL VIEW EXPLODE
FROM players
WHERE current_season = 1998
AND player_name = 'Michael Jordan';
================================================
FILE: intermediate-bootcamp/materials/1-dimensional-data-modeling/scripts/init-db.sh
================================================
#!/bin/bash
set -e
# Restore the dump file using pg_restore
pg_restore \
-v \
--no-owner \
--no-privileges \
-U $POSTGRES_USER \
-d $POSTGRES_DB \
/docker-entrypoint-initdb.d/data.dump
# Check if the path is a directory using the -d flag and
# there are SQL files in the directory using the -f command
# (the [] brackets are used for conditional expressions)
if [ -d /docker-entrypoint-initdb.d/homework ]; then
echo "[SUCCESS]: Located homework directory"
# Run any additional initialization scripts
for f in /docker-entrypoint-initdb.d/homework/*.sql; do
if [ -f "$f" ]; then
echo "[SUCCESS] Running SQL file: $f"
psql -U $POSTGRES_USER -d $POSTGRES_DB -f $f
else
echo "[INFO] No SQL file found inside the homework directory"
fi
done
else
echo "[ERROR] Directory not found: /docker-entrypoint-initdb.d/homework/"
fi
================================================
FILE: intermediate-bootcamp/materials/1-dimensional-data-modeling/sql/actor_films.sql
================================================
CREATE TABLE actor_films (
Actor TEXT,
ActorId Text,
Film TEXT,
Year integer,
votes Integer,
Rating REAL,
FilmID text,
PRIMARY KEY(ActorId, FilmId)
)
================================================
FILE: intermediate-bootcamp/materials/1-dimensional-data-modeling/sql/game_details.sql
================================================
CREATE TABLE public.game_details (
game_id integer,
team_id integer,
team_abbreviation text,
team_city text,
player_id integer,
player_name text,
nickname text,
start_position text,
comment text,
min text,
fgm real,
fga real,
fg_pct real,
fg3m real,
fg3a real,
fg3_pct real,
ftm real,
fta real,
ft_pct real,
oreb real,
dreb real,
reb real,
ast real,
stl real,
blk real,
"TO" real,
pf real,
pts real,
plus_minus real
);
================================================
FILE: intermediate-bootcamp/materials/1-dimensional-data-modeling/sql/games.sql
================================================
CREATE TABLE public.games (
game_date_est date,
game_id integer NOT NULL,
game_status_text text,
home_team_id integer,
visitor_team_id integer,
season integer,
team_id_home integer,
pts_home real,
fg_pct_home real,
ft_pct_home real,
fg3_pct_home real,
ast_home real,
reb_home real,
team_id_away integer,
pts_away real,
fg_pct_away real,
ft_pct_away real,
fg3_pct_away real,
ast_away real,
reb_away real,
home_team_wins integer
);
================================================
FILE: intermediate-bootcamp/materials/1-dimensional-data-modeling/sql/load_players_table_day2.sql
================================================
INSERT INTO players
WITH years AS (
SELECT *
FROM GENERATE_SERIES(1996, 2022) AS season
), p AS (
SELECT
player_name,
MIN(season) AS first_season
FROM player_seasons
GROUP BY player_name
), players_and_seasons AS (
SELECT *
FROM p
JOIN years y
ON p.first_season <= y.season
), windowed AS (
SELECT
pas.player_name,
pas.season,
ARRAY_REMOVE(
ARRAY_AGG(
CASE
WHEN ps.season IS NOT NULL
THEN ROW(
ps.season,
ps.gp,
ps.pts,
ps.reb,
ps.ast
)::season_stats
END)
OVER (PARTITION BY pas.player_name ORDER BY COALESCE(pas.season, ps.season)),
NULL
) AS seasons
FROM players_and_seasons pas
LEFT JOIN player_seasons ps
ON pas.player_name = ps.player_name
AND pas.season = ps.season
ORDER BY pas.player_name, pas.season
), static AS (
SELECT
player_name,
MAX(height) AS height,
MAX(college) AS college,
MAX(country) AS country,
MAX(draft_year) AS draft_year,
MAX(draft_round) AS draft_round,
MAX(draft_number) AS draft_number
FROM player_seasons
GROUP BY player_name
)
SELECT
w.player_name,
s.height,
s.college,
s.country,
s.draft_year,
s.draft_round,
s.draft_number,
seasons AS season_stats,
CASE
WHEN (seasons[CARDINALITY(seasons)]::season_stats).pts > 20 THEN 'star'
WHEN (seasons[CARDINALITY(seasons)]::season_stats).pts > 15 THEN 'good'
WHEN (seasons[CARDINALITY(seasons)]::season_stats).pts > 10 THEN 'average'
ELSE 'bad'
END::scoring_class AS scoring_class,
w.season - (seasons[CARDINALITY(seasons)]::season_stats).season as years_since_last_active,
(seasons[CARDINALITY(seasons)]::season_stats).season = season AS is_active,
w.season
FROM windowed w
JOIN static s
ON w.player_name = s.player_name;
================================================
FILE: intermediate-bootcamp/materials/1-dimensional-data-modeling/sql/player_seasons.sql
================================================
CREATE TABLE public.player_seasons (
player_name text NOT NULL,
age integer,
height text,
weight integer,
college text,
country text,
draft_year text,
draft_round text,
draft_number text,
gp real,
pts real,
reb real,
ast real,
netrtg real,
oreb_pct real,
dreb_pct real,
usg_pct real,
ts_pct real,
ast_pct real,
season integer NOT NULL
);
================================================
FILE: intermediate-bootcamp/materials/2-fact-data-modeling/.gitignore
================================================
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class
# C extensions
*.so
# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
pip-wheel-metadata/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST
# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec
# Installer logs
pip-log.txt
pip-delete-this-directory.txt
# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/
.pytest_cache/
# Translations
*.mo
*.pot
# Django stuff:
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal
# Flask stuff:
instance/
.webassets-cache
# Scrapy stuff:
.scrapy
# Sphinx documentation
docs/_build/
# PyBuilder
target/
# Jupyter Notebook
.ipynb_checkpoints
# IPython
profile_default/
ipython_config.py
# pyenv
.python-version
# pipenv
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
# However, in case of collaboration, if having platform-specific dependencies or dependencies
# having no cross-platform support, pipenv may install dependencies that don't work, or not
# install all needed dependencies.
#Pipfile.lock
# PEP 582; used by e.g. github.com/David-OConnor/pyflow
__pypackages__/
# Celery stuff
celerybeat-schedule
celerybeat.pid
# SageMath parsed files
*.sage.py
# Environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/
# Spyder project settings
.spyderproject
.spyproject
# Rope project settings
.ropeproject
# mkdocs documentation
/site
# mypy
.mypy_cache/
.dmypy.json
dmypy.json
# Pyre type checker
.pyre/
dump.sql
# Personal workspace files
.idea/*
.vscode/*
postgres-data/*
homework/your_username
================================================
FILE: intermediate-bootcamp/materials/2-fact-data-modeling/README.md
================================================
# Week 2 Fact Data Modeling
This repo follows the same setup as week 1. Please go to the dimensional data modeling [README](../1-dimensional-data-modeling/README.md) for instructions.
================================================
FILE: intermediate-bootcamp/materials/2-fact-data-modeling/homework/.gitkeep
================================================
================================================
FILE: intermediate-bootcamp/materials/2-fact-data-modeling/homework/homework.md
================================================
# Week 2 Fact Data Modeling
The homework this week will be using the `devices` and `events` dataset
Construct the following eight queries:
- A query to deduplicate `game_details` from Day 1 so there's no duplicates
- A DDL for an `user_devices_cumulated` table that has:
- a `device_activity_datelist` which tracks a users active days by `browser_type`
- data type here should look similar to `MAP<STRING, ARRAY[DATE]>`
- or you could have `browser_type` as a column with multiple rows for each user (either way works, just be consistent!)
- A cumulative query to generate `device_activity_datelist` from `events`
- A `datelist_int` generation query. Convert the `device_activity_datelist` column into a `datelist_int` column
- A DDL for `hosts_cumulated` table
- a `host_activity_datelist` which logs to see which dates each host is experiencing any activity
- The incremental query to generate `host_activity_datelist`
- A monthly, reduced fact table DDL `host_activity_reduced`
- month
- host
- hit_array - think COUNT(1)
- unique_visitors array - think COUNT(DISTINCT user_id)
- An incremental query that loads `host_activity_reduced`
- day-by-day
Please add these queries into a folder, zip them up and submit [here](https://bootcamp.techcreator.io)
================================================
FILE: intermediate-bootcamp/materials/2-fact-data-modeling/lecture-lab/anaylze_datelist.sql
================================================
WITH starter AS (
SELECT uc.dates_active @> ARRAY [DATE(d.valid_date)] AS is_active,
EXTRACT(
DAY FROM DATE('2023-03-31') - d.valid_date) AS days_since,
uc.user_id
FROM users_cumulated uc
CROSS JOIN
(SELECT generate_series('2023-02-28', '2023-03-31', INTERVAL '1 day') AS valid_date) as d
WHERE date = DATE('2023-03-31')
),
bits AS (
SELECT user_id,
SUM(CASE
WHEN is_active THEN POW(2, 32 - days_since)
ELSE 0 END)::bigint::bit(32) AS datelist_int
FROM starter
GROUP BY user_id
)
SELECT
user_id,
datelist_int,
BIT_COUNT(datelist_int) > 0 AS monthly_active,
BIT_COUNT(datelist_int) AS l32,
BIT_COUNT(datelist_int &
CAST('11111110000000000000000000000000' AS BIT(32))) > 0 AS weekly_active,
BIT_COUNT(datelist_int &
CAST('11111110000000000000000000000000' AS BIT(32))) AS l7,
BIT_COUNT(datelist_int &
CAST('00000001111111000000000000000000' AS BIT(32))) > 0 AS weekly_active_previous_week
FROM bits;
================================================
FILE: intermediate-bootcamp/materials/2-fact-data-modeling/lecture-lab/array_metrics_analysis.sql
================================================
-- Insert aggregated metrics into the array_metrics table
INSERT INTO array_metrics
WITH daily_aggregate AS (
-- Aggregate daily site hits per user
SELECT
user_id,
DATE(event_time) AS date,
COUNT(1) AS num_site_hits
FROM events
WHERE DATE(event_time) = DATE('2023-01-01')
AND user_id IS NOT NULL
GROUP BY user_id, DATE(event_time)
),
yesterday_array AS (
-- Retrieve existing metrics for the month starting from '2023-01-01'
SELECT *
FROM array_metrics
WHERE month_start = DATE('2023-01-01')
)
SELECT
-- Select user_id from either daily_aggregate or yesterday_array
COALESCE( da.user_id, ya.user_id) AS user_id,
-- Determine month_start date
COALESCE(ya.month_start, DATE_TRUNC('month', da.date)) AS month_start,
-- Set metric name to 'site_hits'
'site_hits' AS metric_name,
-- Update metric_array based on existing data and new daily aggregates
CASE
WHEN ya.metric_array IS NOT NULL THEN
ya.metric_array || ARRAY[COALESCE(da.num_site_hits,0)]
WHEN ya.metric_array IS NULL THEN
ARRAY_FILL(0, ARRAY[COALESCE (date - DATE(DATE_TRUNC('month', date)), 0)])
|| ARRAY[COALESCE(da.num_site_hits,0)]
END AS metric_array
FROM daily_aggregate da
FULL OUTER JOIN yesterday_array ya
ON da.user_id = ya.user_id
ON CONFLICT (user_id, month_start, metric_name)
DO
UPDATE SET metric_array = EXCLUDED.metric_array;
-- Uncomment and run the following query to verify the cardinality of metric_array
-- SELECT cardinality(metric_array), COUNT(1)
-- FROM array_metrics
-- GROUP BY 1;
-- Aggregate metrics by summing specific elements in the metric_array
WITH agg AS (
SELECT metric_name, month_start, ARRAY[SUM(metric_array[1]), SUM(metric_array[2]), SUM(metric_array[3])] AS summed_array
FROM array_metrics
GROUP BY metric_name, month_start
)
-- Select and display the metric_name, date (adjusted by index), and summed value
SELECT
metric_name,
month_start + CAST(CAST(index - 1 AS TEXT) || ' day' AS INTERVAL) AS adjusted_date,
elem AS value
FROM agg
CROSS JOIN UNNEST(agg.summed_array) WITH ORDINALITY AS a(elem, index);
================================================
FILE: intermediate-bootcamp/materials/2-fact-data-modeling/lecture-lab/generate_datelist.sql
================================================
WITH starter AS (
SELECT uc.dates_active @> ARRAY [DATE(d.valid_date)] AS is_active,
EXTRACT(
DAY FROM DATE('2023-03-31') - d.valid_date) AS days_since,
uc.user_id
FROM users_cumulated uc
CROSS JOIN
(SELECT generate_series('2023-02-28', '2023-03-31', INTERVAL '1 day') AS valid_date) as d
WHERE date = DATE('2023-03-31')
),
bits AS (
SELECT user_id,
SUM(CASE
WHEN is_active THEN POW(2, 32 - days_since)
ELSE 0 END)::bigint::bit(32) AS datelist_int,
DATE('2023-03-31') as date
FROM starter
GROUP BY user_id
)
INSERT INTO user_datelist_int
SELECT * FROM bits
================================================
FILE: intermediate-bootcamp/materials/2-fact-data-modeling/lecture-lab/generate_monthly_array_metrics.sql
================================================
WITH yesterday AS (
SELECT *
FROM monthly_user_site_hits
WHERE date_partition = '2023-03-02'
),
today AS (
SELECT user_id,
DATE_TRUNC('day', event_time) AS today_date,
COUNT(1) as num_hits
FROM events
WHERE DATE_TRUNC('day', event_time) = DATE('2023-03-03')
AND user_id IS NOT NULL
GROUP BY user_id, DATE_TRUNC('day', event_time)
)
INSERT INTO monthly_user_site_hits
SELECT
COALESCE(y.user_id, t.user_id) AS user_id,
COALESCE(y.hit_array,
array_fill(NULL::BIGINT, ARRAY[DATE('2023-03-03') - DATE('2023-03-01')]))
|| ARRAY[t.num_hits] AS hits_array,
DATE('2023-03-01') as month_start,
CASE WHEN y.first_found_date < t.today_date
THEN y.first_found_date
ELSE t.today_date
END as first_found_date,
DATE('2023-03-03') AS date_partition
FROM yesterday y
FULL OUTER JOIN today t
ON y.user_id = t.user_id
================================================
FILE: intermediate-bootcamp/materials/2-fact-data-modeling/lecture-lab/quick_sum_device_hits.sql
================================================
SELECT
month_start,
SUM(hit_array[1]) as num_hits_mar_1,
SUM(hit_array[2]) AS num_hits_mar_2
FROM monthly_user_site_hits
WHERE date_partition = DATE('2023-03-03')
GROUP BY 1
================================================
FILE: intermediate-bootcamp/materials/2-fact-data-modeling/lecture-lab/user_cumulated_populate.sql
================================================
WITH yesterday AS (
SELECT * FROM users_cumulated
WHERE date = DATE('2023-03-30')
),
today AS (
SELECT user_id,
DATE_TRUNC('day', event_time) AS today_date,
COUNT(1) AS num_events FROM events
WHERE DATE_TRUNC('day', event_time) = DATE('2023-03-31')
AND user_id IS NOT NULL
GROUP BY user_id, DATE_TRUNC('day', event_time)
)
INSERT INTO users_cumulated
SELECT
COALESCE(t.user_id, y.user_id),
COALESCE(y.dates_active,
ARRAY[]::DATE[])
|| CASE WHEN
t.user_id IS NOT NULL
THEN ARRAY[t.today_date]
ELSE ARRAY[]::DATE[]
END AS date_list,
COALESCE(t.today_date, y.date + Interval '1 day') as date
FROm yesterday y
FULL OUTER JOIN
today t ON t.user_id = y.user_id;
================================================
FILE: intermediate-bootcamp/materials/2-fact-data-modeling/tables/array_metrics_ddl.sql
================================================
CREATE TABLE array_metrics(
user_id NUMERIC,
month_start DATE,
metric_name TEXT,
metric_array REAL[],
PRIMARY KEY (user_id, month_start, metric_name))
================================================
FILE: intermediate-bootcamp/materials/2-fact-data-modeling/tables/devices.sql
================================================
CREATE TABLE devices (
device_id BIGINT,
browser_type TEXT,
browser_version_major BIGINT,
browser_version_minor BIGINT,
browser_version_patch BIGINT,
device_type TEXT,
device_version_major BIGINT,
device_version_minor BIGINT,
device_version_patch BIGINT,
os_type TEXT,
os_version_major BIGINT,
os_version_minor BIGINT,
os_version_patch BIGINT
)
================================================
FILE: intermediate-bootcamp/materials/2-fact-data-modeling/tables/events.sql
================================================
CREATE TABLE events (
url TEXT,
referrer TEXT,
user_id BIGINT,
device_id BIGINT,
host TEXT,
event_time TIMESTAMP
)
================================================
FILE: intermediate-bootcamp/materials/2-fact-data-modeling/tables/game_details.sql
================================================
CREATE TABLE public.game_details (
game_id integer,
team_id integer,
team_abbreviation text,
team_city text,
player_id integer,
player_name text,
nickname text,
start_position text,
comment text,
min text,
fgm real,
fga real,
fg_pct real,
fg3m real,
fg3a real,
fg3_pct real,
ftm real,
fta real,
ft_pct real,
oreb real,
dreb real,
reb real,
ast real,
stl real,
blk real,
"TO" real,
pf real,
pts real,
plus_minus real
);
================================================
FILE: intermediate-bootcamp/materials/2-fact-data-modeling/tables/games.sql
================================================
CREATE TABLE public.games (
game_date_est date,
game_id integer NOT NULL,
game_status_text text,
home_team_id integer,
visitor_team_id integer,
season integer,
team_id_home integer,
pts_home real,
fg_pct_home real,
ft_pct_home real,
fg3_pct_home real,
ast_home real,
reb_home real,
team_id_away integer,
pts_away real,
fg_pct_away real,
ft_pct_away real,
fg3_pct_away real,
ast_away real,
reb_away real,
home_team_wins integer
);
================================================
FILE: intermediate-bootcamp/materials/2-fact-data-modeling/tables/monthly_user_site_hits.sql
================================================
CREATE TABLE monthly_user_site_hits
(
user_id BIGINT,
hit_array BIGINT[],
month_start DATE,
first_found_date DATE,
date_partition DATE,
PRIMARY KEY (user_id, date_partition, month_start)
);
================================================
FILE: intermediate-bootcamp/materials/2-fact-data-modeling/tables/user_datelist_int.sql
================================================
CREATE TABLE user_datelist_int (
user_id BIGINT,
datelist_int BIT(32),
date DATE,
PRIMARY KEY (user_id, date)
)
================================================
FILE: intermediate-bootcamp/materials/2-fact-data-modeling/tables/users_cumulated.sql
================================================
CREATE TABLE users_cumulated (
user_id BIGINT,
dates_active DATE[],
date DATE,
PRIMARY KEY (user_id, date)
);
================================================
FILE: intermediate-bootcamp/materials/3-spark-fundamentals/.gitignore
================================================
.ipynb_checkpoints/
================================================
FILE: intermediate-bootcamp/materials/3-spark-fundamentals/Makefile
================================================
up:
docker compose up -d
down:
docker compose down
.PHONY: up down
================================================
FILE: intermediate-bootcamp/materials/3-spark-fundamentals/README.md
================================================
# Week 3 Spark Fundamentals training
## Unit Testing PySpark Course Getting Started
You need to install the required dependencies in `requirements.txt`
Running `pip install -r requirements.txt` will install them.
> **_NOTE:_** Make sure to have spark set locally before running below.
> Step-by-Step Guide to Install Spark and Python on Windows[https://discord.com/channels/1106357930443407391/1388500306207178824]
> Step-by-Step Guide to Install Spark and Python on Mac[https://discord.com/channels/1106357930443407391/1388501607641124874]
Running the pytest is easy. You need to run `python -m pytest` and you're good to go!
## Spark Fundamentals and Advanced Spark Setup
To launch the Spark and Iceberg Docker containers, run:
```bash
make up
```
Or `docker compose up` if you're on Windows!
Then, you should be able to access a Jupyter notebook at `localhost:8888`.
The first notebook to be able to run is the `event_data_pyspark.ipynb` inside the `notebooks` folder.
## ❓ Common Errors & Fixes
Fix for Spark OutOfMemoryError: Java heap space[https://discord.com/channels/1106357930443407391/1388501197341720666]
================================================
FILE: intermediate-bootcamp/materials/3-spark-fundamentals/data/devices.csv
================================================
device_id,browser_type,os_type,device_type
-2147042689,Firefox,Ubuntu,Other
-2146219609,WhatsApp,Other,Spider
-2145574618,Chrome Mobile,Android,Generic Smartphone
-2144707350,Chrome Mobile WebView,Android,Samsung SM-G988B
-2143813999,Mobile Safari UI/WKWebView,iOS,iPhone
-2142634982,Chrome Mobile iOS,iOS,iPhone
-2142350383,Chrome Mobile iOS,iOS,iPhone
-2141256237,Chrome Mobile iOS,iOS,iPhone
-2138977887,Firefox,OpenBSD,Other
-2136667425,Chrome,Windows,Other
-2136444196,Chrome Mobile iOS,iOS,iPhone
-2136415223,Chrome Mobile WebView,Android,Samsung SM-A305GT
-2136251094,Firefox,Ubuntu,Other
-2136057702,CFNetwork,Other,iOS-Device
-2136012321,Chrome Mobile WebView,Android,MAR-LX3A
-2135188814,Chrome Mobile iOS,iOS,iPhone
-2134830273,Chrome Mobile iOS,iOS,iPhone
-2132039044,Chrome Mobile iOS,iOS,iPad
-2130748804,Chrome Mobile WebView,Android,Samsung SM-G981N
-2130745225,Spider_Bot,Other,Other
-2130305567,Chrome,Linux,Other
-2129896797,Chrome,Mac OS X,Other
-2128085523,Chrome Mobile WebView,Android,Samsung SM-A315G
-2126708320,Chrome Mobile iOS,iOS,iPhone
-2126397486,Chrome Mobile,Android,Generic Smartphone
-2126132454,Samsung Internet,Android,Samsung SM-G991U
-2125793743,Firefox,Windows,Other
-2125251608,Chrome,Linux,Other
-2124767567,Android,Android,Samsung SCH-I535
-2124652778,Chrome Mobile,Android,Generic Smartphone
-2123815485,Chrome Mobile WebView,Android,LIO-AL00
-2122766835,Samsung Internet,Android,Samsung SM-G965U
-2122467639,Chrome,Mac OS X,Other
-2121713015,Chrome Mobile iOS,iOS,iPhone
-2121263265,Firefox,Windows,Other
-2121093569,Chrome,Windows,Other
-2120889458,Mobile Safari UI/WKWebView,iOS,iPhone
-2120326344,Chrome,Windows,Other
-2119943132,Samsung Internet,Android,Samsung SM-G780F
-2119102289,Mobile Safari UI/WKWebView,iOS,iPhone
-2118924091,Chrome,Mac OS X,Other
-2117411552,Python Requests,Other,Other
-2116838136,Mobile Safari,iOS,iPhone
-2115965175,Chrome Mobile WebView,Android,EML-L29
-2114661436,QQ Browser Mobile,iOS,iPhone
-2114503565,Chrome,Mac OS X,Other
-2114178510,Mobile Safari UI/WKWebView,iOS,iPhone
-2113689323,Samsung Internet,Android,Samsung SM-A226B
-2113519925,Chrome Mobile WebView,Android,Infinix $2
-2112363116,DuckDuckBot,Other,Spider
-2111727454,Chrome Mobile WebView,Android,Generic Smartphone
-2110660326,Chrome Mobile WebView,Android,Generic Smartphone
-2110047137,tapbots,Other,Spider
-2109992657,Mobile Safari UI/WKWebView,iOS,iPhone
-2109776055,Firefox,Windows,Other
-2108803135,Opera Mini,Other,Generic Feature Phone
-2106394856,Chrome,Windows,Other
-2106347884,Chrome,Mac OS X,Other
-2106205896,Chrome Mobile WebView,Android,MT2111
-2105713114,Firefox,Linux,Other
-2105013133,Chrome Mobile,Android,Nokia undefined$2$3
-2105005076,Mobile Safari UI/WKWebView,iOS,iPhone
-2102231684,Chrome,Linux,Other
-2101999716,Opera,Mac OS X,Other
-2101582765,Firefox,Linux,Other
-2100047127,Facebook,Android,Generic Smartphone
-2099595846,Chrome Mobile WebView,Android,XiaoMi Redmi Note 7 Pro
-2099556445,Samsung Internet,Android,Samsung SM-E426B
-2098397779,Samsung Internet,Android,Samsung SM-A125F
-2097865557,Chrome Mobile WebView,Android,Pixel 5a
-2096788593,Safari,Mac OS X,Other
-2096266070,Chrome Mobile WebView,Android,vivo $2
-2096228070,Firefox,FreeBSD,Other
-2096192141,Samsung Internet,Android,Samsung SM-G975F
-2095604266,Safari,Mac OS X,Other
-2095515259,Spark%20Desktop%20Helper,Other,iOS-Device
-2092795077,Opera,Linux,Other
-2092629383,Samsung Internet,Android,Samsung SM-N970U1
-2092601858,Chrome Mobile WebView,Android,Pixel 2
-2092393573,Samsung Internet,Android,Samsung SM-N986B
-2092181643,Firefox,Windows,Other
-2091891584,Samsung Internet,Android,Samsung SM-A716U1
-2091730612,Chrome Mobile WebView,Android,Samsung SM-M317F
-2091231957,Chrome,Windows,Other
-2090993254,Mobile Safari UI/WKWebView,iOS,iPhone
-2090235908,Samsung Internet,Android,Samsung SM-A725F
-2089503856,Chrome Mobile,Android,XiaoMi MI MAX 2
-2089293381,Chrome Mobile WebView,Android,Samsung SM-A536E
-2087443608,Mobile Safari,iOS,iPad
-2085866341,Chrome Mobile WebView,Android,vivo $2
-2085321701,Chrome Mobile WebView,Android,vivo $2
-2085149032,Mobile Safari,iOS,iPhone
-2084318667,Safari,Mac OS X,Other
-2084287785,Mobile Safari,iOS,iPhone
-2083689608,Chrome Mobile iOS,iOS,iPhone
-2082252018,Chrome Mobile WebView,Android,CLT-L09
-2081730363,Python-urllib,Other,Spider
-2081317081,Firefox,Mac OS X,Other
-2081191363,Firefox Mobile,Android,Generic Smartphone
-2080322201,Chrome,Windows,Other
-2080304742,Mobile Safari UI/WKWebView,iOS,iPhone
-2079278496,Chrome,Mac OS X,Other
-2078519291,Python Requests,Linux,Other
-2076979963,Samsung Internet,Android,Samsung SM-A135F
-2076128108,Opera Mobile,Android,Generic Smartphone
-2072817803,Opera Mobile,Android,Generic Smartphone
-2071362662,Chrome Mobile,Android,Pixel
-2069376300,Chrome,Chrome OS,Other
-2068386191,Chrome Mobile WebView,Android,Samsung SM-S901U1
-2068131636,Chrome,Windows,Other
-2067772010,Samsung Internet,Android,Samsung SM-G973U1
-2067693187,Chrome,Mac OS X,Other
-2066742600,Mobile Safari UI/WKWebView,iOS,iPhone
-2065320544,Firefox,Linux,Other
-2064022213,Mobile Safari,iOS,iPhone
-2063200633,Android,Android,Generic Smartphone
-2062446472,Chrome,Android,Generic Smartphone
-2062349674,Firefox,Mac OS X,Other
-2061917479,Chrome,Mac OS X,Other
-2061381492,Firefox,Windows,Other
-2060199667,Chrome,Mac OS X,Other
-2059651084,Mobile Safari UI/WKWebView,iOS,iPad
-2055722684,Spark,Other,iOS-Device
-2055540866,Maxthon,Windows,Other
-2055273206,Client,Other,iOS-Device
-2054716226,Chrome,Windows,Other
-2052907308,Chrome,Mac OS X,Other
-2052796757,Firefox,Mac OS X,Other
-2051611422,Firefox Mobile,Android,Generic Smartphone
-2050837586,Chrome Mobile WebView,Android,Samsung SM-A336E
-2049641560,Safari,Mac OS X,Other
-2049110094,Chrome,Windows,Other
-2048766905,Chrome Mobile WebView,Android,Samsung SM-A528B
-2048742313,Chrome Mobile,Android,SOV33
-2048434568,Mobile Safari UI/WKWebView,iOS,iPhone
-2047742578,Chrome Mobile,Android,Generic Smartphone
-2046277465,Chrome Mobile,Android,XiaoMi Redmi 10C
-2046251057,Mobile Safari UI/WKWebView,iOS,iPhone
-2045962974,Opera Tablet,Windows,Generic Tablet
-2045889179,Chrome,Windows,Other
-2044850119,Firefox,Windows,Other
-2044631193,Mobile Safari UI/WKWebView,iOS,iPhone
-2043082522,Chrome Mobile iOS,iOS,iPad
-2043040641,Chrome,Windows,Other
-2042706818,Chrome Mobile WebView,Android,Samsung SM-S906E
-2042574384,Chrome,Windows,Other
-2041683397,Samsung Internet,Android,Samsung SM-G998B
-2040375530,Chrome Mobile,Android,Nokia undefined$2$3
-2039111419,Firefox,Linux,Other
-2039043473,Chrome Mobile iOS,iOS,iPhone
-2038347120,Mobile Safari,iOS,iPhone
-2036784386,Opera,Windows NT 4.0,Other
-2033774343,Safari,Mac OS X,Other
-2033104083,Chrome,Mac OS X,Other
-2032975990,Samsung Internet,Android,Samsung SM-G990B2
-2032300375,Firefox,Windows,Other
-2032156566,Chrome Mobile WebView,Android,AFTMM
-2031381032,Firefox,Linux,Other
-2031366892,Chrome,Mac OS X,Other
-2031348426,Firefox,Windows,Other
-2031224473,Chrome,Mac OS X,Other
-2031079237,Chrome Mobile,Android,XiaoMi Redmi Note 9S
-2029978007,Chrome Mobile WebView,Android,Samsung SM-A515F
-2029392681,Chrome Mobile WebView,Android,XiaoMi Redmi Note 9 Pro
-2029257545,Chrome Mobile,Android,Generic Smartphone
-2028869816,Firefox,Windows,Other
-2027695321,Chrome Mobile,Android,Mi Note 3
-2027660238,robot,Other,Spider
-2027510645,Chrome,Mac OS X,Other
-2027365462,HeadlessChrome,Linux,Other
-2026476791,Firefox,Mac OS X,Other
-2026450158,Chrome Mobile WebView,Android,OnePlus ONEPLUS A5010
-2025681339,Samsung Internet,Android,Samsung SM-N975U
-2025331837,Mobile Safari,iOS,iPhone
-2024956038,Mobile Safari UI/WKWebView,iOS,iPhone
-2024814571,Chrome,Mac OS X,Other
-2024465562,Chrome Mobile,Android,Generic Smartphone
-2022529174,Mobile Safari UI/WKWebView,iOS,iPad
-2021881771,PhantomBot,Other,Other
-2021367823,Chrome Mobile WebView,Android,Samsung SM-M336BU
-2021121436,Chrome Mobile WebView,Android,Samsung SM-A315N
-2020587528,Chrome,Mac OS X,Other
-2020382692,Chrome,Windows,Other
-2020335297,Mobile Safari UI/WKWebView,iOS,iPhone
-2018902891,ArchiveTeam ArchiveBot,Windows,Other
-2017578992,Chrome Mobile WebView,Android,Samsung SM-G965F
-2016804243,Mobile Safari UI/WKWebView,iOS,iPhone
-2016751183,Firefox Mobile,Android,Generic Smartphone
-2016221691,Firefox,Windows,Other
-2016095163,Chrome Mobile WebView,Android,Pixel 3a
-2014869261,Chrome Mobile iOS,iOS,iPad
-2014270450,Firefox,Windows,Other
-2012543895,Googlebot,Other,Spider
-2009603780,Chrome Mobile WebView,Android,OnePlus ONEPLUS A6010
-2009260941,Opera,Linux,Other
-2008060606,Chrome Mobile,Android,Nokia undefined$2$3
-2007183976,Sogou Explorer,Windows,Other
-2006632561,Chrome Mobile WebView,Android,Samsung SM-F926B
-2006484990,Chrome,Windows,Other
-2006267799,Firefox (Shiretoko),Ubuntu,Other
-2004085087,Chrome Mobile WebView,Android,LYA-L29
-2003805086,Chrome Mobile WebView,Android,Samsung SM-A750F
-2003433314,Mobile Safari UI/WKWebView,iOS,iPhone
-2003383646,Chrome Mobile iOS,iOS,iPhone
-2002699698,Samsung Internet,Android,Samsung SM-A326W
-2002627381,Bear,Other,Mac
-2001648078,Chrome Mobile WebView,Android,LYA-L09
-2001644620,Chrome,Linux,Other
-2000627999,Chrome,Chrome OS,Other
-2000080349,HeadlessChrome,Linux,Other
-1999937342,Mobile Safari UI/WKWebView,iOS,iPhone
-1998857101,Firefox,Linux,Other
-1998710212,Mobile Safari UI/WKWebView,iOS,iPhone
-1998183891,Safari,Mac OS X,Other
-1998100494,Chrome,Windows,Other
-1996189621,Firefox,Mac OS X,Other
-1993921748,Chrome,Mac OS X,Other
-1993265080,Firefox,Windows,Other
-1992885070,Chrome,Mac OS X,Other
-1991397251,WordPress,Other,Spider
-1990453217,davbot,Other,Spider
-1989513160,Other,Other,Spider
-1988239792,Pale Moon,Windows,Other
-1988196313,Chrome Mobile iOS,iOS,iPhone
-1988122167,Screaming Frog SEO Spider,Other,Spider
-1987655619,Mobile Safari UI/WKWebView,iOS,iPhone
-1987039323,Firefox,Mac OS X,Other
-1986726760,Firefox,Other,Other
-1986437347,Safari,Mac OS X,Other
-1986426837,Chrome Mobile,Android,XiaoMi Redmi 5
-1985153787,Chrome,Windows,Other
-1984416765,Firefox,Linux,Other
-1983751288,Chrome Mobile,Android,HTC U11
-1982839312,Samsung Internet,Android,Samsung SM-A125U1
-1982514306,Samsung Internet,Android,Samsung SM-G996U
-1981173950,Firefox,Windows,Other
-1980557064,Chrome,Linux,Other
-1980204880,Firefox iOS,iOS,iPhone
-1979459420,Samsung Internet,Android,Samsung SM-S908B
-1979098203,Chrome Mobile WebView,Android,Samsung SM-A105FN
-1978187837,Chrome,Mac OS X,Other
-1977981750,Chrome,Windows,Other
-1977744509,Chrome,Android,Generic Smartphone
-1977081633,Chrome,Mac OS X,Other
-1976967278,Chrome Mobile WebView,Android,Samsung SM-M426B
-1976616444,Chrome Mobile,Android,XiaoMi Redmi 4A
-1975172881,Chrome,Chrome OS,Other
-1972030988,Chrome,Mac OS X,Other
-1971655277,Python Requests,Other,Other
-1971036004,Chrome Mobile iOS,iOS,iPhone
-1970873694,Chrome Mobile WebView,Android,Samsung SM-G990U
-1968961236,Samsung Internet,Android,Samsung SM-G977N
-1967611601,Chrome Mobile iOS,iOS,iPhone
-1967028254,Samsung Internet,Android,Samsung SM-G970W
-1966977974,Samsung Internet,Android,Samsung SM-A127F
-1966701924,Chrome Mobile WebView,Android,Samsung SM-S916B
-1966696197,Firefox,Windows,Other
-1966337557,Chrome Mobile WebView,Android,XiaoMi MI 9
-1966227845,Facebook,Android,Pixel 5
-1966030287,Samsung Internet,Android,Samsung SM-M515F
-1965999533,WeChatShareExtensionNew,Other,iOS-Device
-1964926886,Chrome,Windows,Other
-1964300224,Mobile Safari UI/WKWebView,iOS,iPhone
-1963622270,Chrome,Windows,Other
-1962190513,Chrome Mobile,Android,Generic Smartphone
-1959976105,Samsung Internet,Android,Generic Smartphone
-1959202475,Samsung Internet,Android,Samsung SM-G991U
-1959155318,Mobile Safari UI/WKWebView,iOS,iPhone
-1956806687,Samsung Internet,Android,Samsung SM-J730G
-1956718684,Samsung Internet,Android,Samsung SM-A705GM
-1955641447,Chrome Mobile WebView,Android,TECNO $2
-1955377681,okhttp,Other,Other
-1954897932,Mobile Safari,iOS,iPhone
-1954248253,Facebook,Android,Samsung SM-A025F
-1954136447,okhttp,Other,Other
-1952667288,Samsung Internet,Android,Samsung SM-S908E
-1951302520,Samsung Internet,Android,Samsung SM-G988B
-1951172704,Chrome,Android,Samsung GT-P5113
-1950907388,Chrome Mobile WebView,Android,Samsung SM-G965U
-1950685828,Chrome,Windows,Other
-1950278927,Mobile Safari UI/WKWebView,iOS,iPhone
-1948463390,Chrome Mobile,Android,Nokia undefined$2$3
-1948118016,Mobile Safari,iOS,iPhone
-1946056859,Chrome Mobile WebView,Android,Generic Smartphone
-1945935016,Chrome Mobile WebView,Android,VOG-L09
-1945265526,Chrome Mobile,Android,Nexus 5
-1944118879,Chrome Mobile iOS,iOS,iPhone
-1943267133,Chrome,Windows,Other
-1941989799,Chrome Mobile,Android,Generic Smartphone
-1941878815,Chrome Mobile iOS,iOS,iPad
-1941578455,Safari,Windows,Other
-1941352892,Firefox,Ubuntu,Other
-1941000543,Firefox,Linux,Other
-1940781641,Chrome,Mac OS X,Other
-1940349969,Firefox,Windows,Other
-1940298943,Chrome Mobile WebView,Android,Samsung SM-G988B
-1940277220,Firefox iOS,iOS,iPhone
-1940093107,Safari,Android,Samsung SM-G996U
-1939401025,Safari,Mac OS X,Other
-1937816343,Chrome Mobile WebView,Android,Infinix $2
-1936558513,Chrome Mobile WebView,Android,Samsung SM-G990E
-1935598465,Firefox,Windows,Other
-1933573311,Safari,Mac OS X,Other
-1933277321,Chrome Mobile iOS,iOS,iPad
-1932808096,Chrome Mobile WebView,Android,vivo $2
-1932756462,Chrome Mobile iOS,iOS,iPhone
-1932384686,Chrome Mobile WebView,Android,Samsung SM-M315F
-1930156531,Chrome,Linux,Other
-1929332370,Chrome,Mac OS X,Other
-1927530281,Samsung Internet,Android,Samsung SM-M515F
-1927030074,Firefox,Windows,Other
-1926605440,Chrome,Mac OS X,Other
-1923771353,Chrome,Mac OS X,Other
-1923289251,Chrome Mobile WebView,Android,Samsung SM-G998U
-1921993367,Chrome Mobile WebView,Android,Samsung SM-N980F
-1921958208,Mobile Safari,iOS,iPhone
-1921278985,Chrome Mobile WebView,Android,Samsung SM-G970U
-1920699930,Chrome,Windows,Other
-1920337528,Mobile Safari UI/WKWebView,iOS,iPhone
-1919792809,Slackbot-LinkExpanding,Other,Spider
-1917478573,Samsung Internet,Android,Samsung SM-A047F
-1917417280,Mobile Safari UI/WKWebView,iOS,iPhone
-1916760899,Chrome Mobile iOS,iOS,iPhone
-1915819180,Chrome Mobile WebView,Android,vivo $2
-1915324947,Chrome,Windows,Other
-1915276335,Chrome Mobile iOS,iOS,iPhone
-1914640328,WhatsApp,Other,Spider
-1913845350,Samsung Internet,Android,Samsung SM-G781W
-1913558214,Mobile Safari UI/WKWebView,iOS,iPhone
-1912206332,Firefox,Windows,Other
-1912067127,Chrome Mobile WebView,Android,Infinix $2
-1911423839,Samsung Internet,Android,Samsung SM-M336BU
-1910225280,Chrome,Windows,Other
-1909048810,Firefox,Ubuntu,Other
-1908417418,Jooblebot,Windows,Spider
-1908345680,Firefox Mobile,Android,Generic Smartphone
-1907628329,Chrome,Windows,Other
-1907319075,Chrome Mobile,Android,Nexus 5
-1905411316,Chrome Mobile,Android,Gionee S12
-1904996893,Chrome,Mac OS X,Other
-1904844006,Mobile Safari,iOS,iPhone
-1904160080,Opera,Mac OS X,Other
-1903653812,Chrome,Mac OS X,Other
-1903419839,Chrome Mobile WebView,Android,XiaoMi Redmi Note 6 Pro
-1903383705,Chrome Mobile WebView,Android,Samsung SM-A336E
-1902487281,Chrome,Mac OS X,Other
-1901888617,Chrome,Mac OS X,Other
-1900950618,Samsung Internet,Android,Samsung SM-A505F
-1900595648,Chrome Mobile WebView,Android,XiaoMi Redmi Y2
-1900257730,Firefox Mobile,Android,Generic Smartphone
-1899267650,Chrome Mobile WebView,Android,Samsung SM-S918B
-1899053090,Chrome Mobile WebView,Android,Samsung SM-G975F
-1899003769,Chrome Mobile WebView,Android,COL-L29
-1898575885,Chrome,Mac OS X,Other
-1897045956,Mobile Safari UI/WKWebView,iOS,iPad
-1895605607,Mobile Safari UI/WKWebView,iOS,iPhone
-1894773659,Chrome,Windows,Other
-1893334816,Samsung Internet,Android,Samsung SM-M215F
-1892192129,Chrome Mobile WebView,Android,Samsung SM-F936U
-1891998843,Firefox,Mac OS X,Other
-1891204138,Facebook,iOS,iPhone
-1891182218,Chrome Mobile WebView,Android,Samsung SM-G9650
-1891002232,Chrome,Mac OS X,Other
-1887390641,Chrome Mobile WebView,Android,JKM-LX1
-1886724867,Chrome,Mac OS X,Other
-1886487253,Firefox,Windows,Other
-1886054848,Chrome Mobile WebView,Android,LYA-L0C
-1885737637,Chrome Mobile iOS,iOS,iPhone
-1885613940,Chrome,Windows,Other
-1885265856,Samsung Internet,Android,Samsung SM-G715U1
-1885164385,Chrome,Mac OS X,Other
-1884683705,Chrome Mobile,Android,Nokia undefined$2$3
-1884370021,Chrome Mobile WebView,Android,XiaoMi Redmi Note 8
-1884205422,Chrome Mobile WebView,Android,Samsung SM-G970W
-1884092646,Canary-iOS,Other,iOS-Device
-1883465659,Googlebot,Android,Spider
-1882866610,Samsung Internet,Android,Samsung SM-P619
-1882763262,Chrome,Mac OS X,Other
-1882660245,Chrome,Linux,Other
-1882206725,Chrome Mobile WebView,Android,STK-L21
-1881942637,Facebook,Android,Generic Smartphone
-1881756717,Chrome Mobile WebView,Android,Samsung SM-G998U1
-1879827329,Edge,Windows,Other
-1879311075,Mobile Safari UI/WKWebView,iOS,iPad
-1878951950,Chrome Mobile WebView,Android,Samsung SM-A115M
-1878654244,Firefox iOS,iOS,iPhone
-1878180556,Chrome Mobile WebView,Android,Samsung SM-M317F
-1877148471,Samsung Internet,Android,Samsung SM-M136B
-1875607041,Chrome Mobile WebView,Android,Samsung SM-S906U1
-1874898339,Mobile Safari UI/WKWebView,Other,iPhone
-1874169016,Mobile Safari UI/WKWebView,iOS,iPhone
-1871634642,Chrome,Windows,Other
-1871387849,Chrome Mobile WebView,Android,Generic Smartphone
-1870493097,Samsung Internet,Android,Samsung $2
-1870341048,UC Browser,Android,XiaoMi HM NOTE 1W
-1870024710,Chrome Mobile,Android,Generic Smartphone
-1868537014,Samsung Internet,Android,Samsung SM-A236E
-1868293625,Chrome,Windows,Other
-1867688486,Chrome,Windows,Other
-1866812730,Chrome Mobile WebView,Android,Samsung SM-M315F
-1866222586,Chrome Mobile,Android,LG-$2
-1865934335,Chrome,Linux,Other
-1865839640,Mobile Safari UI/WKWebView,iOS,iPhone
-1865802470,Samsung Internet,Android,Samsung SM-G998U
-1865348742,Chrome Mobile WebView,Android,Samsung SM-M346B
-1864981968,Firefox,Windows,Other
-1864834382,Firefox Mobile,Android,Generic Smartphone
-1864509280,Chrome,Windows,Other
-1864436943,Samsung Internet,Android,Samsung SM-S918B
-1861890442,Chrome Mobile WebView,Android,Nexus 5X
-1861362530,Chrome Mobile WebView,Android,Samsung SM-G960U
-1861128055,Chrome Mobile,Android,EML-L29
-1860941865,Chrome Mobile WebView,Android,Pixel 4
-1860695837,Firefox,Mac OS X,Other
-1860584599,Chrome,Mac OS X,Other
-1860433225,Opera,Windows,Other
-1858996161,Chrome Mobile WebView,Android,Samsung SM-F731B
-1858819995,Firefox,Mac OS X,Other
-1857548508,Chrome,Mac OS X,Other
-1857365993,Chrome Mobile WebView,Android,XiaoMi Redmi Note 8
-1856943130,Chrome Mobile,Android,Nexus 5
-1856496160,Yandex Browser,Android,Generic Smartphone
-1856182041,Mobile Safari,iOS,iPad
-1854268062,Chrome Mobile iOS,iOS,iPhone
-1853138905,Facebook,Mac OS X,Other
-1852283715,Chrome,Android,Generic Smartphone
-1851754636,Safari,Mac OS X,Other
-1851481336,Safari,Windows,Other
-1850036103,Chrome Mobile WebView,Android,Generic Smartphone
-1849902651,Mobile Safari UI/WKWebView,iOS,iPhone
-1849769556,Samsung Internet,Android,Samsung SM-A715W
-1848901777,Chrome Mobile WebView,Android,Pixel 3
-1848544674,Facebook,Android,Samsung SM-N950U
-1848251464,Facebook,iOS,iPhone
-1847304033,Chrome Mobile,Android,Samsung SM-N976B
-1847184653,Mobile Safari UI/WKWebView,iOS,iPhone
-1846227062,Chrome Mobile,Android,Generic Smartphone
-1845248092,Facebook,Android,Samsung SM-G981U
-1843879639,Chrome,Linux,Other
-1842861143,Chrome,Windows,Other
-1842041412,Chrome Mobile WebView,Android,Samsung SM-S901B
-1841822123,Spark,Other,iOS-Device
-1841701662,Samsung Internet,Android,Samsung SM-G973F
-1841186762,Chrome Mobile,Android,ALCATEL ONE TOUCH 7047A
-1840682169,Chrome Mobile WebView,Android,Samsung SM-G780F
-1839658653,Mobile Safari,iOS,iPhone
-1839485552,Chrome Mobile WebView,Android,Samsung SM-M215F
-1839383585,domainsbot,Other,Spider
-1838505482,Chrome Mobile WebView,Android,MAR-LX3A
-1837267912,Chrome Mobile,Android,Generic Smartphone
-1836709681,Chrome Mobile,Android,Generic Smartphone
-1836225122,Chrome,Mac OS X,Other
-1836033205,Chrome,Android,Asus Nexus 10
-1836005016,Chrome Mobile iOS,iOS,iPad
-1834225522,Firefox,Linux,Other
-1833755854,Samsung Internet,Android,Samsung SM-G986W
-1832492142,Chrome Mobile WebView,Android,XiaoMi Redmi Note 8
-1832401396,Samsung Internet,Android,Samsung SM-F936B
-1831818537,Safari,Mac OS X,Other
-1831706002,Chrome Mobile WebView,Android,XiaoMi Redmi Note 9 Pro
-1830594021,Chrome,Linux,Other
-1830546336,Chrome Mobile iOS,iOS,iPhone
-1830386508,Samsung Internet,Android,Samsung SM-M127G
-1830263108,Chrome Mobile,Android,Generic Smartphone
-1830082779,msnbot,Other,Spider
-1829546286,Safari,Mac OS X,Other
-1826934224,Chrome Mobile WebView,Android,Pixel 7a
-1826461749,Chrome,Windows,Other
-1825315308,Chrome,Mac OS X,Other
-1824632721,Chrome Mobile WebView,Android,Samsung SM-S918U1
-1823672304,Samsung Internet,Android,Samsung $2
-1823107752,Facebook,iOS,iPhone
-1823061115,Chrome,Android,Generic Smartphone
-1822744886,Firefox,Mac OS X,Other
-1822577001,Chrome Mobile iOS,iOS,iPhone
-1821832067,Chrome Mobile WebView,Android,Samsung SM-G996B
-1821420400,Chrome Mobile WebView,Android,Samsung SM-G975N
-1821270959,Chrome,Windows,Other
-1820775393,Chrome Mobile WebView,Android,Samsung SM-N975U
-1819523010,Firefox,Ubuntu,Other
-1819409716,Chrome,Mac OS X,Other
-1819235398,Firefox Mobile,Android,Generic Smartphone
-1817936799,Mobile Safari UI/WKWebView,iOS,iPhone
-1814425607,Mobile Safari UI/WKWebView,iOS,iPhone
-1814192229,Chrome Mobile,Android,Generic Smartphone
-1813506564,Firefox,Windows,Other
-1810802806,Chrome Mobile WebView,Android,CDY-NX9B
-1808725968,Facebook,iOS,iPhone
-1808294386,Chrome Mobile WebView,Android,XiaoMi Redmi Note 7 Pro
-1806162861,Samsung Internet,Android,Samsung SM-G780G
-1806089813,Firefox,Linux,Other
-1805584679,Chrome,Mac OS X,Other
-1803256090,Opera Mobile,Android,Generic Smartphone
-1802558822,Facebook,iOS,iPhone
-1802149720,Chrome,Windows,Other
-1802141980,Samsung Internet,Android,Samsung SM-A127M
-1801952557,Chrome Mobile WebView,Android,Samsung SM-M127F
-1801657237,Firefox,Windows,Other
-1801524343,Python-urllib,Other,Spider
-1800577187,Samsung Internet,Android,Samsung SM-A526B
-1799137387,Mobile Safari UI/WKWebView,iOS,iPhone
-1798190827,Chrome Mobile,Android,XiaoMi Redmi Note 8
-1798138912,Chrome Mobile WebView,Android,Samsung SM-M215F
-1798105993,Chrome,Mac OS X,Other
-1797498944,Chrome,Windows,Other
-1796796015,Chrome Mobile,Android,XiaoMi Redmi Note 7 Pro
-1795978879,DotBot,Other,Spider
-1795736932,Chrome Mobile WebView,Android,Samsung SM-G998U
-1795279853,Chrome Mobile,Android,Generic Smartphone
-1794685298,Chrome Mobile WebView,Android,Samsung SM-N970U
-1793707077,Chrome Mobile WebView,Android,Generic Smartphone
-1793183873,Mobile Safari UI/WKWebView,iOS,iPhone
-1793155195,Facebook,Android,vivo $2
-1793033483,Chrome,Windows,Other
-1792620341,Chrome,Windows,Other
-1792549997,Mobile Safari,iOS,iPhone
-1792443131,Chrome Mobile WebView,Android,MAR-LX1A
-1792123115,Chrome Mobile iOS,iOS,iPhone
-1791633214,Mobile Safari UI/WKWebView,iOS,iPhone
-1791306364,Facebook,iOS,iPhone
-1791296049,Chrome,Windows,Other
-1790882288,Chrome,Mac OS X,Other
-1790393198,Chrome,OpenBSD,Other
-1788184030,Chrome,Mac OS X,Other
-1787964943,Chrome,Windows,Other
-1787909692,Firefox iOS,iOS,iPhone
-1786148911,Chrome,Windows,Other
-1786136106,Safari,Mac OS X,Other
-1786009644,Chrome,Windows,Other
-1785151109,Chrome,Mac OS X,Other
-1784457508,Samsung Internet,Android,Samsung SM-A736B
-1783195519,Opera,Windows,Other
-1782974730,Chrome Mobile,Android,Generic Smartphone
-1782201801,Chrome,Windows,Other
-1782195306,Chrome Mobile WebView,Android,Samsung SM-A115F
-1781479928,Chrome,Linux,Other
-1780231149,Chrome,Mac OS X,Other
-1779575882,Mobile Safari,iOS,iPhone
-1779560580,Chrome Mobile WebView,Android,Samsung SM-E146B
-1778925263,Chrome Mobile,Android,Nokia undefined$2$3
-1777729664,Internet-structure-research-project-bot,Other,Spider
-1777480046,Chrome,Linux,Other
-1777371447,Samsung Internet,Android,Samsung SM-G9650
-1777038615,Firefox,Mac OS X,Other
-1776857139,Chrome Mobile iOS,iOS,iPhone
-1776719020,Mobile Safari UI/WKWebView,iOS,iPhone
-1776307589,Nokia Browser,Symbian^3,Nokia undefined$2$3
-1774666520,Firefox,Windows,Other
-1773614459,Samsung Internet,Android,Samsung SM-G9900
-1773509289,Chrome Mobile WebView,Android,Samsung SM-G975U
-1773180548,Chrome Mobile iOS,iOS,iPhone
-1773042937,Samsung Internet,Android,Samsung SM-G960U
-1772905304,Chrome,Linux,Other
-1772202084,Samsung Internet,Android,Samsung SM-A505FN
-1771441204,Chrome,Android,Asus Nexus 10
-1770495107,Firefox Mobile,Android,Generic Smartphone
-1768374956,Samsung Internet,Android,Samsung SM-A505F
-1767483351,Mobile Safari UI/WKWebView,iOS,iPhone
-1765928837,Chrome Mobile WebView,Android,VOG-L29
-1765556457,Chrome Mobile WebView,Android,SNE-LX1
-1765437038,Mobile Safari UI/WKWebView,iOS,iPhone
-1764845339,Mobile Safari,iOS,iPad
-1764523000,Samsung Internet,Android,Samsung SM-A127F
-1764072962,Chrome Mobile WebView,Android,Samsung SM-N981B
-1763313651,WhatsApp,Other,Spider
-1759161511,Mobile Safari UI/WKWebView,iOS,iPhone
-1758285772,Chrome Mobile WebView,Android,Samsung SM-S918U
-1757870746,Firefox,Mac OS X,Other
-1756609504,Chrome Mobile,Android,Generic Smartphone
-1756367706,Firefox,Other,Other
-1756024344,Chrome,Windows,Other
-1755458404,Chrome Mobile iOS,iOS,iPhone
-1755235785,Samsung Internet,Android,Generic Smartphone
-1754469527,Firefox,Mac OS X,Other
-1754187748,Firefox,Windows,Other
-1754092713,Samsung Internet,Android,Samsung SM-N976B
-1753866857,Chrome Mobile WebView,Android,EVR-L29
-1752045135,Samsung Internet,Android,Samsung SM-G977B
-1751866239,Chrome Mobile WebView,Android,Samsung SM-A127F
-1750510832,Chrome Mobile WebView,Android,XiaoMi Redmi Note 9 Pro Max
-1748353508,Firefox,Ubuntu,Other
-1747945336,Mobile Safari UI/WKWebView,iOS,iPhone
-1747517481,Chrome Mobile WebView,Android,Samsung SM-S908E
-1747018921,Chrome Mobile WebView,Android,Infinix $2
-1746903733,Samsung Internet,Android,Samsung SM-G965F
-1745028512,Chrome Mobile WebView,Android,XiaoMi Redmi Note 8
-1743719575,Mobile Safari UI/WKWebView,iOS,iPhone
-1743424014,Chrome,Windows,Other
-1743370049,Chrome,Windows,Other
-1743245239,Chrome,Mac OS X,Other
-1742401503,Chrome Mobile WebView,Android,Samsung SM-A536U
-1741686537,Chrome Mobile WebView,Android,MAR-LX1A
-1741357711,Samsung Internet,Android,Samsung SM-S906B
-1740631944,Samsung Internet,Android,Samsung SM-G991N
-1740443756,Chrome Mobile,Android,Generic Smartphone
-1740432534,Chrome,Mac OS X,Other
-1740020027,Samsung Internet,Android,Samsung SM-A526B
-1739150316,Chrome Mobile WebView,Android,Samsung SM-N960F
-1737837923,Mobile Safari UI/WKWebView,iOS,iPhone
-1737189579,Mobile Safari UI/WKWebView,iOS,iPhone
-1736336550,Chrome Mobile WebView,Android,Pixel 5
-1736323550,Chrome Mobile WebView,Android,MAR-LX1A
-1735815275,Chrome,Mac OS X,Other
-1735230879,Mobile Safari UI/WKWebView,iOS,iPhone
-1734703941,Chrome Mobile WebView,Android,Samsung SM-G973U1
-1734562237,IE Mobile,Windows Phone,Lumia 530
-1733251426,Facebook,iOS,iPhone
-1733112366,Chrome,Windows,Other
-1732865511,Chrome Mobile WebView,Android,Samsung SM-A105F
-1732804654,Screaming Frog SEO Spider,Other,Spider
-1732676450,WhatsApp,Other,Spider
-1731556396,Samsung Internet,Android,Samsung SM-N950F
-1731538412,Client,Other,iOS-Device
-1731501996,Samsung Internet,Android,Samsung SM-S901U
-1731393934,Chrome,Mac OS X,Other
-1731060645,Firefox,Ubuntu,Other
-1729693235,Mobile Safari UI/WKWebView,iOS,iPhone
-1729297101,Chrome,Mac OS X,Other
-1728510503,Chrome,Windows,Other
-1728477029,Chrome,Windows,Other
-1728091993,Chrome Mobile iOS,iOS,iPhone
-1728022882,Chrome Mobile WebView,Android,Samsung SM-G781W
-1727952307,Chrome Mobile WebView,Android,Samsung SM-N976U
-1725696346,Chrome Mobile WebView,Android,EML-L29
-1725696224,Chrome,Mac OS X,Other
-1725214855,Safari,Mac OS X,Other
-1724556194,Samsung Internet,Android,Samsung SM-M307F
-1723670822,Chrome Mobile WebView,Android,Samsung SM-G781B
-1723656660,Chrome Mobile WebView,Android,XiaoMi Redmi Note 9 Pro Max
-1722708525,Firefox,Windows,Other
-1721503402,Chrome,Linux,Other
-1721042151,Chrome Mobile iOS,iOS,iPhone
-1720086690,AwarioBot,Other,Spider
-1719825940,Samsung Internet,Android,Samsung SM-G990W
-1719781101,Chrome Mobile WebView,Android,Samsung SM-N960U
-1719372699,Firefox,Linux,Other
-1718760832,Firefox,Ubuntu,Other
-1718466808,Firefox Mobile,Android,Generic Smartphone
-1716742283,Mobile Safari UI/WKWebView,iOS,iPhone
-1716466707,Safari,Mac OS X,Other
-1715996794,Chrome,Linux,Other
-1715839329,Samsung Internet,Android,Samsung SM-G965F
-1715688427,Spark,Other,iOS-Device
-1715684295,Samsung Internet,Android,Samsung SM-G9910
-1715652220,Firefox,Linux,Other
-1714473512,Mobile Safari UI/WKWebView,iOS,iPhone
-1713437557,Chrome Mobile,Android,XiaoMi Redmi Note 8T
-1712957729,Chrome Mobile WebView,Android,Samsung SM-S901U1
-1712138819,Chrome Mobile,Android,Generic Smartphone
-1711750502,Facebook,Android,Generic Smartphone
-1711650798,Chrome Mobile iOS,iOS,iPad
-1711269707,Chrome Mobile iOS,iOS,iPhone
-1711019472,Client,Other,iOS-Device
-1710836301,Chrome,Mac OS X,Other
-1710781166,Chrome Mobile,Android,Nokia undefined$2$3
-1710593473,Chrome Mobile iOS,iOS,iPad
-1708887497,Opera,Windows,Other
-1706887614,Firefox,CentOS,Other
-1706156851,Chrome,Mac OS X,Other
-1705646893,Mobile Safari UI/WKWebView,iOS,iPhone
-1705517896,Chrome,Mac OS X,Other
-1704492168,Chrome Mobile,Android,XiaoMi Redmi Note 5
-1704471623,Chrome Mobile WebView,Android,Samsung SM-S908U
-1703660718,Chrome Mobile WebView,Android,XiaoMi Redmi Note 8 Pro
-1703449989,Mobile Safari UI/WKWebView,iOS,iPhone
-1703387796,Chrome Mobile WebView,Android,vivo $2
-1702954165,Opera,Linux,Other
-1702897241,HeadlessChrome,Linux,Other
-1702804581,Mobile Safari UI/WKWebView,iOS,iPhone
-1699801207,Firefox,Linux,Other
-1698532140,Samsung Internet,Android,Samsung SM-F926B
-1697941787,Mobile Safari UI/WKWebView,iOS,iPhone
-1697866355,Samsung Internet,Android,Samsung SM-A125F
-1697144243,Chrome Mobile iOS,iOS,iPhone
-1696529597,Chrome Mobile WebView,Android,Samsung SM-F731W
-1696262812,Chrome,Mac OS X,Other
-1695633529,Samsung Internet,Android,Samsung SM-S918W
-1694984033,Chrome Mobile iOS,iOS,iPhone
-1693207750,Chrome Mobile WebView,Android,Generic Smartphone
-1693139149,Minimo,Windows CE,Generic Smartphone
-1693037010,Chrome Mobile WebView,Android,XiaoMi Redmi 7A
-1692213915,Chrome Mobile iOS,iOS,iPad
-1692198303,Facebook,iOS,iPhone
-1690886875,Chrome Mobile iOS,iOS,iPad
-1689610070,Firefox,Windows,Other
-1687328072,Chrome Mobile,Android,Generic Smartphone
-1686157977,Chrome Mobile WebView,Android,Samsung SM-S901W
-1685353005,Facebook,Android,Samsung SM-G965U
-1684827318,Chrome Mobile WebView,Android,Samsung SM-M426B
-1684683152,Mobile Safari UI/WKWebView,iOS,iPhone
-1684160241,Firefox,Windows,Other
-1683190254,Chrome Mobile WebView,Android,XiaoMi MI 6
-1683111047,Samsung Internet,Android,Samsung SM-G991U1
-1682592082,Chrome,Windows,Other
-1681899330,Facebook,Android,Samsung SM-G965U
-1681038236,CFNetwork,Other,iOS-Device
-1679147341,Samsung Internet,Android,Samsung SM-P610
-1678934038,Chrome Mobile,Android,Generic Smartphone
-1678721803,Samsung Internet,Android,Samsung SM-S916B
-1677333186,Firefox,Mac OS X,Other
-1677290216,Samsung Internet,Android,Samsung SM-N986B
-1676897141,Mobile Safari UI/WKWebView,iOS,iPhone
-1676513206,Samsung Internet,Android,Samsung SM-G955F
-1675987588,Chrome Mobile WebView,Android,Oppo R11
-1675969583,Yandex Browser,Windows,Other
-1675472351,Firefox,Windows,Other
-1674266099,Chrome Mobile WebView,Android,Pixel 7
-1673134280,HeadlessChrome,Windows,Other
-1672867262,Safari,Mac OS X,Other
-1672348992,Safari,Mac OS X,Other
-1671218047,Firefox,Mac OS X,Other
-1671194811,Firefox,Windows,Other
-1668241851,Facebook,Android,Generic Smartphone
-1667395318,Chrome Mobile WebView,Android,XiaoMi Redmi K20 Pro
-1666919397,Chrome,Windows,Other
-1666910619,Samsung Internet,Android,Samsung SM-A135F
-1666786691,Firefox,Mac OS X,Other
-1665957200,Chrome,NetBSD,Other
-1664847929,Mobile Safari UI/WKWebView,iOS,iPhone
-1664712506,Firefox iOS,iOS,iPhone
-1664686934,Facebook,Android,Samsung SM-G965U
-1660578949,Mobile Safari,iOS,iPad
-1660202672,Chrome,Mac OS X,Other
-1658185699,Samsung Internet,Android,Samsung SM-G998U
-1658115491,Firefox,Mac OS X,Other
-1657701014,IE,Windows,Other
-1656714494,Samsung Internet,Android,Samsung SM-G991B
-1655887422,Chrome Mobile WebView,Android,Samsung SM-N975F
-1655694864,Chrome Mobile WebView,Android,17MB150WB
-1655190504,Samsung Internet,Android,Samsung SM-M307F
-1653867045,Facebook,iOS,iPhone
-1653598247,Chrome Mobile WebView,Android,XiaoMi Redmi Note 9 Pro
-1653375627,Mobile Safari,iOS,iPhone
-1651855819,UC Browser,Android,OnePlus ONEPLUS A5000
-1650492425,Chrome Mobile WebView,Android,vivo $2
-1649034749,Samsung Internet,Android,Samsung SM-G998U1
-1649022139,Chrome Mobile iOS,iOS,iPhone
-1648889422,Opera,Linux,Other
-1648112917,Chrome,Windows,Other
-1646553560,Chrome,Mac OS X,Other
-1644973381,Chrome,Linux,Other
-1644527778,Mobile Safari UI/WKWebView,iOS,iPhone
-1644373546,Chrome Mobile WebView,Android,Samsung SM-S901W
-1644125267,Chrome Mobile iOS,iOS,iPhone
-1643995636,Chrome Mobile WebView,Android,Samsung SM-G975F
-1643902308,Investment Crawler,Other,Other
-1641339091,Facebook,iOS,iPhone
-1640591101,Chrome Mobile iOS,iOS,iPhone
-1637582990,Mobile Safari UI/WKWebView,iOS,iPhone
-1636813457,Facebook,Android,TECNO $2
-1636257607,Mobile Safari UI/WKWebView,iOS,iPhone
-1636118557,Chrome,Windows,Other
-1635594966,Samsung Internet,Android,Samsung SM-N986U1
-1634999511,Mobile Safari UI/WKWebView,iOS,iPhone
-1634904339,BananaBot,Other,Other
-1634246499,Facebook,iOS,iPhone
-1633764047,Samsung Internet,Android,Samsung SM-M307F
-1632792816,Chrome,Mac OS X,Other
-1632421935,Safari,Mac OS X,Other
-1631098940,Firefox,Windows,Other
-1630500719,Firefox Mobile,Android,Generic Smartphone
-1630173545,BlackBerry WebKit,BlackBerry OS,BlackBerry 9800
-1629949647,Chrome Mobile WebView,Android,Samsung SM-S901U
-1629691070,Chrome Mobile WebView,Android,XiaoMi MI 9
-1629219592,Mobile Safari UI/WKWebView,iOS,iPhone
-1628333590,Samsung Internet,Android,Samsung SM-G960U1
-1628019878,Samsung Internet,Android,Samsung SM-G955U
-1627677057,Maxthon,Windows,Other
-1627582262,Mobile Safari UI/WKWebView,iOS,iPhone
-1627090405,Chrome Mobile WebView,Android,ANE-LX1
-1626264212,Samsung Internet,Android,Samsung SM-G996U
-1625313216,Firefox iOS,iOS,iPhone
-1625073582,Mobile Safari UI/WKWebView,iOS,iPhone
-1624846745,Mobile Safari UI/WKWebView,iOS,iPhone
-1624799144,Amazon Silk,Android,Kindle
-1624747874,Chrome Mobile,Android,Generic Smartphone
-1623741460,Chrome Mobile WebView,Android,Samsung SM-F721U
-1622692516,Chrome,Windows,Other
-1622012266,Firefox,Other,Other
-1621966039,Chrome Mobile,Android,Generic Smartphone
-1621589537,Chrome Mobile,Android,Nexus 5X
-1621296616,Chrome Mobile WebView,Android,Samsung SM-G990E
-1620418630,Firefox,Mac OS X,Other
-1620195293,Chrome Mobile WebView,Android,MT2111
-1620039585,Firefox,Ubuntu,Other
-1619657964,ZaldomoSearchBot,Other,Other
-1618873151,Firefox,Debian,Other
-1618417163,Chrome Mobile WebView,Android,Samsung SM-E236B
-1616499040,Chrome Mobile iOS,iOS,iPhone
-1616407326,Chrome Mobile WebView,Android,Samsung SM-A736B
-1616391348,Firefox,Windows,Other
-1616303098,Chrome Mobile WebView,Android,MAR-LX3A
-1615858946,Client,Other,iOS-Device
-1615588847,Chrome Mobile iOS,iOS,iPhone
-1614869721,Mobile Safari UI/WKWebView,iOS,iPhone
-1614734080,Samsung Internet,Android,Samsung SM-M305F
-1614470770,Python Requests,Other,Other
-1614374621,Samsung Internet,Android,Samsung SM-J600FN
-1613498657,Mobile Safari,iOS,iPhone
-1613471665,Chrome,Windows,Other
-1612172937,Firefox,Windows,Other
-1611291589,BingPreview,Windows,Spider
-1611065869,Firefox iOS,iOS,iPhone
-1611037615,Chrome Mobile iOS,iOS,iPhone
-1610379496,Chrome Mobile,Android,Generic Smartphone
-1609701735,Mobile Safari UI/WKWebView,iOS,iPhone
-1609407836,Firefox,Windows,Other
-1608857323,Mobile Safari,iOS,iPhone
-1608616231,Mobile Safari UI/WKWebView,iOS,iPhone
-1608178313,Chrome Mobile,Android,Generic Smartphone
-1607823206,Mobile Safari UI/WKWebView,iOS,iPhone
-1606536988,Mobile Safari UI/WKWebView,iOS,iPhone
-1606127121,Samsung Internet,Android,Samsung SM-S908E
-1605909381,Mobile Safari UI/WKWebView,iOS,iPhone
-1605786719,Chrome Mobile WebView,Android,Samsung SM-M215G
-1604704219,Chrome Mobile WebView,Android,Samsung SM-A528B
-1604540262,Chrome Mobile WebView,Android,Samsung SM-M315F
-1604514734,Chrome,Mac OS X,Other
-1603246564,Samsung Internet,Android,Samsung SM-A525F
-1602755394,Chrome Mobile,Android,Generic Smartphone
-1601992225,Chrome,Windows,Other
-1600675643,Chrome Mobile WebView,Android,Samsung SM-S906E
-1599799364,Mobile Safari,iOS,iPhone
-1599294869,Chrome Mobile WebView,Android,XiaoMi Redmi Note 9 Pro
-1598410980,Chrome Mobile WebView,Android,MT2111
-1598304889,Chrome Mobile WebView,Android,Pixel 6
-1597983800,Firefox,Windows,Other
-1597401041,Chrome,Windows,Other
-1596642111,Chrome Mobile WebView,Android,Samsung SM-G973U1
-1596182683,Chrome Mobile WebView,Android,Generic Smartphone
-1595682218,Python Requests,Windows,Other
-1595673175,Firefox,Windows,Other
-1595660160,Samsung Internet,Android,Samsung SM-G950F
-1595349535,Mobile Safari UI/WKWebView,iOS,iPhone
-1594850247,Firefox,Windows,Other
-1594630312,Chrome Mobile iOS,iOS,iPhone
-1593049523,Yandex Browser,Windows,Other
-1592997441,Edge,Windows,Other
-1590854553,Chrome Mobile iOS,iOS,iPhone
-1587928254,Mobile Safari UI/WKWebView,iOS,iPhone
-1587002286,Firefox,Ubuntu,Other
-1585877027,Samsung Internet,Android,Samsung SM-X906B
-1584752829,Chrome Mobile WebView,Android,Samsung SM-N770F
-1583377850,WhatsApp,Other,Spider
-1583264750,Opera,Windows,Other
-1582932044,Chrome Mobile,Android,Generic Smartphone
-1582761624,CFNetwork,Other,iOS-Device
-1581023231,Opera,Mac OS X,Other
-1580673584,Chrome Mobile,Android,Generic Smartphone
-1578952330,Mobile Safari UI/WKWebView,iOS,iPhone
-1577851877,WhatsApp,Other,Spider
-1577204173,Firefox,Mac OS X,Other
-1577050568,WhatsApp,Other,Spider
-1575951659,Mobile Safari UI/WKWebView,iOS,iPhone
-1575688704,Firefox,Windows,Other
-1575685035,Chrome Mobile WebView,Android,INE-LX1
-1575418588,Chrome,Fedora,Other
-1574777157,Samsung Internet,Android,Samsung SM-G981U1
-1574518640,Android,Android,sdk
-1573989781,HeadlessChrome,Linux,Other
-1572757772,Chrome Mobile iOS,iOS,iPhone
-1572714258,Firefox,Windows,Other
-1572473512,Chrome,Windows,Other
-1571012660,Chrome,Mac OS X,Other
-1570239429,Chrome Mobile WebView,Android,Samsung SM-S9080
-1568440741,Chrome Mobile iOS,iOS,iPhone
-1568144927,Chrome Mobile,Android,Nokia undefined$2$3
-1566883626,Firefox,Windows,Other
-1566601883,Firefox,Windows,Other
-1564546189,Samsung Internet,Android,Samsung SM-A528B
-1564375161,Chrome Mobile WebView,Android,COL-L29
-1563117653,Reeder,Other,iOS-Device
-1562872640,Chrome Mobile WebView,Android,XiaoMi Redmi Note 9 Pro
-1562546422,Firefox,Windows,Other
-1562418341,Chrome Mobile iOS,iOS,iPhone
-1562132366,Chrome,Windows,Other
-1562000584,Chrome Mobile WebView,Android,XiaoMi Redmi Note 4
-1560910344,Samsung Internet,Android,Samsung SM-G960U
-1560843185,Chrome,Windows,Other
-1560417920,Samsung Internet,Android,Samsung SM-N975F
-1557078971,Chrome Mobile WebView,Android,Samsung SM-A525F
-1554147415,Mobile Safari UI/WKWebView,iOS,iPhone
-1553917197,Opera,Windows,Other
-1553349094,Facebook,Android,Samsung SM-S916U
-1552776790,Chrome,Windows,Other
-1552692436,Chrome Mobile iOS,iOS,iPhone
-1552612047,Samsung Internet,Android,Samsung SM-A336E
-1549840290,Chrome Mobile WebView,Android,Samsung SM-M045F
-1549742176,Opera,Windows,Other
-1549649812,Firefox,Windows,Other
-1548118161,Safari,Windows,Other
-1547755325,Chrome Mobile WebView,Android,Samsung SM-A127F
-1546257527,Chrome Mobile WebView,Android,Samsung SM-G955F
-1543243662,Samsung Internet,Android,Samsung SM-A315F
-1543127595,Iron,Linux,Other
-1542991772,Chrome Mobile,Android,Generic Smartphone
-1542630293,Samsung Internet,Android,Samsung SM-N981B
-1542438511,Chrome Mobile iOS,iOS,iPhone
-1542227757,Chrome Mobile,Android,Nexus 5
-1541920806,Chrome,Windows,Other
-1540009733,Chrome,Mac OS X,Other
-1539758990,Firefox,Windows,Other
-1537830325,Firefox iOS,iOS,iPhone
-1537329728,Mobile Safari UI/WKWebView,iOS,iPhone
-1537202917,Mobile Safari UI/WKWebView,iOS,iPhone
-1536885942,Chrome Mobile iOS,iOS,iPhone
-1536479100,Chrome,Mac OS X,Other
-1535032100,Chrome Mobile WebView,Android,Generic Smartphone
-1534589329,Chrome Mobile WebView,Android,Samsung SM-A505F
-1533614414,Chrome Mobile WebView,Android,XiaoMi Redmi Note 9 Pro
-1533420426,Mobile Safari UI/WKWebView,iOS,iPhone
-1533267027,Mobile Safari UI/WKWebView,iOS,iPhone
-1532988678,Facebook,Android,Samsung SM-G973U
-1532809361,Samsung Internet,Android,Samsung SM-G970F
-1531595603,Chrome Mobile WebView,Android,Samsung SM-S911U1
-1531447614,Mobile Safari UI/WKWebView,iOS,iPad
-1530747524,Chrome Mobile iOS,iOS,iPhone
-1530442312,Samsung Internet,Android,Samsung SM-M135FU
-1529640407,Chrome,Mac OS X,Other
-1529493328,SeaMonkey,Windows,Other
-1528076366,Chrome Mobile,Android,Generic Smartphone
-1527671828,Chrome,Mac OS X,Other
-1526126909,Opera Mobile,Android,Generic Smartphone
-1524771473,Mobile Safari UI/WKWebView,iOS,iPad
-1523863364,Chrome Mobile WebView,Android,Samsung SM-A525F
-1522586405,Chrome Mobile,Android,Generic Smartphone
-1521184521,Chrome Mobile WebView,Android,HUAWEI $2
-1520840697,Chrome Mobile,Android,Generic Smartphone
-1520520015,Samsung Internet,Android,Samsung SM-G975F
-1519774217,Firefox,Linux,Other
-1519657308,Chrome,Mac OS X,Other
-1516967044,AportCatalogRobot,Other,Spider
-1516965605,Firefox,Windows,Other
-1516742733,Chrome,Windows,Other
-1516650145,Opera,Windows,Other
-1516288471,Chrome,Windows,Other
-1515668220,Chrome Mobile,Android,Generic Smartphone
-1514157559,Chrome Mobile WebView,Android,Samsung SM-A716U
-1511410481,Mobile Safari UI/WKWebView,iOS,iPhone
-1511186324,Opera,Mac OS X,Other
-1510946942,Mobile Safari UI/WKWebView,iOS,iPhone
-1510841889,Chrome Mobile WebView,Android,TECNO $2
-1510375762,Chrome,Windows,Other
-1510367307,Chrome Mobile WebView,Android,VOG-L29
-1509609705,Chrome,Windows,Other
-1509350454,Chrome Mobile,Android,Nokia undefined$2$3
-1508473496,Chrome,Windows,Other
-1508267965,Chrome Mobile WebView,Android,Samsung SM-A125U
-1508036018,Samsung Internet,Android,Samsung SM-A515F
-1508033127,Facebook,Android,Generic Smartphone
-1506707797,Firefox iOS,iOS,iPhone
-1506025522,Chrome Mobile WebView,Android,Generic Smartphone
-1505998513,Chrome,Mac OS X,Other
-1505655624,Mobile Safari UI/WKWebView,iOS,iPhone
-1505641246,Chrome,Windows,Other
-1505412579,Chrome Mobile WebView,Android,Samsung SM-G998U
-1504973533,Chrome,Windows,Other
-1504173985,Chrome,Windows,Other
-1503986402,Mobile Safari UI/WKWebView,iOS,iPhone
-1503297557,Chrome Mobile WebView,Android,Samsung SM-N986U1
-1503225336,Chrome,Mac OS X,Other
-1503028911,Chrome Mobile WebView,Android,Samsung SM-A515F
-1502868483,Mobile Safari UI/WKWebView,iOS,iPhone
-1502254337,Chrome Mobile WebView,Android,YAL-L41
-1502234594,Chrome,Linux,Spider
-1501872710,Opera Mobile,Android,Generic Smartphone
-1501610011,Chrome Mobile iOS,iOS,iPhone
-1499728961,Chrome,Windows,Other
-1499485287,Mobile Safari UI/WKWebView,iOS,iPhone
-1499352434,Mobile Safari UI/WKWebView,iOS,iPhone
-1498607460,Chrome,Mac OS X,Other
-1497462211,Chrome,Mac OS X,Other
-1497410235,Chrome Mobile WebView,Android,Infinix $2
-1496378014,Chrome Mobile WebView,Android,Samsung SM-N770F
-1495694625,AwarioSmartBot,Other,Spider
-1494773986,Chrome,Mac OS X,Other
-1494207424,Mobile Safari UI/WKWebView,iOS,iPad
-1493924874,Chrome Mobile WebView,Android,RNE-L21
-1493774087,Chrome,Mac OS X,Other
-1492674238,Chrome,Linux,Other
-1492312428,Firefox,Windows,Other
-1489807405,Chrome Mobile,Android,Generic Smartphone
-1489728271,Samsung Internet,Android,Samsung SM-G986U1
-1489424009,Chrome Mobile,Android,Generic Smartphone
-1488397860,Chrome Mobile WebView,Android,Samsung SM-F926B
-1487991490,Facebook,Android,TECNO $2
-1487901363,Chrome Mobile,Android,Generic Smartphone
-1487663909,Facebook,Android,XiaoMi Redmi 8
-1487327914,Chrome,Mac OS X,Other
-1487153524,Chrome Mobile WebView,Android,Samsung SM-A207M
-1486553711,Mobile Safari UI/WKWebView,iOS,iPhone
-1485036261,MJ12bot,Other,Spider
-1484239623,Chrome Mobile,Android,Samsung SM-G960F
-1483889394,Samsung Internet,Android,Samsung SM-G990W2
-1483656643,Chrome Mobile iOS,iOS,iPhone
-1482152176,Samsung Internet,Android,Samsung SM-A226B
-1481807410,Chrome,Windows,Other
-1481058404,Chrome,Windows,Other
-1479262200,Mobile Safari UI/WKWebView,iOS,iPhone
-1478546922,Chrome,Windows,Other
-1477598677,Firefox,Windows,Other
-1477195561,Chrome Mobile WebView,Android,OnePlus ONEPLUS A6000
-1475893097,Firefox,Windows,Other
-1474405739,Vivaldi,Windows,Other
-1474150032,Chrome Mobile WebView,Android,Samsung SM-A528B
-1474025731,Chrome Mobile iOS,iOS,iPhone
-1473959500,Chrome Mobile iOS,iOS,iPhone
-1473666306,Chrome Mobile iOS,iOS,iPhone
-1473291014,Chrome,Windows,Other
-1473127787,Mobile Safari,iOS,iPhone
-1470737959,Chrome Mobile WebView,Android,XiaoMi Redmi Note 7
-1470460199,Chrome Mobile WebView,Android,Samsung SM-G996U
-1468411731,Chrome Mobile WebView,Android,Asus I001DE
-1468165937,Chrome Mobile WebView,Android,Samsung SM-T870
-1468091339,Mobile Safari UI/WKWebView,iOS,iPhone
-1467276580,Chrome,Windows,Other
-1466727540,Chrome,Windows,Other
-1465939751,SemrushBot,Other,Spider
-1465273875,Chrome Mobile iOS,iOS,iPhone
-1464927614,Chrome,Windows,Other
-1464821404,Chrome,Mac OS X,Other
-1464640438,Mobile Safari UI/WKWebView,iOS,iPhone
-1463786624,Chrome Mobile WebView,Android,XiaoMi Redmi Note 5A Prime
-1463626317,Facebook,Android,Samsung SM-A217M
-1463472665,Firefox Mobile,Android,Generic Smartphone
-1461822691,Samsung Internet,Android,Samsung SM-S908U
-1461728643,Chrome Mobile WebView,Android,Samsung SM-S908U
-1461706642,Chrome Mobile WebView,Android,EML-L29
-1460497498,Chrome Mobile WebView,Android,Samsung SM-A536B
-1460319524,Chrome Mobile,Android,ELS-NX9
-1459478362,Mobile Safari UI/WKWebView,iOS,iPhone
-1459223944,Chrome Mobile WebView,Android,vivo $2
-1458906076,Chrome,Windows,Other
-1458851499,Chrome Mobile,Android,Generic Smartphone
-1457634892,Chrome,Mac OS X,Other
-1456912577,Firefox iOS,iOS,iPhone
-1456276972,Chrome,Windows,Other
-1455708884,Chrome Mobile,Android,Nokia undefined$2$3
-1454245680,Firefox,Other,Other
-1453397364,Samsung Internet,Android,Samsung SM-A536B
-1452302136,Opera Mobile,Android,Generic Smartphone
-1451199759,Chrome,Windows,Other
-1451045070,Chrome,Windows,Other
-1450625944,Samsung Internet,Android,Samsung SM-A125U1
-1449903701,HeadlessChrome,Linux,Other
-1448957582,Chrome,Android,Generic Smartphone
-1447493738,Facebook,Android,Samsung SM-G780G
-1446001466,curl,Other,Other
-1445451548,Opera,Windows,Other
-1445157616,Firefox,Windows,Other
-1444009478,Samsung Internet,Android,Samsung SM-N960U
-1443750018,Opera,Linux,Other
-1442830036,Mobile Safari UI/WKWebView,iOS,iPhone
-1441517893,Chrome Mobile WebView,Android,Samsung SM-G981B
-1441159940,Swiftfox,Linux,Other
-1440821467,Samsung Internet,Android,Samsung SM-G780G
-1440229796,Samsung Internet,Android,Samsung SM-S918B
-1439234966,Firefox,Windows,Other
-1438537232,Chrome,Mac OS X,Other
-1437567607,Firefox,Mac OS X,Other
-1437210317,Edge,Windows,Other
-1436248636,IE Mobile,Windows Phone,Generic Smartphone
-1435426875,Chrome,Mac OS X,Other
-1435299361,Chrome Mobile WebView,Android,Samsung SM-N981W
-1435249805,Safari,Mac OS X,Other
-1435099839,Samsung Internet,Android,Samsung SM-E135F
-1435075120,Chrome Mobile,Android,Generic Smartphone
-1434816006,Mobile Safari,iOS,iPhone
-1434054743,Samsung Internet,Android,Samsung SM-N975U1
-1431940731,Firefox Mobile,Android,Generic Smartphone
-1431141041,Chrome,Windows,Other
-1431066408,Samsung Internet,Android,Samsung SM-S908U1
-1430273957,Chrome Mobile WebView,Android,VOG-L04
-1429990012,Facebook,Android,XiaoMi Redmi Note 7
-1429025639,Samsung Internet,Android,Samsung SM-A125M
-1428182298,Samsung Internet,Android,Samsung SM-A536B
-1428108323,Electron,Windows,Other
-1426911319,Other,Linux,Other
-1425618330,Chrome Mobile WebView,Android,Samsung SM-G9650
-1425123966,Chrome,Mac OS X,Other
-1424952748,Chrome Mobile WebView,Android,Samsung SM-M136B
-1424822199,Chrome Mobile iOS,iOS,iPhone
-1424610619,SenutoBot,Other,Other
-1424259121,Chrome,Windows,Other
-1424097436,Samsung Internet,Android,Samsung SM-G781U1
-1423768173,Safari,Mac OS X,Other
-1423223080,Facebook,Android,Generic Smartphone
-1422612008,Facebook,Android,Samsung SM-G955U
-1422150517,Chrome,Windows,Other
-1421617221,Chrome,Android,Asus Nexus 10
-1421233424,Chrome Mobile WebView,Android,Samsung SM-G960F
-1421194165,Chrome,Linux,Other
-1420759540,Mobile Safari,iOS,iPhone
-1420345731,Client,Other,iOS-Device
-1420239974,Chrome Mobile WebView,Android,Samsung SM-G950U1
-1420220179,Opera,Windows,Other
-1419658593,Mobile Safari,iOS,iPhone
-1419022712,Chrome Mobile WebView,Android,ELE-L29
-1417667855,Chrome Mobile iOS,iOS,iPhone
-1416790638,Firefox,Windows,Other
-1415792750,Chrome,Mac OS X,Other
-1415389823,Chrome Mobile iOS,iOS,iPhone
-1414530940,Mobile Safari UI/WKWebView,iOS,iPhone
-1413836329,Chrome Mobile WebView,Android,Samsung SM-S911U
-1413403727,Chrome Mobile WebView,Android,Samsung SM-C5000
-1411966903,Firefox,FreeBSD,Other
-1411449303,Mobile Safari UI/WKWebView,iOS,iPhone
-1410838309,Opera,Windows,Other
-1410024268,Firefox,Ubuntu,Other
-1409400718,Mobile Safari,iOS,iPhone
-1408419785,Samsung Internet,Android,Samsung $2
-1408331269,Chrome Mobile WebView,Android,Samsung SM-G531H
-1407616375,Mobile Safari UI/WKWebView,iOS,iPhone
-1407559797,Mobile Safari UI/WKWebView,iOS,iPhone
-1407367072,Mobile Safari,iOS,iPhone
-1406899094,ISSCyberRiskCrawler,Mac OS X,Other
-1406848964,Firefox,Windows,Other
-1406512618,Chrome Mobile WebView,Android,Samsung SM-A546E
-1405908347,Chrome Mobile WebView,Android,Samsung SM-M115F
-1405564681,Chrome Mobile,Android,Samsung SM-G900P
-1405470094,Samsung Internet,Android,Samsung SM-S911B
-1405152970,Samsung Internet,Android,Samsung SM-E426B
-1403901586,Chrome,Windows,Other
-1403360495,Facebook,Android,Acer $2
-1403090103,Chrome Mobile WebView,Android,XiaoMi MI 9
-1402447641,Firefox,Windows,Other
-1402179969,Chrome,Linux,Other
-1401866904,Mobile Safari UI/WKWebView,iOS,iPhone
-1401811585,Chrome Mobile WebView,Android,Generic Smartphone
-1399925038,Opera,Windows,Other
-1399178607,Chrome Mobile WebView,Android,XiaoMi Redmi Note 9S
-1398934029,Chrome Mobile iOS,iOS,iPad
-1397542652,Chrome Mobile WebView,Android,Samsung SM-G998U1
-1397331561,Chrome Mobile WebView,Android,Samsung SM-G991U
-1396758580,WeChatShareExtensionNew,Other,iOS-Device
-1395826244,SemrushBot,Other,Spider
-1395211778,Chrome,Mac OS X,Other
-1395205722,Chrome,Mac OS X,Other
-1395007828,Samsung Internet,Android,Samsung SM-G975F
-1394396768,Samsung Internet,Android,Samsung SM-M315F
-1393879726,Firefox,SUSE,Other
-1393792631,Apple Mail,Mac OS X,Other
-1392963976,Spark,Other,iOS-Device
-1392395448,Mobile Safari UI/WKWebView,iOS,iPhone
-1391411668,Client,Other,iOS-Device
-1391115515,Chrome Mobile WebView,Android,Samsung SM-F721U1
-1391086063,Samsung Internet,Android,Samsung SM-A426U1
-1390791047,Chrome Mobile,Android,Generic Smartphone
-1389987962,Opera,Android,Asus Nexus 7
-1389722965,Opera,Mac OS X,Other
-1389238713,Mobile Safari UI/WKWebView,iOS,iPhone
-1388590089,Firefox,Mac OS X,Other
-1387875440,Chrome Mobile WebView,Android,Samsung SM-A525F
-1387626331,IE,Windows,Other
-1387588751,Firefox,Ubuntu,Other
-1385682232,Samsung Internet,Android,Samsung SM-G950W
-1385340353,Mobile Safari UI/WKWebView,iOS,iPhone
-1385090649,Mobile Safari UI/WKWebView,iOS,iPhone
-1384792682,SummalyBot,Other,Other
-1384760027,Chrome Mobile WebView,Android,PAL-LX9
-1384429876,Firefox,Fedora,Other
-1384364865,Chrome Mobile,Android,Nokia undefined$2$3
-1383924329,Samsung Internet,Android,Samsung SM-E625F
-1383868711,Samsung Internet,Android,Samsung SM-A125W
-1383726908,Mobile Safari UI/WKWebView,iOS,iPhone
-1383274014,Mobile Safari UI/WKWebView,iOS,iPhone
-1382314586,Chrome,Windows,Other
-1382006162,Chrome Mobile WebView,Android,Samsung SM-M307F
-1381983912,Spark,Other,iOS-Device
-1381192766,Samsung Internet,Android,Samsung SM-G973F
-1381172596,Chrome Mobile WebView,Android,Samsung SM-S918U
-1381139534,Chrome,Windows,Other
-1380880116,Facebook,iOS,iPhone
-1380802519,Mobile Safari UI/WKWebView,iOS,iPhone
-1380536143,Chrome Mobile WebView,Android,Samsung SM-T970
-1378504858,Mobile Safari UI/WKWebView,iOS,iPhone
-1378107261,Chrome,Linux,Other
-1377710767,Chrome Mobile WebView,Android,Pixel 5a
-1377407755,Firefox,Linux,Other
-1377118818,HeadlessChrome,Linux,Other
-1376662420,Mobile Safari UI/WKWebView,iOS,iPhone
-1373904355,Mobile Safari UI/WKWebView,iOS,iPhone
-1373672510,Firefox,Windows,Other
-1373563168,Samsung Internet,Android,Samsung SM-N975U
-1373380589,Chrome Mobile,Android,Generic Smartphone
-1373026844,Chrome Mobile iOS,iOS,iPhone
-1372513121,Safari,Mac OS X,Other
-1372312044,Samsung Internet,Android,Samsung SM-M326B
-1371415928,Mobile Safari UI/WKWebView,iOS,iPad
-1370957722,Chrome,Windows,Other
-1369522053,Chrome,Mac OS X,Other
-1368963848,WidgetKitExtension,Other,iOS-Device
-1367974130,Chrome,Mac OS X,Other
-1366900085,Chrome Mobile WebView,Android,Samsung SM-G781U
-1366529958,Chrome,Windows,Other
-1366157862,Chrome,Windows,Other
-1364856823,Chrome,Windows,Other
-1364334355,Chrome,Mac OS X,Other
-1364210037,Samsung Internet,Android,Samsung SM-G9750
-1363257242,Firefox,Mac OS X,Other
-1363069051,Firefox,Windows,Other
-1362030862,Other,Other,Asus kunst
-1361394180,WhatsApp,Other,Spider
-1361166153,Chrome Mobile iOS,iOS,iPad
-1360879038,Yandex Browser,Android,Generic Smartphone
-1360240975,Chrome Mobile,Android,Generic Smartphone
-1359489207,Chrome Mobile iOS,iOS,iPad
-1359285870,Opera,Mac OS X,Other
-1358837134,Facebook,Android,Samsung SM-A125F
-1358734465,Chrome,Windows,Other
-1358237665,Chrome Mobile,Android,Generic Smartphone
-1357833272,WebKit Nightly,Mac OS X,Other
-1357735506,Chrome Mobile WebView,Android,Samsung SM-S918B
-1356748967,Firefox,Ubuntu,Other
-1356716377,Chrome,Windows,Other
-1356648767,Chrome Mobile WebView,Android,vivo $2
-1356610739,Chrome Mobile WebView,Android,ELE-AL00
-1356242188,Chrome Mobile WebView,Android,Samsung SM-N986B
-1355405309,Chrome,Windows,Other
-1354557149,Chrome Mobile,Android,Moto $2
-1353862119,Chrome Mobile WebView,Android,Samsung SM-M515F
-1352087082,Firefox,Windows,Other
-1350558141,Chrome,Windows,Other
-1350247485,Mobile Safari UI/WKWebView,iOS,iPhone
-1348972069,Facebook,Android,Samsung SM-G975F
-1348970480,Samsung Internet,Android,Samsung SM-G960U
-1348416873,Yandex Browser,Android,Generic Smartphone
-1347548328,Samsung Internet,Android,Samsung SM-G781U
-1347356360,Chrome Mobile WebView,Android,Samsung SM-N770F
-1346239735,Chrome Mobile iOS,iOS,iPhone
-1344770222,Mobile Safari UI/WKWebView,iOS,iPhone
-1342998975,Firefox,Ubuntu,Other
-1342872948,NetFront,Other,Ericsson K610i
-1342421376,Chrome,Linux,Other
-1342124467,Firefox,Ubuntu,Other
-1341463873,Chrome Mobile WebView,Android,Google Pixel
-1341422298,Mobile Safari UI/WKWebView,iOS,iPhone
-1340374095,Chrome,Mac OS X,Other
-1340289089,Vivaldi,Linux,Other
-1339518140,Chrome,Linux,Other
-1338363493,Firefox,Windows,Other
-1338188042,Yandex Browser,Windows,Other
-1337819624,Chrome Mobile WebView,Android,Samsung SM-G986U
-1337541490,Safari,Mac OS X,Other
-1336046500,Chrome Mobile,Linux,Other
-1336027241,Chrome,Linux,Other
-1333726157,Mobile Safari UI/WKWebView,iOS,iPhone
-1333332892,Chrome,Mac OS X,Other
-1333269918,Chrome Mobile WebView,Android,XiaoMi Redmi Note 7
-1332873738,Chrome Mobile,Android,Samsung SM-G930A
-1332265993,Opera,Windows,Other
-1332045571,Chrome Mobile,Android,Generic Smartphone
-1331210481,Chrome,Windows,Other
-1331094331,Chrome Mobile WebView,Android,Samsung SM-S906E
-1329674493,Firefox,Windows,Other
-1327796843,Chrome,Mac OS X,Other
-1327430188,Opera,Linux,Other
-1326454743,Chrome Mobile WebView,Android,Samsung SM-N960F
-1326063289,Chrome Mobile WebView,Android,Samsung SM-S911B
-1325395081,Firefox,Ubuntu,Other
-1325127793,Mobile Safari UI/WKWebView,iOS,iPhone
-1323080162,Facebook,iOS,iPhone
-1322621446,Chrome Mobile WebView,Android,XiaoMi Redmi Note 8 Pro
-1322265829,Chrome Mobile WebView,Android,Pixel 6
-1321681724,Samsung Internet,Android,Samsung SM-J700H
-1321523589,Samsung Internet,Android,Samsung SM-A750FN
-1320372124,Chrome,Chrome OS,Other
-1320273384,Chrome,Windows,Other
-1320118486,Chrome Mobile iOS,iOS,iPhone
-1318529332,Iceweasel,Linux,Other
-1317669287,Chrome Mobile WebView,Android,Samsung SM-F936B
-1314410202,Firefox,Ubuntu,Other
-1313201383,Samsung Internet,Android,Samsung SM-A336M
-1312963778,Chrome Mobile,Android,LG-$2
-1312481085,Chrome,Windows,Other
-1312098527,Firefox,Windows,Other
-1311366276,Samsung Internet,Android,Samsung SM-G781B
-1310929519,Chrome Mobile,Android,Generic Smartphone
-1310389246,Chrome Mobile WebView,Android,Generic Smartphone
-1309709815,Facebook,Android,Samsung SM-G970U1
-1308885473,Mobile Safari UI/WKWebView,iOS,iPhone
-1308783451,Chrome Mobile WebView,Android,Samsung SM-A515F
-1307533700,Firefox iOS,iOS,iPhone
-1307168836,Chrome,Windows,Other
-1307166497,HeadlessChrome,Linux,Other
-1306179113,Firefox,Windows,Other
-1305753025,Firefox,Windows,Other
-1305695098,Chrome Mobile WebView,Android,Samsung SM-M307F
-1304967933,Chrome,Windows,Other
-1304238375,Chrome Mobile,Android,XiaoMi Redmi K20 Pro
-1304196806,Samsung Internet,Android,Samsung SM-F926B
-1303509259,Chrome,Windows,Other
-1302531346,Firefox,Windows,Other
-1302463071,Samsung Internet,Android,Samsung SM-S918U1
-1302335504,Chrome,Mac OS X,Other
-1302199254,IE,Windows,Other
-1300884066,Edge,Windows,Other
-1299894704,Screaming Frog SEO Spider,Other,Spider
-1297430615,Firefox,Windows,Other
-1297181396,Android,Android,LG-$2
-1297133080,Chrome Mobile,Android,Generic Smartphone
-1297042709,Facebook,Android,Generic Smartphone
-1296586517,Chrome,Mac OS X,Other
-1296475067,Chrome,Mac OS X,Other
-1296256573,Chrome Mobile iOS,iOS,iPhone
-1296214730,Mobile Safari UI/WKWebView,iOS,iPhone
-1295876883,Chrome Mobile WebView,Android,Infinix $2
-1294708780,Firefox Mobile,Android,Generic Smartphone
-1294484360,Mobile Safari UI/WKWebView,iOS,iPhone
-1293796834,Chrome,Windows,Other
-1293095489,Chrome Mobile WebView,Android,LYA-AL00
-1291386653,Chrome,Mac OS X,Other
-1290745296,Chrome Mobile WebView,Android,XiaoMi Redmi Y2
-1288794983,Samsung Internet,Android,Samsung SM-G986U
-1286946969,Chrome Mobile iOS,iOS,iPhone
-1286559485,Chrome Mobile iOS,iOS,iPad
-1286070439,Chrome Mobile WebView,Android,Samsung SM-G970U1
-1285352541,Chrome,Windows,Other
-1283373762,Firefox,Fedora,Other
-1282975415,Chrome,Linux,Other
-1282882841,Client,Other,iOS-Device
-1281477123,Chrome Mobile WebView,Android,Nokia$2$3
-1281193485,Samsung Internet,Android,Samsung SM-A705FN
-1280196662,WhatsApp,Other,Spider
-1279081161,Mobile Safari,iOS,iPhone
-1278964581,Chrome,Windows,Other
-1278945753,Chrome,Mac OS X,Other
-1276682067,Chrome Mobile WebView,Android,Samsung SM-M127G
-1275069426,Chrome Mobile,Android,Pixel 2
-1273694828,Opera,Mac OS X,Other
-1272625337,Chrome Mobile,Android,Generic Smartphone
-1271905599,Chrome Mobile WebView,Android,OnePlus ONEPLUS A6010
-1271860675,curl,Other,Other
-1271690705,Opera Mobile,Symbian OS,Generic Smartphone
-1271145421,Chrome,Windows,Other
-1270029536,Chrome Mobile iOS,iOS,iPhone
-1269900732,Chrome,Linux,Other
-1268652152,Mobile Safari UI/WKWebView,iOS,iPhone
-1267757171,Chrome Mobile,Android,LG-$2
-1265897613,Samsung Internet,Android,Samsung SM-A525F
-1264689369,Chrome,Linux,Other
-1263867981,Chrome,Chrome OS,Other
-1263309970,Chrome,Mac OS X,Other
-1262847243,Chrome Mobile WebView,Android,vivo $2
-1262677625,Mobile Safari,iOS,iPad
-1261314928,Mobile Safari UI/WKWebView,iOS,iPhone
-1260568237,Firefox,Mac OS X,Other
-1259816303,QQ Browser,Windows,Other
-1259457904,curl,Other,Other
-1257393793,Chrome Mobile iOS,iOS,iPhone
-1257151816,Chrome Mobile WebView,Android,Samsung SM-A536E
-1256626555,Python Requests,Other,Other
-1256563001,Mobile Safari UI/WKWebView,iOS,iPhone
-1253022395,Chrome,Mac OS X,Other
-1252630993,Chrome Mobile iOS,iOS,iPad
-1250159606,Samsung Internet,Android,Samsung SM-A336E
-1249914947,Java,Other,Spider
-1249702722,Facebook,Android,Samsung SM-N950F
-1249556418,Mobile Safari UI/WKWebView,iOS,iPhone
-1249503350,Chrome,Linux,Other
-1249486424,Chrome,Other,Other
-1249078690,Firefox,Ubuntu,Other
-1248840597,Chrome,Mac OS X,Other
-1247755926,Chrome,Windows,Other
-1247630128,Amazon Silk,Android,"Kindle Fire HDX 7"" WiFi"
-1247277951,Safari,Mac OS X,Other
-1246703408,Chrome,Mac OS X,Other
-1245245825,coccocbot,Other,Spider
-1244709188,Chrome Mobile WebView,Android,Samsung SM-F711W
-1244458482,Safari,Mac OS X,Other
-1243615787,Screaming Frog SEO Spider,Other,Spider
-1243580542,Mobile Safari UI/WKWebView,iOS,iPhone
-1243542249,Chrome Mobile,Android,Generic Smartphone
-1243184679,Safari,Mac OS X,Other
-1242849660,Chrome Mobile iOS,iOS,iPad
-1241521018,Firefox,Ubuntu,Other
-1241236455,Firefox,Windows,Other
-1239969168,Chrome Mobile iOS,iOS,iPhone
-1239614241,Chrome,Windows,Other
-1238481051,Chrome,Mac OS X,Other
-1238439380,Chrome,Mac OS X,Other
-1238295066,Chrome Mobile,Android,Generic Smartphone
-1238284686,Chrome Mobile iOS,iOS,iPhone
-1237776047,Samsung Internet,Android,Samsung SM-M315F
-1236663404,Chrome,Linux,Other
-1236614506,Samsung Internet,Android,Samsung SM-G991U1
-1235963658,Chrome Mobile,Android,Generic Smartphone
-1234992402,Firefox,Mac OS X,Other
-1234409702,Firefox,Ubuntu,Other
-1234334367,Chrome Mobile,Android,Generic Smartphone
-1232032496,Chrome Mobile,Android,Generic Smartphone
-1231739065,Chrome Mobile,Android,Generic Smartphone
-1230301610,Samsung Internet,Android,Samsung SM-E236B
-1229590591,Chrome Mobile iOS,iOS,iPhone
-1227963658,Firefox,Ubuntu,Other
-1227930347,Facebook,iOS,iPhone
-1227573084,Facebook,Android,Samsung SM-A260G
-1227207640,Samsung Internet,Android,Samsung SM-A135F
-1225131124,Chrome,Windows,Other
-1225121067,Samsung Internet,Android,Samsung SM-A415F
-1223969267,Mobile Safari UI/WKWebView,iOS,iPhone
-1223496983,Facebook,Android,Generic Smartphone
-1222001104,Firefox,Windows,Other
-1221402870,Mobile Safari UI/WKWebView,iOS,iPhone
-1220891766,Chrome Mobile WebView,Android,Samsung SM-M317F
-1219269863,Chrome Mobile WebView,Android,Pixel 7
-1219122144,Chrome,Android,Generic Smartphone
-1218651424,Mobile Safari UI/WKWebView,iOS,iPhone
-1218645493,Chrome Mobile,Android,Nokia undefined$2$3
-1218343616,Chrome,Mac OS X,Other
-1217993711,AhrefsBot,Other,Spider
-1217260699,Chrome Mobile WebView,Android,Infinix $2
-1215346135,Samsung Internet,Android,Samsung SM-N986U1
-1214264002,Chrome Mobile WebView,Android,XiaoMi Redmi Note 9S
-1213914065,Firefox Mobile,Android,Generic Smartphone
-1213810614,Chrome Mobile WebView,Android,Samsung SM-G986W
-1212378082,Samsung Internet,Android,Samsung SM-A325F
-1211717349,Mobile Safari,iOS,iPhone
-1211457370,Firefox,Windows,Other
-1210800475,Chrome Mobile WebView,Android,OnePlus ONEPLUS A6013
-1208179267,Firefox,Mac OS X,Other
-1207555361,Chrome Mobile WebView,Android,Samsung SM-A325M
-1206882704,Firefox iOS,iOS,iPhone
-1205385835,Firefox Mobile,Android,Generic Smartphone
-1204810424,Chrome Mobile,Android,Generic Smartphone
-1204678702,Chrome,Windows,Other
-1203822183,Chrome Mobile WebView,Android,XiaoMi Redmi Note 7 Pro
-1203594136,Mobile Safari UI/WKWebView,iOS,iPhone
-1202208437,Firefox iOS,iOS,iPhone
-1200540475,Chrome,Chrome OS,Other
-1199757468,Firefox,Windows,Other
-1199653200,Other,Windows,Other
-1194195040,Chrome,Linux,Other
-1194156975,Chrome,Windows,Other
-1192500591,Chrome,Mac OS X,Other
-1192158189,Scrapy,Other,Spider
-1192029089,Chrome,Windows,Other
-1191568972,Chrome Mobile WebView,Android,ART-L29N
-1190634534,Mobile Safari UI/WKWebView,iOS,iPhone
-1190504273,Samsung Internet,Android,Samsung $2
-1189010759,Firefox Alpha,Windows,Other
-1188999111,Chrome Mobile WebView,Android,Samsung SM-M536B
-1187963775,Firefox,Windows,Other
-1187260415,Chrome Mobile iOS,iOS,iPhone
-1186130882,Chrome,Mac OS X,Other
-1185964808,Chrome Mobile,Android,Generic Smartphone
-1185483398,Chrome,Windows,Other
-1185319615,Chrome Mobile WebView,Android,Samsung SM-M127G
-1183448900,Firefox iOS,iOS,iPhone
-1183444725,Chrome Mobile,Android,Generic Smartphone
-1183068158,Firefox,Linux,Other
-1182931740,Chrome,Linux,Other
-1182579490,Chrome Mobile WebView,Android,Samsung SM-G998B
-1181703140,Chrome,Windows,Other
-1180828194,Chrome,CentOS,Other
-1180345440,Chrome Mobile WebView,Android,Samsung SM-A536B
-1179801819,Facebook,Android,Samsung SM-G991U
-1178002611,Chrome Mobile,Android,XT1052
-1177756712,Chrome Mobile iOS,iOS,iPhone
-1177480300,Trend%20Micro%20Antivirus,Other,Mac
-1175419279,Firefox Beta,Windows,Other
-1175342960,serpstatbot,Other,Spider
-1173952122,Chrome Mobile WebView,Android,Samsung SM-M325FV
-1173462401,Chrome Mobile WebView,Android,XiaoMi MI 8
-1170296675,Samsung Internet,Android,Samsung SM-F731B
-1169284333,Firefox,Mac OS X,Other
-1168666914,Chrome Mobile WebView,Android,OnePlus ONEPLUS A5010
-1168212684,Java,Other,Other
-1166309794,Mobile Safari,iOS,iPhone
-1165489978,Samsung Internet,Android,Samsung SM-S906U
-1164119236,Facebook,Android,Samsung SM-A528B
-1163297813,Samsung Internet,Android,Samsung SM-A405FN
-1163177889,Chrome,Mac OS X,Other
-1162105939,Chrome Mobile WebView,Android,Samsung SM-G960F
-1161414245,Chrome Mobile iOS,iOS,iPhone
-1161067686,ISSCyberRiskCrawler,Mac OS X,Other
-1159777891,Chrome Mobile WebView,Android,Samsung SM-J701F
-1158542493,Firefox,Windows,Other
-1157358092,IE,Windows,Other
-1153122519,Chrome Mobile WebView,Android,Samsung SM-A520F
-1153076197,Chrome,Mac OS X,Other
-1152214814,Chrome,Mac OS X,Other
-1150602819,Chrome Mobile WebView,Android,Asus I01WD
-1149853755,Chrome,Android,Huawei Browser
-1149687446,Facebook,Android,Samsung SM-G950U1
-1148375383,Firefox iOS,iOS,iPhone
-1147817349,Firefox iOS,iOS,iPhone
-1147673769,Chrome Mobile iOS,iOS,iPhone
-1147328458,Facebook,iOS,iPhone
-1146505867,Chrome,Linux,Other
-1145696124,Chrome,Windows,Other
-1145524461,Chrome Mobile,Android,Generic Smartphone
-1145387284,Chrome,Windows,Other
-1145226998,Firefox,Mac OS X,Other
-1143305765,Chrome Mobile,Android,Generic Smartphone
-1142006820,Firefox,Windows,Other
-1139455088,Samsung Internet,Android,Samsung SM-G981W
-1138341683,Python-urllib,Other,Spider
-1138296912,Safari,Mac OS X,Other
-1138224999,Chrome,Mac OS X,Other
-1137756214,okhttp,Other,Other
-1137329863,Mobile Safari,iOS,iPhone
-1137198127,Chrome Mobile WebView,Android,VOG-L04
-1137143087,Chrome Mobile,Android,Nokia undefined$2$3
-1136512693,Firefox,Windows,Other
-1135465244,Chrome,Mac OS X,Other
-1133693808,Chrome Mobile WebView,Android,XiaoMi Redmi Note 6 Pro
-1133202902,Chrome Mobile WebView,Android,Samsung SM-F711U
-1132685681,UC Browser,Android,vivo $2
-1131346082,Chrome,Android,Generic Smartphone
-1130909161,Chrome Mobile WebView,Android,Samsung SM-G986U1
-1128768474,Opera,Linux,Other
-1128190650,Chrome,Mac OS X,Other
-1127841004,Chrome Mobile WebView,Android,Samsung SM-S918B
-1127127298,Chrome,Mac OS X,Other
-1126384753,Chrome,Windows,Other
-1126145801,Firefox,Windows,Other
-1125981966,Chrome Mobile iOS,iOS,iPhone
-1125968345,Mobile Safari UI/WKWebView,iOS,iPhone
-1125237183,Facebook,Android,XiaoMi Redmi Note 8T
-1124819641,Samsung Internet,Android,Samsung SM-G781V
-1124651613,Chrome Mobile WebView,Android,Samsung SM-S908W
-1124455265,Facebook,Android,Pixel 3
-1124427337,Chrome,Mac OS X,Other
-1124266624,DataForSeoBot,Other,Spider
-1124061047,Mobile Safari UI/WKWebView,iOS,iPhone
-1123308706,Chrome Mobile WebView,Android,ANE-LX2
-1123297871,Firefox,Windows,Other
-1123001528,Facebook,Android,Pixel 2
-1121758326,Chrome Mobile WebView,Android,CPH1909
-1120818358,Chrome Mobile,Android,Generic Smartphone
-1120480096,Chrome Mobile WebView,Android,JAD-LX9
-1119319694,Chrome,Windows,Other
-1119036218,Chrome Mobile WebView,Android,Samsung SM-G965U
-1118046124,Mobile Safari UI/WKWebView,iOS,iPad
-1117841446,Chrome Mobile WebView,Android,Nokia$2$3
-1116126102,Firefox Mobile,Android,Generic Smartphone
-1115851376,Firefox,Windows,Other
-1114336455,Chromium,Ubuntu,Other
-1114226898,Facebook,Android,Generic Smartphone
-1114123784,Firefox,Ubuntu,Other
-1114110366,Chrome,Mac OS X,Other
-1113264152,Samsung Internet,Tizen,Samsung SMART-TV
-1112065049,Firefox,Windows,Other
-1111921119,Firefox,Windows,Other
-1110761524,Firefox,Ubuntu,Other
-1110206251,Samsung Internet,Android,Samsung SM-A528B
-1109347652,Mobile Safari,iOS,iPhone
-1106945244,Mobile Safari UI/WKWebView,iOS,iPhone
-1106776733,Chrome Mobile WebView,Android,XiaoMi Redmi Note 8 Pro
-1106160996,Facebook,Android,Samsung SM-G965U
-1106107617,Samsung Internet,Android,Samsung $2
-1105744534,Chrome Mobile WebView,Android,Nokia$2$3
-1105468171,Mobile Safari UI/WKWebView,iOS,iPhone
-1104677493,Firefox,Windows,Other
-1104322652,Chrome Mobile WebView,Android,Samsung SM-G975U
-1103032050,Chrome Mobile iOS,iOS,iPhone
-1102753363,Firefox,Windows,Other
-1102694364,Chrome,Mac OS X,Other
-1101939053,Samsung Internet,Android,Samsung SM-G996U
-1101832520,Chrome Mobile WebView,Android,Samsung SM-N981B
-1101774425,Spark,Other,iOS-Device
-1101495741,Firefox iOS,iOS,iPhone
-1100718401,okhttp,Other,Other
-1099513955,Chrome,Mac OS X,Other
-1098480261,Firefox,Windows,Other
-1097471912,Firefox,Linux,Other
-1095325819,Firefox,Windows,Other
-1095248046,Chrome Mobile iOS,iOS,iPhone
-1094584239,Chrome,Mac OS X,Other
-1094372602,Chrome Mobile iOS,iOS,iPhone
-1093966067,Mobile Safari UI/WKWebView,iOS,iPhone
-1093498167,Chrome Mobile WebView,Android,Samsung SM-G991U1
-1093017525,Firefox,OpenBSD,Other
-1092830233,Chrome Mobile WebView,Android,POT-LX1
-1092645933,Chrome,Linux,Other
-1091934458,Samsung Internet,Android,Samsung SM-A716S
-1091663435,Chrome Mobile iOS,iOS,iPhone
-1090833571,Chrome Mobile WebView,Android,Samsung SM-S901E
-1090143950,Lynx,Other,Other
-1089811713,Samsung Internet,Android,Samsung SM-A515F
-1089703815,Chrome Mobile WebView,Android,Samsung SM-G981U
-1089667550,Screaming Frog SEO Spider,Other,Spider
-1089137768,Firefox,Linux,Other
-1089070216,Chrome,Windows,Other
-1088565224,curl,Other,Other
-1088329777,Samsung Internet,Android,Samsung SM-S906E
-1088058372,Chrome,Mac OS X,Other
-1087453555,Mobile Safari,iOS,iPhone
-1087438445,Mobile Safari,iOS,iPhone
-1086488241,QQ Browser,Windows,Other
-1086327604,Mobile Safari UI/WKWebView,iOS,iPhone
-1086274093,Chrome Mobile WebView,Android,Samsung SM-A326U
-1086185380,WhatsApp,Other,Spider
-1085462073,Samsung Internet,Android,Samsung SM-M336BU
-1084947870,Yandex Browser,Windows,Other
-1084389703,Chrome Mobile WebView,Android,Samsung SM-A125M
-1082320071,Opera,Windows,Other
-1081527817,Mobile Safari UI/WKWebView,iOS,iPhone
-1081057583,Chrome,Mac OS X,Other
-1080009624,Facebook,iOS,iPhone
-1079981287,Chrome Mobile WebView,Android,Samsung SM-G998W
-1079883553,Chrome Mobile iOS,iOS,iPhone
-1078089283,Firefox,Linux,Other
-1076947656,Chrome,Mac OS X,Other
-1075421512,Chrome,Windows,Other
-1074230718,Mobile Safari UI/WKWebView,iOS,iPhone
-1074144332,FacebookBot,Mac OS X,Spider
-1073476914,Android,Android,Nokia undefined$2$3
-1072898962,Facebook,Android,Pixel 7
-1072769080,Mobile Safari,iOS,iPhone
-1069942046,Spark,Other,iOS-Device
-1069730088,Samsung Internet,Android,Samsung SM-G980F
-1069703934,Samsung Internet,Android,Samsung SM-G990B
-1069388223,HeadlessChrome,Linux,Other
-1067372418,Opera,Mac OS X,Other
-1067303569,Chrome,Linux,Other
-1067276089,Chrome Mobile WebView,Android,Samsung SM-G970U1
-1066503329,IE,Mac OS,Other
-1065608830,Edge,Windows,Other
-1063171671,Facebook,iOS,iPhone
-1062407486,Chrome,Windows,Other
-1062243809,Chrome Mobile WebView,Android,CPH1901
-1061856114,Mobile Safari UI/WKWebView,iOS,iPhone
-1060657457,Samsung Internet,Android,Samsung SM-G950F
-1060564698,Scrapy,Other,Spider
-1060367053,Chrome,Linux,Other
-1060168242,Chrome Mobile WebView,Android,Samsung SM-G996B
-1060145362,HeadlessChrome,Linux,Other
-1060059639,Chrome Mobile iOS,iOS,iPhone
-1059594204,Mobile Safari UI/WKWebView,iOS,iPhone
-1059553889,Chrome,Mac OS X,Other
-1059413890,Chrome,Windows,Other
-1058514680,Chrome Mobile,Android,Generic Smartphone
-1057928743,Yandex Browser,Windows,Other
-1057001481,Chrome Mobile WebView,Android,XiaoMi Redmi Note 9 Pro
-1055468673,Chrome,Windows,Other
-1055412176,Chrome Mobile iOS,iOS,iPhone
-1054852574,Chrome Mobile WebView,Android,Pixel 6
-1054622273,Samsung Internet,Android,Samsung SM-G960F
-1054474142,SeaMonkey,Red Hat,Other
-1053391302,Facebook,Android,Samsung SM-A125F
-1052573827,Firefox,Windows,Other
-1052539615,Chrome Mobile,Android,Samsung SM-G930V
-1052127114,Chrome Mobile WebView,Android,STK-LX3
-1051614380,Firefox,Mac OS X,Other
-1049950911,Mobile Safari UI/WKWebView,iOS,iPhone
-1049077793,Chrome Mobile WebView,Android,OnePlus ONEPLUS A5000
-1048960925,Firefox,Windows,Other
-1048858184,Firefox,Gentoo,Other
-1047707233,Samsung Internet,Android,Samsung $2
-1046832211,Chrome Mobile WebView,Android,Samsung SM-S911B
-1046613385,Chrome Mobile,Android,Generic Smartphone
-1046336025,Samsung Internet,Android,Samsung SM-G991B
-1046157066,Facebook,Android,Samsung SM-G998B
-1045586727,Chrome,Windows,Other
-1044645452,Chrome,Windows,Other
-1044256590,Chrome,Mac OS X,Other
-1043847436,Facebook,iOS,iPhone
-1042908034,Chrome,Linux,Other
-1042438814,Chrome,Mac OS X,Other
-1041875928,Firefox Mobile,Android,Generic Smartphone
-1040272858,Mobile Safari UI/WKWebView,iOS,iPhone
-1040067262,Samsung Internet,Android,Samsung SM-F936U1
-1039383458,Chrome,Android,Generic Tablet
-1037932174,Firefox,Mac OS X,Other
-1037766268,Samsung Internet,Android,Samsung SM-N950U
-1037224165,Chrome,Windows,Other
-1036883537,Chrome,Windows,Other
-1035744006,Chrome Mobile WebView,Android,Samsung SM-A715W
-1035527950,Other,Other,Generic Smartphone
-1034992728,MojeekBot,Other,Spider
-1033930852,Chrome,Mac OS X,Other
-1033674672,Chrome Mobile,Android,Generic Smartphone
-1033641867,Mobile Safari UI/WKWebView,iOS,iPhone
-1033559333,Chrome,Linux,Other
-1033378959,Samsung Internet,Android,Samsung SM-G960W
-1032690510,Chrome Mobile iOS,iOS,iPhone
-1032619235,Samsung Internet,Android,Samsung SM-G780F
-1032124587,Firefox,Ubuntu,Other
-1030997454,Samsung Internet,Android,Samsung SM-A235F
-1030391278,Firefox,Mac OS X,Other
-1029838121,Chrome,Mac OS X,Other
-1029516778,Chrome Mobile WebView,Android,Samsung SM-G950U1
-1029174669,Mobile Safari UI/WKWebView,iOS,iPhone
-1028663683,Mobile Safari,iOS,iPhone
-1028109197,Samsung Internet,Android,Samsung SM-A736B
-1027379206,Chrome Mobile WebView,Android,Samsung SM-G998U1
-1027148551,Chrome Mobile,Android,XiaoMi Redmi 4
-1026499202,Mobile Safari UI/WKWebView,iOS,iPhone
-1025887518,Firefox,Mac OS X,Other
-1024437317,Chrome Mobile WebView,Android,SNE-LX1
-1024097511,Chrome Mobile,Android,DRA-LX9
-1021414310,Chrome Mobile WebView,Android,ANE-AL00
-1020076359,Chrome Mobile WebView,Android,CLT-L29
-1019695792,Chrome,Windows,Other
-1018723267,Chrome Mobile WebView,Android,Samsung SM-G973U
-1018708959,Chrome Mobile WebView,Android,STK-LX1
-1018607537,Samsung Internet,Android,Samsung SM-A516U
-1018106420,Chrome Mobile,Android,Generic Smartphone
-1017796948,Yandex Browser,Windows,Other
-1017314989,Chrome Mobile WebView,Android,Samsung SM-S908B
-1016528510,Mobile Safari UI/WKWebView,iOS,iPhone
-1016168036,Chrome,Linux,Other
-1016146441,Baiduspider,Other,Spider
-1015934096,Chrome Mobile iOS,iOS,iPhone
-1015699165,Firefox iOS,iOS,iPhone
-1015440165,Chrome Mobile iOS,iOS,iPhone
-1015179548,Chrome,Mac OS X,Other
-1013594970,Chrome Mobile,Android,Nokia undefined$2$3
-1012740184,WhatsApp,Other,Spider
-1011894434,de/bot,Windows,Spider
-1011875768,Mobile Safari UI/WKWebView,iOS,iPhone
-1011819093,Mobile Safari UI/WKWebView,iOS,iPhone
-1010825909,Chrome Mobile WebView,Android,MAR-LX2
-1009727053,Facebook,Android,Generic Smartphone
-1009657762,Android,Android,Samsung Galaxy Nexus
-1009615472,Chrome,Windows,Other
-1008260086,Chrome,Windows,Other
-1007856598,Chrome Mobile iOS,iOS,iPhone
-1007765304,Facebook,iOS,iPhone
-1007636564,Samsung Internet,Android,Samsung SM-G970U1
-1007328674,WhatsApp,Other,Spider
-1007309854,Wget,Other,Other
-1007252212,Firefox Mobile,Android,Generic Smartphone
-1006299427,WhatsApp,Other,Spider
-1005783671,Opera,Windows,Other
-1004820852,Mobile Safari,iOS,iPad
-1003144388,Samsung Internet,Android,Samsung SM-A136B
-1002195094,Mobile Safari,iOS,iPhone
-1001669954,Samsung Internet,Android,Samsung SM-N975W
-1000866068,Chrome Mobile WebView,Android,Oppo R11s
-999545388,Chrome Mobile iOS,iOS,iPhone
-999519475,Firefox,Mac OS X,Other
-998775138,Samsung Internet,Android,Samsung SM-A520F
-998402397,Chrome,Mac OS X,Other
-997876948,Chrome,Mac OS X,Other
-997106958,Chrome Mobile iOS,iOS,iPhone
-996702454,Chrome Mobile WebView,Android,Samsung SM-G988N
-995958623,Chrome,Mac OS X,Other
-995791702,Samsung Internet,Android,Samsung SM-G996B
-995456264,Samsung Internet,Android,Samsung SM-T870
-995130146,Chrome Mobile WebView,Android,Samsung SM-A725F
-994518208,Facebook,iOS,iPhone
-993160216,Facebook,Android,Nokia$2$3
-992956730,Mobile Safari UI/WKWebView,iOS,iPhone
-991797984,Mobile Safari UI/WKWebView,iOS,iPhone
-991319827,Chrome,Mac OS X,Other
-990004361,Mobile Safari UI/WKWebView,iOS,iPhone
-989175995,Samsung Internet,Android,Samsung SM-A135M
-989170563,Chrome,Windows,Other
-989013719,Mobile Safari,iOS,iPhone
-988923477,Chrome,Mac OS X,Other
-987796999,Chrome,Mac OS X,Other
-987778137,Chrome Mobile WebView,Android,MAR-LX1B
-987308170,Wget,Other,Other
-986889940,Firefox,Ubuntu,Other
-985354421,Chrome,Linux,Other
-985189903,Chrome Mobile WebView,Android,ELE-L29
-984821993,Chrome,Windows,Other
-984458052,Samsung Internet,Android,Samsung SM-G770F
-983523355,Chrome Mobile iOS,iOS,iPhone
-983197604,Chrome Mobile WebView,Android,MAR-LX1A
-980948353,Mobile Safari UI/WKWebView,iOS,iPhone
-980668371,Pale Moon,Windows,Other
-980201597,Samsung Internet,Android,Samsung SM-A505F
-980019250,Chrome,Linux,Other
-979445566,Chrome,Linux,Other
-978464427,Samsung Internet,Android,Samsung SM-A135F
-977706421,Facebook,Android,Samsung SM-A135M
-977535308,Firefox,Windows,Other
-977119580,Firefox,Ubuntu,Other
-972605533,Chrome Mobile WebView,Android,Samsung SM-M205F
-971655262,Samsung Internet,Android,Samsung SM-G981W
-971167955,Chrome,Mac OS X,Other
-970774257,Firefox,Mac OS X,Other
-970495949,Chrome Mobile iOS,iOS,iPhone
-969141197,Screaming Frog SEO Spider,Other,Spider
-968267480,Samsung Internet,Android,Samsung SM-M307FN
-967785694,Edge,Windows,Other
-967727184,Firefox,Windows,Other
-966223371,Mobile Safari,iOS,iPhone
-965853301,Chrome Mobile iOS,iOS,iPhone
-965504321,Samsung Internet,Android,Generic Smartphone
-965214251,Chrome,Mac OS X,Other
-964625210,Chrome Mobile WebView,Android,TECNO $2
-963188172,WhatsApp,Other,Spider
-962542735,Samsung Internet,Android,Samsung SM-S908W
-961410715,Chrome Mobile WebView,Android,Samsung SM-M205F
-961288139,Samsung Internet,Android,Samsung SM-A035F
-960954576,Chrome Mobile,Android,Nexus 5X
-960666820,Firefox,Mac OS X,Other
-960437730,Chrome Mobile WebView,Android,XiaoMi MI 9
-960006245,Chrome,Mac OS X,Other
-959695177,Firefox,Windows,Other
-959651791,Mobile Safari UI/WKWebView,iOS,iPhone
-959264059,Firefox,Windows,Other
-958624055,Python Requests,Other,Other
-957682953,Samsung Internet,Android,Samsung SM-G781W
-957241425,Chrome,Mac OS X,Other
-955422989,Chrome Mobile,Android,Generic Smartphone
-955107192,Chrome,Mac OS X,Other
-955073899,Chromium,Ubuntu,Other
-954770444,Yandex Browser,Windows,Other
-953420282,Chrome,Windows,Other
-951012737,Chrome Mobile WebView,Android,Samsung SM-M115F
-950825501,Chrome Mobile iOS,iOS,iPhone
-950565246,Mobile Safari UI/WKWebView,iOS,iPhone
-950527385,Firefox,Windows,Other
-950088477,WhatsApp,Other,Spider
-948851779,Chrome,Mac OS X,Other
-948158516,Chrome,Mac OS X,Other
-948122445,Chrome,Mac OS X,Other
-947551412,WhatsApp,Other,Spider
-947254137,Client,Other,iOS-Device
-946989773,Samsung Internet,Android,Samsung SM-A305F
-946873323,Chrome Mobile,Android,Nexus 5
-946010717,Chrome,Mac OS X,Other
-945259025,Mobile Safari UI/WKWebView,iOS,iPhone
-943841779,Samsung Internet,Android,Samsung SM-S901U1
-942979580,Firefox,Windows,Other
-942422841,Firefox,Windows,Other
-941908534,Chrome Mobile,Android,Generic Smartphone
-940885926,_please_add_disallow_to_the_robots,Other,Spider
-940709778,Opera,Windows,Other
-940493088,Chrome,Mac OS X,Other
-940340082,Mobile Safari UI/WKWebView,iOS,iPhone
-937516675,Firefox,Linux,Other
-935967326,Firefox,Windows,Other
-935599386,Facebook,Android,Samsung SM-G965U
-934052694,Chrome,Windows,Other
-933404487,Chrome,Chrome OS,Other
-932823362,Mobile Safari,iOS,iPhone
-931971223,Chrome,Windows,Other
-931374855,Samsung Internet,Android,Samsung SM-A336B
-930069946,Client,Other,iOS-Device
-929776490,DomainStatsBot,Other,Spider
-928031508,Chrome,Windows,Other
-927677988,Samsung Internet,Android,Samsung SM-A325M
-926473240,Chrome Mobile WebView,Android,Samsung SM-G991U
-926067468,Chrome Mobile iOS,iOS,iPhone
-925576695,Chrome Mobile WebView,Android,Infinix $2
-925564822,Chrome Mobile,Android,XiaoMi Redmi Note 9 Pro
-924912598,Samsung Internet,Android,Samsung SM-A536E
-924146117,Samsung Internet,Android,Samsung SM-A415F
-921845050,Samsung Internet,Android,Samsung SM-G950F
-921268476,Chrome,Windows,Other
-921203420,Chrome Mobile WebView,Android,Samsung SM-A736B
-920058673,t3versionsBot,Other,Spider
-919811208,Samsung Internet,Android,Samsung SM-A525F
-919633843,Samsung Internet,Android,Samsung SM-G973W
-918963424,Chrome Mobile WebView,Android,Samsung SM-N950U
-918832578,Chrome Mobile WebView,Android,XiaoMi Redmi Note 7S
-918107379,Facebook,Android,OnePlus ONEPLUS A3003
-917086675,Firefox,Mac OS X,Other
-916301502,Chrome Mobile iOS,iOS,iPhone
-915107487,Samsung Internet,Android,Samsung SM-N986U1
-914889699,Chrome Mobile WebView,Android,vivo $2
-914288218,Chrome Mobile WebView,Android,XiaoMi MI 9
-912876027,Chrome Mobile iOS,iOS,iPhone
-912606367,Chrome Mobile WebView,Android,XiaoMi Redmi Note 9 Pro
-912391648,Mobile Safari UI/WKWebView,iOS,iPhone
-912057726,Samsung Internet,Android,Samsung SM-A307FN
-911341387,Chrome Mobile,Android,Nokia undefined$2$3
-911185252,Firefox,Ubuntu,Other
-910472629,Chrome,Windows,Other
-910398199,Mobile Safari UI/WKWebView,iOS,iPad
-910040499,Crawlson,Other,Spider
-909861673,Wget,Other,Other
-908160472,DF Bot,Other,Other
-906709219,Chrome Mobile WebView,Android,Samsung SM-A136B
-906264142,curl,Other,Other
-906254425,Firefox,Windows,Other
-905695431,Chrome Mobile,Android,Nokia undefined$2$3
-905508125,Chrome,Mac OS X,Other
-904935193,Chrome Mobile iOS,iOS,iPad
-904839854,Chrome,Linux,Other
-904812283,Samsung Internet,Android,Samsung SM-G965U
-903819243,Mobile Safari UI/WKWebView,iOS,iPhone
-903189265,Chrome Mobile iOS,iOS,iPad
-901124426,Mobile Safari UI/WKWebView,iOS,iPhone
-901019860,Chrome Mobile,Android,Generic Smartphone
-900625240,Safari,Mac OS X,Other
-897236252,Chrome Mobile WebView,Android,Samsung SM-G996U1
-896321901,Chrome Mobile WebView,Android,Samsung SM-A305G
-895541556,Mobile Safari UI/WKWebView,iOS,iPhone
-895428664,Chrome,Mac OS X,Other
-894850770,Firefox,Linux,Other
-893796722,Chrome,Windows,Other
-893731907,Mobile Safari UI/WKWebView,iOS,iPad
-892634662,Chrome,Windows,Other
-891951279,Chrome Mobile WebView,Android,EVR-L29
-890486794,Edge,Windows,Other
-887951016,Chrome Mobile WebView,Android,Samsung SM-S901B
-887516106,Chrome,Windows,Other
-886558862,Chrome,Mac OS X,Other
-886174448,Samsung Internet,Android,Samsung SM-G986U
-886101973,Mobile Safari,iOS,iPhone
-885975943,Opera,Windows,Other
-885696171,Chrome Mobile iOS,iOS,iPhone
-884459334,Chrome Mobile WebView,Android,Samsung SM-S911W
-883985213,Mobile Safari UI/WKWebView,iOS,iPhone
-883806255,Firefox Mobile,Android,Generic Smartphone
-883029584,Mobile Safari UI/WKWebView,iOS,iPhone
-882648549,Chrome Mobile WebView,Android,FIG-LX1
-882601033,Chrome,FreeBSD,Other
-882010033,Samsung Internet,Android,Samsung SM-S908B
-881982601,Chrome,Windows,Other
-880839767,Safari,Mac OS X,Other
-880061348,Chrome Mobile WebView,Android,JKM-LX1
-878810211,Chrome Mobile WebView,Android,Samsung SM-G770F
-878462809,Facebook,iOS,iPhone
-876338362,WhatsApp,Other,Spider
-876289669,Chrome Mobile WebView,Android,YAL-L21
-875834517,Chrome Mobile,Android,Generic Smartphone
-875830439,Firefox,Ubuntu,Other
-874297281,Mobile Safari UI/WKWebView,iOS,iPhone
-873995399,Mobile Safari UI/WKWebView,iOS,iPhone
-872834522,Chrome Mobile iOS,iOS,iPad
-869295297,Firefox,Mac OS X,Other
-868989253,Opera,Windows,Other
-868785776,Firefox iOS,iOS,iPhone
-868155100,Samsung Internet,Android,Samsung SM-G990W
-867655731,Firefox,Mac OS X,Other
-865821455,Facebook,iOS,iPhone
-865762799,Chrome,Mac OS X,Other
-865573098,Chrome,Windows,Other
-865523392,Facebook,Android,Generic Smartphone
-864268087,Chrome Mobile,Android,Generic Smartphone
-863628957,Chrome Mobile iOS,iOS,iPhone
-863514441,Chrome Mobile iOS,iOS,iPhone
-863064685,Chrome,Windows,Other
-862812572,Chrome,Mac OS X,Other
-862193575,Chrome,Linux,Other
-861239296,Chrome Mobile WebView,Android,Samsung SM-M127G
-857824927,Mobile Safari UI/WKWebView,iOS,iPad
-857796020,Other,Windows 98,Other
-857200405,Chrome,Mac OS X,Other
-856810727,Samsung Internet,Android,Samsung SM-A505F
-856062331,Firefox,Windows,Other
-854414708,Mobile Safari UI/WKWebView,iOS,iPhone
-852954565,Chrome Mobile WebView,Android,COL-L29
-850621908,HeadlessChrome,Linux,Other
-850262029,Firefox,Windows,Other
-849774519,Chrome,Mac OS X,Other
-848477358,Opera Mobile,Android,Generic Smartphone
-846891225,3+bottle,Other,Spider
-845484227,Samsung Internet,Android,Samsung SM-A346B
-844225554,Chrome,Mac OS X,Other
-844058496,Facebook,iOS,iPhone
-843784207,Samsung Internet,Android,Samsung SM-M127G
-843414108,Chrome Mobile,Android,Samsung SM-S901E
-843023486,Chrome,Mac OS X,Other
-842609713,Mobile Safari UI/WKWebView,iOS,iPad
-842530035,Chrome Mobile WebView,Android,Samsung SM-A217M
-840530679,Firefox,Mac OS X,Other
-840228432,Chrome Mobile,Android,Generic Smartphone
-839758903,Firefox,Windows,Other
-838086338,Samsung Internet,Android,Samsung SM-A127M
-838063463,Samsung Internet,Android,Samsung SM-G991U
-836894865,Chrome Mobile WebView,Android,Samsung SM-G981U
-836430059,Spark%20Desktop%20Helper,Other,iOS-Device
-835980254,UC Browser,Android,NOH-NX9
-835570695,Chrome Frame,Windows,Other
-834872347,Mobile Safari UI/WKWebView,iOS,iPhone
-834469221,Samsung Internet,Android,Samsung SM-G973W
-834041278,HeadlessChrome,Linux,Other
-833631353,Samsung Internet,Android,Samsung SM-M515F
-833604614,Chrome Mobile WebView,Android,Pixel 4a
-832802038,Samsung Internet,Android,Samsung SM-G780G
-832508691,Mobile Safari UI/WKWebView,iOS,iPhone
-830883762,Chrome Mobile WebView,Android,Samsung SM-G973F
-830119359,spider,Other,Spider
-829370630,Opera,Windows,Other
-828702358,Chrome Mobile WebView,Android,Samsung SM-G965F
-828644574,Chrome,Mac OS X,Other
-827838924,Samsung Internet,Android,Samsung SM-A235F
-827077717,Puffin,Windows,Other
-825656075,Mobile Safari UI/WKWebView,iOS,iPhone
-825280322,Samsung Internet,Android,Samsung SM-G950U1
-825064521,Chrome Mobile,Android,Generic Smartphone
-823392503,Chrome,Android,Generic Smartphone
-820504510,Samsung Internet,Android,Samsung SM-N770F
-820033686,Chrome Mobile,Android,Generic Smartphone
-819322926,Chrome,Windows,Other
-818446535,Chrome Mobile WebView,Android,Samsung SM-N950F
-818115413,Chrome Mobile,Android,Generic Smartphone
-818025926,Chrome,Windows,Other
-817752155,Mobile Safari UI/WKWebView,iOS,iPhone
-817705285,Firefox,Windows,Other
-817389586,Firefox iOS,iOS,iPhone
-817111176,Mobile Safari,iOS,iPhone
-816434028,Chrome Mobile,Android,Nokia undefined$2$3
-816355865,Chrome,Windows,Other
-815777339,AppEngine-Google,Windows,Spider
-815209947,Facebook,iOS,iPhone
-814422747,Chrome Mobile WebView,Android,Samsung SM-A715F
-813682057,Mobile Safari UI/WKWebView,iOS,iPhone
-813468278,Chrome Mobile iOS,iOS,iPhone
-812437588,Chrome Mobile WebView,Android,VOG-L29
-812077885,Facebook,Android,VOG-L29
-811469961,WhatsApp,Other,Spider
-810585066,Chrome,Windows,Other
-809308146,Chrome Mobile WebView,Android,Pixel 7
-808879563,Samsung Internet,Android,Samsung SM-G960W
-808605938,Chrome Mobile WebView,Android,Samsung SM-G990E
-808287533,Firefox,Windows,Other
-808279444,Chrome Mobile,Android,Generic Smartphone
-808133673,Chrome Mobile iOS,iOS,iPhone
-807271869,Firefox,Fedora,Other
-806604550,Mobile Safari UI/WKWebView,iOS,iPhone
-806540025,Chrome,Linux,Other
-805346632,Chrome Mobile iOS,iOS,iPhone
-805262293,Chrome,Windows,Other
-804752711,ZaldamoSearchBot,Other,Other
-804271100,Firefox Mobile,Android,Generic Smartphone
-803986263,Chrome Mobile WebView,Android,Samsung SM-A707F
-802738646,Mobile Safari,iOS,iPhone
-801200463,Opera Mobile,Android,Generic Smartphone
-801159560,Apache-HttpClient,Other,Other
-801036809,Firefox,Mac OS X,Other
-800190258,Chrome Mobile,Android,Generic Smartphone
-799986827,Samsung Internet,Android,Samsung SM-G965W
-798506596,Chrome Mobile WebView,Android,Samsung SM-A546E
-796946556,Chrome Mobile WebView,Android,Samsung SM-N975F
-796142590,B2B Bot,Other,Other
-794734664,Chrome Mobile WebView,Android,FIG-LX1
-792936350,Chrome,Mac OS X,Other
-792809320,Chrome,Mac OS X,Other
-792697418,Samsung Internet,Android,Samsung SM-G770F
-791968704,Chrome,Linux,Other
-790899555,Chrome,Linux,Other
-790569132,Chrome,Mac OS X,Other
-790508457,Firefox,Linux,Other
-790489183,Chrome Mobile WebView,Android,Samsung SM-S916B
-789941011,Facebook,Android,Samsung SM-G965U
-789668964,Chrome Mobile WebView,Android,Samsung SM-F415F
-789055446,Samsung Internet,Android,Samsung SM-G988U1
-786008743,Mobile Safari UI/WKWebView,iOS,iPhone
-784567633,Chrome Mobile WebView,Android,Samsung SM-G970U1
-784483831,Chrome,Windows,Other
-784229468,Chrome,Windows,Other
-782498670,Chrome,Windows,Other
-782031078,Mobile Safari UI/WKWebView,iOS,iPhone
-780857015,Mobile Safari UI/WKWebView,iOS,iPhone
-779615115,Chrome,Windows,Other
-779111232,Chrome Mobile iOS,iOS,iPhone
-779037270,Samsung Internet,Android,Samsung SM-G977N
-777444966,Chrome,Windows,Other
-777391697,Chrome,Windows,Other
-776609863,Chrome Mobile WebView,Android,Samsung SM-G985F
-776212499,Chrome Mobile WebView,Android,Samsung SM-M515F
-775288250,Chrome Mobile WebView,Android,XiaoMi Redmi Note 9 Pro
-775125335,Samsung Internet,Android,Samsung SM-A217F
-774737898,SemrushBot,Other,Spider
-774305915,Chrome,Windows,Other
-773631605,Chrome,Mac OS X,Other
-773239858,Samsung Internet,Android,Samsung SM-G975U
-773016832,Chrome Mobile iOS,iOS,iPhone
-772315664,Chrome Mobile iOS,iOS,iPad
-769712621,Mobile Safari,iOS,iPhone
-769200120,Chrome,Mac OS X,Other
-768939057,Chrome Mobile WebView,Android,Samsung SM-E236B
-768787967,Firefox iOS,iOS,iPhone
-768129634,Android,Android,Motorola Droid
-767830575,Chrome Mobile WebView,Android,EML-L29
-767574210,Chrome,Linux,Other
-765725828,Chrome Mobile WebView,Android,XiaoMi MI 6X
-764701296,Samsung Internet,Android,Samsung SM-G990B
-763922372,Facebook,Android,Samsung SM-G965U
-763259170,Opera,Windows,Other
-762379739,Facebook,Android,Samsung SM-G973F
-761762623,Chrome Mobile WebView,Android,Generic Smartphone
-761698142,Chrome,Mac OS X,Other
-761417845,Chrome,Mac OS X,Other
-760925631,Chrome Mobile iOS,iOS,iPhone
-758488246,Chrome Mobile WebView,Android,Samsung SM-M307F
-757617108,Chrome,Windows,Other
-757596646,Samsung Internet,Android,Samsung SM-J700F
-757061858,Facebook,Android,MAR-LX1M
-756737365,Mobile Safari UI/WKWebView,iOS,iPhone
-755854860,Chrome Mobile,Android,Generic Smartphone
-754833750,Opera,Mac OS X,Other
-754032050,Mobile Safari UI/WKWebView,iOS,iPhone
-753743037,Other,Mac OS X,Other
-752441725,Samsung Internet,Android,Samsung SM-G998U
-751899901,Samsung Internet,Android,Samsung SM-G965F
-751875326,Chrome,Windows,Other
-751541998,Chrome Mobile iOS,iOS,iPad
-751117215,WhatsApp,Other,Spider
-750907220,Chrome Mobile WebView,Android,Samsung SM-A015M
-750777320,WhatsApp,Other,Spider
-750169005,Firefox,Linux,Other
-749942386,Samsung Internet,Android,Samsung SM-G965U1
-749872741,Samsung Internet,Android,Samsung SM-A325F
-749231680,Chrome,Windows,Other
-749230640,Mobile Safari,iOS,iPhone
-748469753,Firefox,Windows,Other
-746764296,Firefox,CentOS,Other
-746487507,Chrome Mobile WebView,Android,Samsung SM-A307FN
-744872697,Chrome,Mac OS X,Other
-743081441,Samsung Internet,Android,Samsung SM-J730GM
-742633841,Seekport Crawler,Other,Other
-741902980,Chrome Mobile,Android,Generic Smartphone
-741375528,KStandBot,Windows,Spider
-741278562,Opera,Mac OS X,Other
-740537110,Chrome,Mac OS X,Other
-737922485,Chrome Mobile,Android,Nokia undefined$2$3
-737174785,Yandex Browser,Mac OS X,Other
-735039849,Chrome Mobile iOS,iOS,iPhone
-733794939,Chrome Mobile,Android,Generic Smartphone
-733614935,HeadlessChrome,Linux,Other
-733097781,curl,Other,Other
-732841400,Samsung Internet,Android,Samsung SM-M215F
-732384405,Spark%20Desktop%20Helper,Other,iOS-Device
-731860290,Firefox iOS,iOS,iPhone
-730780804,Chrome Mobile WebView,Android,Samsung SM-M146B
-729881120,Mobile Safari UI/WKWebView,iOS,iPhone
-728793922,Samsung Internet,Android,Samsung SM-N975U1
-726632432,Chrome Mobile WebView,Android,Samsung SM-A536E
-726594229,Chrome Mobile WebView,Android,Generic Smartphone
-726586095,Firefox,Windows,Other
-725855524,Chrome Mobile WebView,Android,Generic Smartphone
-725599973,Chrome,Mac OS X,Other
-724797033,Firefox,Windows,Other
-724177112,Samsung Internet,Android,Samsung SM-E625F
-724013194,vuhuvBot,Other,Spider
-723772485,Android,Android,Nokia undefined$2$3
-723764105,Chrome Mobile WebView,Android,Pixel 6a
-723664196,Yandex Browser,Windows,Other
-723516686,Mobile Safari UI/WKWebView,iOS,iPhone
-723244590,AccompanyBot,Other,Other
-722749273,Samsung Internet,Android,Samsung SM-G960U
-722593685,Chrome,Windows,Other
-720282254,Chrome Mobile iOS,iOS,iPhone
-717582027,Chrome Mobile,Android,XiaoMi Redmi Note 4X
-717062039,Firefox,Linux,Other
-716462401,Chrome,Windows,Other
-716280756,Chrome Mobile WebView,Android,Samsung SM-G770F
-716142587,Firefox,Windows,Other
-715851937,Mobile Safari UI/WKWebView,iOS,iPhone
-715637451,therobots,Other,Spider
-714747517,Spark%20Desktop%20Helper,Other,iOS-Device
-712881865,Chrome,Mac OS X,Other
-712504991,Firefox,Windows,Other
-712077312,Chrome Mobile iOS,iOS,iPhone
-711007751,Firefox,Mac OS X,Other
-710465795,Chrome,Mac OS X,Other
-708845700,Chrome Mobile WebView,Android,Pixel 3a
-707366196,Samsung Internet,Android,Samsung SM-N960U1
-706886568,Chrome Mobile WebView,Android,Samsung SM-G996U1
-706308188,Samsung Internet,Android,Samsung SM-A536E
-705462927,Chrome Mobile iOS,iOS,iPhone
-704737104,Mobile Safari UI/WKWebView,iOS,iPhone
-704334990,Chrome,Mac OS X,Other
-704194189,Chrome Mobile,Android,Nexus 5
-703623042,Firefox,Linux,Other
-702199030,Chrome Mobile WebView,Android,Samsung SM-A336E
-700873255,Chrome Mobile WebView,Android,Samsung SM-M305F
-700395127,Samsung Internet,Android,Samsung SM-A525F
-699363418,Mobile Safari UI/WKWebView,iOS,iPhone
-699212828,Chrome Mobile,Android,Generic Smartphone
-698834906,Firefox Mobile,Android,Generic Smartphone
-697830901,Mobile Safari UI/WKWebView,iOS,iPhone
-696808506,Chrome Mobile,Android,Generic Smartphone
-696657837,Firefox,Mac OS X,Other
-696297828,Opera,Windows,Other
-696184561,Facebook,Android,Samsung SM-G960U
-695555617,Chrome Mobile WebView,Android,LXX504
-694830971,Chrome Mobile WebView,Android,Infinix $2
-694772327,Firefox Mobile,Android,Generic Smartphone
-693207216,Chrome Mobile WebView,Android,Samsung SM-F127G
-692372580,Yandex Browser,Android,Generic Smartphone
-691045349,Firefox,Mac OS X,Other
-690456407,Facebook,Android,Samsung SM-G975F
-690246013,Chrome,Mac OS X,Other
-689990375,Mobile Safari UI/WKWebView,iOS,iPhone
-689761096,Facebook,Android,Generic Smartphone
-689722041,WhatsApp,Other,Spider
-689339811,Chrome Mobile WebView,Android,Pixel 2
-688840467,Firefox,SUSE,Other
-688826191,Chrome Mobile WebView,Android,Samsung SM-S916U1
-688520181,Samsung Internet,Android,Samsung SM-G781W
-688423686,HeadlessChrome,Linux,Other
-687777925,Chrome Mobile WebView,Android,Pixel 5
-687517379,Samsung Internet,Android,Samsung SM-M317F
-687421765,Chrome,Windows,Other
-686772632,Samsung Internet,Android,Samsung SM-G970U1
-685925906,Mobile Safari,iOS,iPhone
-685703534,Firefox,Mac OS X,Other
-685105890,Chrome Mobile iOS,iOS,iPhone
-684607933,Samsung Internet,Android,Samsung SM-G955U
-682602101,Chrome Mobile WebView,Android,Samsung SM-A235F
-682005159,Chrome Mobile WebView,Android,Samsung SM-A235M
-681228421,Chrome Mobile WebView,Android,XiaoMi Redmi 7
-680029294,Chrome Mobile iOS,iOS,iPad
-679704384,Chrome,Windows,Other
-678476417,heritrix,Other,Spider
-677140788,Chrome Mobile WebView,Android,XiaoMi Redmi Note 8 Pro
-677056094,Samsung Internet,Android,Samsung SM-G780F
-676878477,Chrome Mobile WebView,Android,Samsung SM-A736B
-676604904,Android,Android,SonyEricsson$2
-676458372,Chrome,Mac OS X,Other
-676096078,Android,Android,HTC ADR6300
-675070588,Chrome Mobile,Android,Lenovo K8 Plus
-674820686,IE,Windows,Other
-672552680,Chrome Mobile WebView,Android,XiaoMi Redmi Note 8
-671913184,Chrome Mobile WebView,Android,Gionee GN2200
-670797839,Mobile Safari UI/WKWebView,iOS,iPad
-670455396,Samsung Internet,Android,Samsung SM-N960F
-670232934,Chrome Mobile WebView,Android,Samsung SM-G781B
-670192166,Firefox,Windows,Other
-668498773,Screaming Frog SEO Spider,Other,Spider
-668246946,Samsung Internet,Android,Samsung SM-S911B
-668201904,Chrome Mobile WebView,Android,Samsung SM-S918U
-667097505,Other,Windows,Other
-666339544,Chrome Mobile WebView,Android,HMA-L29
-664283232,Chrome Mobile,Android,Generic Smartphone
-663348977,Chrome Mobile WebView,Android,ALP-L09
-663100218,WhatsApp,Other,Spider
-662250742,Samsung Internet,Android,Samsung SM-S916U
-661756972,Samsung Internet,Android,Samsung SM-G970U
-661746247,Mobile Safari UI/WKWebView,iOS,iPhone
-661646735,Chrome Frame,Windows,Other
-659866165,Samsung Internet,Android,Samsung SM-G991B
-658980581,Chrome Mobile iOS,iOS,iPhone
-658906945,Samsung Internet,Android,Samsung SM-G892U
-658525795,Facebook,Android,Asus X00ID
-658248069,Mobile Safari UI/WKWebView,iOS,iPhone
-657617793,Chrome Mobile WebView,Android,Samsung SM-A305GT
-656320430,Chrome Mobile,Android,Nexus 5
-655858668,Samsung Internet,Android,Samsung SM-G998B
-655779812,Firefox,Windows,Other
-655738579,Opera,Windows,Other
-655624255,Mobile Safari UI/WKWebView,iOS,iPhone
-655371611,Firefox,Mac OS X,Other
-653566131,Samsung Internet,Android,Samsung SM-A715F
-653340177,Mobile Safari,iOS,iPad
-652233858,Chrome,Windows,Other
-651593057,Other,Windows,Other
-650732473,Chrome Mobile WebView,Android,Samsung SM-G998B
-648398830,Mobile Safari,iOS,iPhone
-648113861,Chrome Mobile WebView,Android,Samsung SM-G955U
-647489388,Chrome,Windows,Other
-647153016,Chrome Mobile WebView,Android,Samsung SM-S908E
-645698502,Chrome,Mac OS X,Other
-644759430,Chrome Mobile WebView,Android,Samsung SM-M307F
-644724305,Chrome,Mac OS X,Other
-644394519,Samsung Internet,Android,Samsung SM-G965F
-644242156,Chrome,Linux,Other
-643696601,Chrome,Windows,Other
-643057667,WhatsApp,Other,Spider
-642751444,Chrome,Windows,Other
-640494863,Chrome,Android,Generic Smartphone
-639444862,Chrome Mobile WebView,Android,XiaoMi Redmi 6
-639284858,Samsung Internet,Android,Samsung SM-S916B
-637479747,Chrome Mobile WebView,Android,XiaoMi Redmi Note 5 Pro
-637258597,Chrome,Windows,Other
-636447646,Mobile Safari,iOS,iPhone
-633783282,Chrome Mobile WebView,Android,Samsung SM-A536W
-632177369,Chrome,Android,Generic Smartphone
-632047912,Chrome,Windows,Other
-631790266,Firefox,Ubuntu,Other
-631051300,Chrome,Chrome OS,Other
-630769981,Chrome Mobile iOS,iOS,iPhone
-630536476,Chrome Mobile,Android,Generic Smartphone
-629096741,Chrome Mobile iOS,iOS,iPhone
-628484001,Chrome Mobile iOS,iOS,iPhone
-628322641,Chrome Mobile,Android,LG-$2
-627452052,Safari,Mac OS X,Other
-626924240,WhatsApp,Other,Spider
-626244156,Chrome,Windows,Other
-625801453,Samsung Internet,Android,Samsung SM-A750F
-624616303,Chrome Mobile WebView,Android,Pixel 6
-622985792,Chrome,Windows,Other
-622389675,Chrome Mobile iOS,iOS,iPhone
-622121591,Mobile Safari UI/WKWebView,iOS,iPhone
-621968521,Firefox,Windows,Other
-621772109,Edge,Windows,Other
-621624398,Chrome,Windows,Other
-621005560,Chrome Mobile WebView,Android,Samsung SM-G973F
-620687719,Samsung Internet,Android,Samsung SM-F936B
-619841946,Safari,Mac OS X,Other
-618808937,Mobile Safari UI/WKWebView,iOS,iPhone
-618666750,Firefox,Ubuntu,Other
-618526165,Spark,Other,iOS-Device
-618108316,Facebook,Android,Samsung SM-A515F
-616550068,Chrome Mobile WebView,Android,XiaoMi Redmi Note 5
-615535254,Mobile Safari,iOS,iPhone
-615508860,Chrome,Windows,Other
-613051300,Firefox,Mac OS X,Other
-612088065,Opera Mobile,Android,Generic Smartphone
-610699024,Mobile Safari UI/WKWebView,iOS,iPhone
-610142623,Chrome Mobile iOS,iOS,iPhone
-609164095,Firefox,Windows,Other
-607588088,Chrome Mobile WebView,Android,Nokia$2$3
-607188756,Samsung Internet,Android,Samsung SM-G960U1
-606260142,Facebook,iOS,iPhone
-605888471,Chrome,Windows,Other
-605756294,Chrome Mobile,Android,Generic Smartphone
-604988386,Samsung Internet,Android,Samsung SM-M315F
-603028493,Chrome Mobile WebView,Android,Generic Smartphone
-602443985,Facebook,iOS,iPhone
-602274496,Chrome Mobile,Android,LG $2
-601178030,Chrome,Android,Asus Nexus 10
-599189457,Mobile Safari UI/WKWebView,iOS,iPhone
-597792546,Chrome,Linux,Other
-597466994,Mobile Safari,iOS,iPhone
-597298214,Chrome Mobile,Android,Generic Smartphone
-597180593,Chrome Mobile WebView,Android,Samsung SM-A235F
-597128459,Facebook,Mac OS X,Other
-596963104,Chrome Mobile WebView,Android,OnePlus ONEPLUS A6000
-596226115,Samsung Internet,Android,Samsung SM-F711B
-595963472,Samsung Internet,Android,Samsung SM-F936U1
-595936836,Firefox,Linux,Other
-595625608,Mobile Safari UI/WKWebView,iOS,iPhone
-595271227,aiHitBot,Other,Other
-593767756,Chrome Mobile WebView,Android,Samsung SM-G991B
-592233979,Samsung Internet,Android,Samsung SM-G991N
-592008037,Chrome Mobile WebView,Android,Samsung SM-F936U1
-591420159,Chrome Mobile WebView,Android,Samsung SM-G960F
-591195419,Chrome,Windows,Other
-590914793,Chrome,Android,Generic Smartphone
-589445346,Chrome Mobile WebView,Android,Samsung SM-N960U1
-588719517,Mobile Safari UI/WKWebView,iOS,iPhone
-587719640,com/bot,Android,Spider
-587324675,Chrome,Windows,Other
-586914093,Firefox,Fedora,Other
-586797193,Chrome,Android,Asus Nexus 10
-586793214,Samsung Internet,Android,Samsung SM-A715F
-586442883,Mobile Safari UI/WKWebView,iOS,iPhone
-586305548,Chrome Mobile WebView,Android,XiaoMi Redmi Note 8 Pro
-584552913,Yandex Browser,Mac OS X,Other
-584146353,Chrome Mobile iOS,iOS,iPhone
-584096402,Galeon,Linux,Other
-583842035,Firefox,Windows,Other
-583441531,curl,Other,Other
-583388909,Mobile Safari,iOS,iPad
-582485348,Chrome Mobile WebView,Android,OnePlus ONEPLUS A3000
-581949435,Chrome Mobile WebView,Android,Samsung SM-M325FV
-581085907,Firefox,Windows,Other
-580041118,Chrome Mobile WebView,Android,EML-L09
-579838619,Chrome Mobile iOS,iOS,iPhone
-576778771,Chrome Mobile,Android,VS415PP
-575884700,Firefox,Mac OS X,Other
-573850795,Chrome,Windows,Other
-573308444,Chrome,Windows,Other
-572653101,Mobile Safari UI/WKWebView,iOS,iPhone
-572399256,Samsung Internet,Android,Samsung SM-M317F
-572091860,Chrome Mobile iOS,iOS,iPhone
-571752298,Firefox,Mac OS X,Other
-570596517,Firefox,Windows,Other
-568311088,Mobile Safari,iOS,iPhone
-568269894,Chrome Mobile WebView,Android,Samsung SM-G892A
-567266697,Firefox iOS,iOS,iPhone
-566448216,Facebook,iOS,iPhone
-566212204,Samsung Internet,Android,Samsung SM-G986B
-566059463,Chrome,Mac OS X,Other
-564291575,Samsung Internet,Android,Samsung SM-S901U
-563729459,Firefox,Windows,Other
-563659628,Mobile Safari UI/WKWebView,iOS,iPhone
-561736639,Chrome,Mac OS X,Other
-560573956,Chrome Mobile WebView,Android,OnePlus ONEPLUS A6010
-559966795,Chrome,Windows,Other
-559404850,Facebook,iOS,iPhone
-556878187,Opera,Windows,Other
-556592774,Chrome Mobile,Android,Generic Smartphone
-556251031,Chrome,Mac OS X,Other
-556059597,Samsung Internet,Android,Samsung SM-A716U1
-555967102,Samsung Internet,Android,Samsung SM-A426B
-554337489,Samsung Internet,Android,Samsung SM-G965U1
-554039053,Firefox,Mac OS X,Other
-551969077,curl,Other,Other
-551846977,Chrome Mobile WebView,Android,Generic Smartphone
-550285501,Chrome Mobile WebView,Android,Samsung SM-A135F
-549927306,Chrome Mobile WebView,Android,Samsung SM-M307FN
-549903624,Chrome,Mac OS X,Other
-549823633,Chrome Mobile WebView,Android,Samsung SM-S908U1
-548100094,Chrome Mobile iOS,iOS,iPhone
-547779827,Client,Other,iOS-Device
-547479512,Chrome,Windows,Other
-547084265,Chrome Mobile,Android,Generic Smartphone
-546923324,Linkbot,Other,Spider
-545872964,Samsung Internet,Android,Samsung SM-S918W
-545438178,Mobile Safari UI/WKWebView,iOS,iPhone
-545188770,Samsung Internet,Android,Samsung SM-A715W
-544959357,Chrome Mobile WebView,Android,XiaoMi Redmi Note 8
-544473656,Firefox,Linux,Other
-544143489,WhatsApp,Other,Spider
-541145721,Opera,Windows,Other
-541110416,Firefox Mobile,Android,Generic Smartphone
-539599445,Mobile Safari UI/WKWebView,iOS,iPad
-539490377,Chrome Mobile WebView,Android,XiaoMi Redmi Note 9 Pro
-539250553,Chrome Mobile WebView,Android,Pixel 7
-539206256,Samsung Internet,Android,Samsung SM-S901N
-538508085,Chrome Mobile WebView,Android,Samsung SM-F711B
-538056382,Facebook,iOS,iPhone
-537623488,Chrome Mobile WebView,Android,XiaoMi Redmi Note 10 Lite
-537559352,Chrome Mobile,Android,CPH1729
-535379072,Chrome Mobile iOS,iOS,iPhone
-535303774,; Bot,Other,Spider
-535262203,Mobile Safari,iOS,iPad
-534687865,Chrome Mobile,Android,Nokia undefined$2$3
-534404258,Samsung Internet,Android,Samsung SM-A125M
-534256994,Firefox,Mac OS X,Other
-533327710,Samsung Internet,Android,Samsung SM-J330FN
-533037062,Mobile Safari UI/WKWebView,iOS,iPhone
-531612272,Safari,Mac OS X,Other
-530979913,Samsung Internet,Android,Samsung SM-N970U
-529296258,Chrome,Windows,Other
-528381459,Mobile Safari,iOS,iPad
-528330603,Firefox Mobile,Android,Generic Smartphone
-527587276,Chrome,Linux,Other
-526455190,Mobile Safari UI/WKWebView,iOS,iPhone
-525887767,Chrome Mobile WebView,Android,Samsung SM-A705GM
-525101832,Chrome Mobile WebView,Android,Samsung SM-N770F
-524669424,Yandex Browser,Android,Generic Smartphone
-521909173,Firefox,Windows,Other
-521887664,Firefox,Windows,Other
-520987234,Chrome,Mac OS X,Other
-520846522,Chrome,Mac OS X,Other
-519241955,Chrome Mobile WebView,Android,Samsung SM-A526U1
-518933449,Samsung Internet,Android,Samsung SM-M127G
-518192349,Yandex Browser,Windows,Other
-517994582,Firefox,Windows,Other
-517981232,Opera,Mac OS X,Other
-517457310,Chrome,Mac OS X,Other
-516546973,Chrome Mobile WebView,Android,TECNO $2
-516481312,Mobile Safari UI/WKWebView,iOS,iPhone
-515923298,linkbot,Other,Spider
-515825441,Chrome Mobile,Android,XiaoMi Redmi Note 9S
-515420806,Firefox iOS,iOS,iPhone
-515202070,Chrome Mobile WebView,Android,Generic Smartphone
-512745822,Firefox,Linux,Other
-512706048,Samsung Internet,Android,Samsung SM-M315F
-512074923,Firefox,Mac OS X,Other
-510875813,Chrome,Windows,Other
-508188102,Chrome,Linux,Other
-506648826,Chrome Mobile,Android,Generic Smartphone
-505500861,Chrome Mobile WebView,Android,Samsung SM-G991U
-505161885,Mobile Safari UI/WKWebView,iOS,iPhone
-503359680,Mobile Safari UI/WKWebView,iOS,iPhone
-502366545,Firefox,Mac OS X,Other
-500791146,Chrome Mobile,Android,Pixel 2
-500631167,Facebook,Android,Samsung SM-A325F
-500446685,Safari,Mac OS X,Other
-497961491,Chrome Mobile WebView,Android,Samsung SM-G996U
-497761332,Firefox,Mac OS X,Other
-496133732,Mobile Safari UI/WKWebView,iOS,iPhone
-495979159,Mobile Safari UI/WKWebView,iOS,iPhone
-495534901,Mobile Safari UI/WKWebView,iOS,iPhone
-495294780,Chrome Mobile WebView,Android,Samsung SM-G770F
-494969851,Firefox,Linux,Other
-494567842,Chrome Mobile,Android,Generic Smartphone
-493810462,Googlebot-Image,Other,Spider
-492953523,Other,Windows,Other
-492912037,Chrome,Mac OS X,Other
-492548074,Chrome Mobile WebView,Android,XiaoMi Redmi Note 8 Pro
-492197651,Chrome,Linux,Other
-492016993,Facebook,Android,Samsung SM-G960F
-491465160,Firefox,Ubuntu,Other
-491367762,Chrome Mobile WebView,Android,Samsung SM-M515F
-490955303,Chrome Mobile WebView,Android,Generic Smartphone
-490316654,Firefox,Windows,Other
-489361288,Samsung Internet,Android,Samsung SM-N975F
-489080397,Chrome Mobile WebView,Android,ELE-L29
-488595267,Chrome Mobile WebView,Android,Samsung SM-G9600
-488238077,Chrome Mobile WebView,Android,Samsung SM-G975F
-488171324,Facebook,Android,Samsung SM-G950U
-487968828,Chrome Mobile WebView,Android,Samsung SM-A515F
-487081305,Firefox,Windows,Other
-486614893,Chrome Mobile WebView,Android,Samsung SM-A515F
-485131942,Chrome Mobile,Android,Nokia undefined$2$3
-482065584,Chrome Mobile WebView,Android,Samsung SM-S908U1
-481199217,Mobile Safari UI/WKWebView,iOS,iPhone
-480645172,Chrome Mobile WebView,Android,Samsung SM-M307F
-480576239,Chrome,Linux,Other
-479269383,Chrome Mobile,Android,Generic Smartphone
-479075730,Opera,Windows,Other
-478983933,IE,Windows,Other
-478136645,Chrome,Mac OS X,Other
-477801979,Yandex Browser,Windows,Other
-477735498,Samsung Internet,Android,Samsung SM-G960U1
-477705116,Chrome Mobile WebView,Android,Samsung SM-A325F
-477299206,Firefox,Fedora,Other
-476438584,Firefox,Ubuntu,Other
-474997445,Chrome Mobile WebView,Android,Samsung SM-M136B
-474159889,Chrome,Windows,Other
-474030033,Facebook,Android,Samsung SM-G965U
-473900765,Opera,Windows,Other
-473691807,QQ Browser,Windows,Other
-473579306,Mobile Safari UI/WKWebView,iOS,iPhone
-473562669,Safari,Mac OS X,Other
-473048373,Samsung Internet,Android,Samsung SM-F926B
-471609370,Chrome,Windows,Other
-471230306,Chrome,Mac OS X,Other
-470218667,Chrome Mobile WebView,Android,Samsung SM-G885F
-469347760,Chrome Mobile WebView,Android,Samsung SM-G990E
-469238349,Samsung Internet,Android,Samsung SM-A326U
-469227887,Samsung Internet,Android,Samsung SM-G955U
-468073293,Chrome Mobile WebView,Android,Samsung SM-G990U
-464409968,Samsung Internet,Android,Samsung SM-G981W
-464372451,Chrome Mobile WebView,Android,Samsung SM-G986U1
-464094938,Samsung Internet,Android,Samsung SM-G996N
-463606772,Chrome,Windows,Other
-463491617,Chrome,Windows,Other
-462269713,Samsung Internet,Android,Samsung SM-M015G
-461776136,Firefox,Windows,Other
-461567509,Chrome,Windows,Other
-460610590,HeadlessChrome,Linux,Other
-460593458,Mobile Safari,iOS,iPhone
-460467785,Firefox,Ubuntu,Other
-460372522,Firefox iOS,iOS,iPhone
-460182521,Chrome Mobile WebView,Android,Samsung SM-G996U1
-458887543,Chrome Mobile,Android,Generic Smartphone
-457760520,Chrome Mobile WebView,Android,vivo $2
-456452499,Spark,Other,iOS-Device
-455208622,Chrome Mobile WebView,Android,XiaoMi Redmi Note 5
-454893561,Mobile Safari UI/WKWebView,iOS,iPhone
-454872852,Firefox,Mac OS X,Other
-454387297,Chrome,Windows,Other
-454270898,Samsung Internet,Android,Samsung SM-M336BU
-452534657,Spark%20Desktop%20Helper,Other,iOS-Device
-451108194,Chrome Mobile WebView,Android,XiaoMi Redmi Note 8
-451042601,Mobile Safari UI/WKWebView,iOS,iPhone
-450535895,Chrome Mobile WebView,Android,Samsung SM-G930F
-450383881,Chrome,Mac OS X,Other
-449894593,Samsung Internet,Android,Samsung SM-G781B
-449872596,Firefox,Ubuntu,Other
-449856697,Safari,Mac OS X,Other
-449577860,Chrome,Mac OS X,Other
-449304114,Samsung Internet,Android,Samsung SM-A525M
-449018801,Opera,Windows,Other
-448839021,Chrome,Windows,Other
-448514079,Mobi
gitextract_h73oh_xs/ ├── .gitignore ├── README.md ├── beginner-bootcamp/ │ ├── introduction.md │ └── software.md ├── books.md ├── communities.md ├── data_cleaning.md ├── intermediate-bootcamp/ │ ├── introduction.md │ ├── materials/ │ │ ├── 1-dimensional-data-modeling/ │ │ │ ├── .gitignore │ │ │ ├── Makefile │ │ │ ├── README.md │ │ │ ├── data.dump │ │ │ ├── docker-compose.yml │ │ │ ├── example.env │ │ │ ├── homework/ │ │ │ │ ├── .gitkeep │ │ │ │ └── homework.md │ │ │ ├── lecture-lab/ │ │ │ │ ├── analytical_query.sql │ │ │ │ ├── graph_ddls.sql │ │ │ │ ├── incremental_scd_query.sql │ │ │ │ ├── pipeline_query.sql │ │ │ │ ├── player_game_edges.sql │ │ │ │ ├── player_player_edges.sql │ │ │ │ ├── players.sql │ │ │ │ ├── players_scd_table.sql │ │ │ │ ├── scd_generation_query.sql │ │ │ │ ├── team_vertices.sql │ │ │ │ └── unnest_query.sql │ │ │ ├── scripts/ │ │ │ │ └── init-db.sh │ │ │ └── sql/ │ │ │ ├── actor_films.sql │ │ │ ├── game_details.sql │ │ │ ├── games.sql │ │ │ ├── load_players_table_day2.sql │ │ │ └── player_seasons.sql │ │ ├── 2-fact-data-modeling/ │ │ │ ├── .gitignore │ │ │ ├── README.md │ │ │ ├── homework/ │ │ │ │ ├── .gitkeep │ │ │ │ └── homework.md │ │ │ ├── lecture-lab/ │ │ │ │ ├── anaylze_datelist.sql │ │ │ │ ├── array_metrics_analysis.sql │ │ │ │ ├── generate_datelist.sql │ │ │ │ ├── generate_monthly_array_metrics.sql │ │ │ │ ├── quick_sum_device_hits.sql │ │ │ │ └── user_cumulated_populate.sql │ │ │ └── tables/ │ │ │ ├── array_metrics_ddl.sql │ │ │ ├── devices.sql │ │ │ ├── events.sql │ │ │ ├── game_details.sql │ │ │ ├── games.sql │ │ │ ├── monthly_user_site_hits.sql │ │ │ ├── user_datelist_int.sql │ │ │ └── users_cumulated.sql │ │ ├── 3-spark-fundamentals/ │ │ │ ├── .gitignore │ │ │ ├── Makefile │ │ │ ├── README.md │ │ │ ├── data/ │ │ │ │ ├── devices.csv │ │ │ │ ├── events.csv │ │ │ │ ├── maps.csv │ │ │ │ ├── match_details.csv │ │ │ │ ├── matches.csv │ │ │ │ ├── medals.csv │ │ │ │ └── medals_matches_players.csv │ │ │ ├── docker-compose.yaml │ │ │ ├── homework/ │ │ │ │ ├── homework.md │ │ │ │ └── homework_testing.md │ │ │ ├── notebooks/ │ │ │ │ ├── Caching.ipynb │ │ │ │ ├── DatasetApi.ipynb │ │ │ │ ├── bucket-joins-in-iceberg.ipynb │ │ │ │ └── event_data_pyspark.ipynb │ │ │ ├── requirements.txt │ │ │ └── src/ │ │ │ ├── __init__.py │ │ │ ├── jobs/ │ │ │ │ ├── __init__.py │ │ │ │ ├── monthly_user_site_hits_job.py │ │ │ │ ├── players_scd_job.py │ │ │ │ └── team_vertex_job.py │ │ │ └── tests/ │ │ │ ├── __init__.py │ │ │ ├── conftest.py │ │ │ ├── test_monthly_user_site_hits.py │ │ │ ├── test_player_scd.py │ │ │ └── test_team_vertex_job.py │ │ ├── 4-apache-flink-training/ │ │ │ ├── .gitignore │ │ │ ├── Dockerfile │ │ │ ├── Makefile │ │ │ ├── README.md │ │ │ ├── docker-compose.yml │ │ │ ├── example.env │ │ │ ├── homework/ │ │ │ │ └── homework.md │ │ │ ├── requirements.txt │ │ │ ├── sql/ │ │ │ │ └── init.sql │ │ │ └── src/ │ │ │ └── job/ │ │ │ ├── aggregation_job.py │ │ │ └── start_job.py │ │ ├── 4-applying-analytical-patterns/ │ │ │ ├── README.md │ │ │ ├── homework/ │ │ │ │ └── homework.md │ │ │ ├── lecture-lab/ │ │ │ │ ├── funnel_analysis.sql │ │ │ │ ├── grouping_sets.sql │ │ │ │ ├── growth_accounting.sql │ │ │ │ ├── retention_analysis.sql │ │ │ │ └── window_based_analysis.sql │ │ │ └── tables/ │ │ │ └── user_growth_accounting.sql │ │ ├── 5-kpis-and-experimentation/ │ │ │ ├── README.md │ │ │ ├── homework/ │ │ │ │ └── homework.md │ │ │ ├── requirements.txt │ │ │ └── src/ │ │ │ └── server.py │ │ ├── 6-data-impact-training/ │ │ │ ├── .gitignore │ │ │ ├── README.md │ │ │ ├── data/ │ │ │ │ ├── devices.csv │ │ │ │ └── events.csv │ │ │ └── homework/ │ │ │ └── homework.md │ │ └── 6-data-pipeline-maintenance/ │ │ ├── README.md │ │ └── homework/ │ │ └── homework.md │ └── software.md ├── interviews.md ├── newsletters.md └── projects.md
SYMBOL INDEX (46 symbols across 28 files)
FILE: intermediate-bootcamp/materials/1-dimensional-data-modeling/lecture-lab/graph_ddls.sql
type vertices (line 7) | CREATE TABLE vertices (
type edges (line 21) | CREATE TABLE edges (
FILE: intermediate-bootcamp/materials/1-dimensional-data-modeling/lecture-lab/players.sql
type players (line 12) | CREATE TABLE players (
FILE: intermediate-bootcamp/materials/1-dimensional-data-modeling/lecture-lab/players_scd_table.sql
type players_scd_table (line 1) | create table players_scd_table
FILE: intermediate-bootcamp/materials/1-dimensional-data-modeling/sql/actor_films.sql
type actor_films (line 1) | CREATE TABLE actor_films (
FILE: intermediate-bootcamp/materials/1-dimensional-data-modeling/sql/game_details.sql
type public (line 1) | CREATE TABLE public.game_details (
FILE: intermediate-bootcamp/materials/1-dimensional-data-modeling/sql/games.sql
type public (line 1) | CREATE TABLE public.games (
FILE: intermediate-bootcamp/materials/1-dimensional-data-modeling/sql/player_seasons.sql
type public (line 1) | CREATE TABLE public.player_seasons (
FILE: intermediate-bootcamp/materials/2-fact-data-modeling/tables/array_metrics_ddl.sql
type array_metrics (line 1) | CREATE TABLE array_metrics(
FILE: intermediate-bootcamp/materials/2-fact-data-modeling/tables/devices.sql
type devices (line 1) | CREATE TABLE devices (
FILE: intermediate-bootcamp/materials/2-fact-data-modeling/tables/events.sql
type events (line 1) | CREATE TABLE events (
FILE: intermediate-bootcamp/materials/2-fact-data-modeling/tables/game_details.sql
type public (line 1) | CREATE TABLE public.game_details (
FILE: intermediate-bootcamp/materials/2-fact-data-modeling/tables/games.sql
type public (line 1) | CREATE TABLE public.games (
FILE: intermediate-bootcamp/materials/2-fact-data-modeling/tables/monthly_user_site_hits.sql
type monthly_user_site_hits (line 1) | CREATE TABLE monthly_user_site_hits
FILE: intermediate-bootcamp/materials/2-fact-data-modeling/tables/user_datelist_int.sql
type user_datelist_int (line 1) | CREATE TABLE user_datelist_int (
FILE: intermediate-bootcamp/materials/2-fact-data-modeling/tables/users_cumulated.sql
type users_cumulated (line 1) | CREATE TABLE users_cumulated (
FILE: intermediate-bootcamp/materials/3-spark-fundamentals/src/jobs/monthly_user_site_hits_job.py
function do_monthly_user_site_hits_transformation (line 7) | def do_monthly_user_site_hits_transformation(spark, dataframe, ds):
function main (line 22) | def main():
FILE: intermediate-bootcamp/materials/3-spark-fundamentals/src/jobs/players_scd_job.py
function do_player_scd_transformation (line 42) | def do_player_scd_transformation(spark, dataframe):
function main (line 47) | def main():
FILE: intermediate-bootcamp/materials/3-spark-fundamentals/src/jobs/team_vertex_job.py
function do_team_vertex_transformation (line 25) | def do_team_vertex_transformation(spark, dataframe):
function main (line 30) | def main():
FILE: intermediate-bootcamp/materials/3-spark-fundamentals/src/tests/conftest.py
function spark (line 5) | def spark():
FILE: intermediate-bootcamp/materials/3-spark-fundamentals/src/tests/test_monthly_user_site_hits.py
function test_monthly_site_hits (line 10) | def test_monthly_site_hits(spark):
FILE: intermediate-bootcamp/materials/3-spark-fundamentals/src/tests/test_player_scd.py
function test_scd_generation (line 8) | def test_scd_generation(spark):
FILE: intermediate-bootcamp/materials/3-spark-fundamentals/src/tests/test_team_vertex_job.py
function test_vertex_generation (line 10) | def test_vertex_generation(spark):
FILE: intermediate-bootcamp/materials/4-apache-flink-training/sql/init.sql
type processed_events (line 2) | CREATE TABLE IF NOT EXISTS processed_events (
FILE: intermediate-bootcamp/materials/4-apache-flink-training/src/job/aggregation_job.py
function create_aggregated_events_sink_postgres (line 8) | def create_aggregated_events_sink_postgres(t_env):
function create_aggregated_events_referrer_sink_postgres (line 28) | def create_aggregated_events_referrer_sink_postgres(t_env):
function create_processed_events_source_kafka (line 48) | def create_processed_events_source_kafka(t_env):
function log_aggregation (line 80) | def log_aggregation():
FILE: intermediate-bootcamp/materials/4-apache-flink-training/src/job/start_job.py
function create_processed_events_sink_kafka (line 7) | def create_processed_events_sink_kafka(t_env):
function create_processed_events_sink_postgres (line 36) | def create_processed_events_sink_postgres(t_env):
class GetLocation (line 58) | class GetLocation(ScalarFunction):
method eval (line 59) | def eval(self, ip_address):
function create_events_source_kafka (line 83) | def create_events_source_kafka(t_env):
function log_processing (line 115) | def log_processing():
FILE: intermediate-bootcamp/materials/4-applying-analytical-patterns/lecture-lab/grouping_sets.sql
type device_hits_dashboard (line 1) | CREATE TABLE device_hits_dashboard AS
FILE: intermediate-bootcamp/materials/4-applying-analytical-patterns/tables/user_growth_accounting.sql
type users_growth_accounting (line 1) | CREATE TABLE users_growth_accounting (
FILE: intermediate-bootcamp/materials/5-kpis-and-experimentation/src/server.py
function hello (line 30) | def hello():
function signup (line 35) | def signup():
function get_tasks (line 51) | def get_tasks():
function get_task (line 99) | def get_task(task_id):
function create_task (line 107) | def create_task():
function update_task (line 121) | def update_task(task_id):
function delete_task (line 134) | def delete_task(task_id):
Condensed preview — 113 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (5,777K chars).
[
{
"path": ".gitignore",
"chars": 17,
"preview": ".idea/\n.DS_Store\n"
},
{
"path": "README.md",
"chars": 27661,
"preview": "# The Data Engineering Handbook\n<a href=\"https://trendshift.io/repositories/8755\" target=\"_blank\"><img src=\"https://tren"
},
{
"path": "beginner-bootcamp/introduction.md",
"chars": 331,
"preview": "### The ultimate YouTube DE boot camp\n\nThis will be four weeks of curricula\n\n- Bootcamp Database Setup is [here](https:/"
},
{
"path": "beginner-bootcamp/software.md",
"chars": 131,
"preview": "Make sure your computer can run\n\n- Docker (install guide [here](https://docs.docker.com/engine/install/))\n- Python 3.11 "
},
{
"path": "books.md",
"chars": 4029,
"preview": "# Amazing Data Engineering books to read\n- [Fundamentals of Data Engineering](https://www.amazon.com/Fundamentals-Data-E"
},
{
"path": "communities.md",
"chars": 805,
"preview": "# Awesome communities to join\n- [Seattle Data Guy Discord](https://discord.gg/ah95MZKkFF)\n- [EcZachly Data Engineering D"
},
{
"path": "data_cleaning.md",
"chars": 657,
"preview": "## Data Cleaning Best Practices \n# Data Cleaning Best Practices\n\n- Remove duplicate rows to avoid data leakage.\n- Standa"
},
{
"path": "intermediate-bootcamp/introduction.md",
"chars": 4698,
"preview": "### The ultimate YouTube DE boot camp\n\nThis will be six weeks of curricula\n\n- Bootcamp Database Setup is [here](https://"
},
{
"path": "intermediate-bootcamp/materials/1-dimensional-data-modeling/.gitignore",
"chars": 1894,
"preview": "# Byte-compiled / optimized / DLL files\n__pycache__/\n*.py[cod]\n*$py.class\n\n# C extensions\n*.so\n\n# Distribution / packagi"
},
{
"path": "intermediate-bootcamp/materials/1-dimensional-data-modeling/Makefile",
"chars": 1065,
"preview": "include example.env\n\n.PHONY: up\nup:\n\t@if [ ! -f .env ]; then \\\n\t\techo \"WARNING: .env file does not exist! 'example.env' "
},
{
"path": "intermediate-bootcamp/materials/1-dimensional-data-modeling/README.md",
"chars": 6399,
"preview": "# 📊 Get Set for Data Modeling (Weeks 1 & 2)\n\nWelcome, Data Explorer! 🚀 Whether you're just beginning or brushing up on s"
},
{
"path": "intermediate-bootcamp/materials/1-dimensional-data-modeling/docker-compose.yml",
"chars": 864,
"preview": "services:\n postgres:\n image: postgres:14\n restart: on-failure\n container_name: ${DOCKER_CONTAINER}\n env_fil"
},
{
"path": "intermediate-bootcamp/materials/1-dimensional-data-modeling/example.env",
"chars": 284,
"preview": "POSTGRES_SCHEMA=postgres\nPOSTGRES_USER=postgres\nPOSTGRES_DB=postgres\nPOSTGRES_PASSWORD=postgres\n\nHOST_PORT=5432\nCONTAINE"
},
{
"path": "intermediate-bootcamp/materials/1-dimensional-data-modeling/homework/.gitkeep",
"chars": 0,
"preview": ""
},
{
"path": "intermediate-bootcamp/materials/1-dimensional-data-modeling/homework/homework.md",
"chars": 2413,
"preview": "# Dimensional Data Modeling - Week 1\n\nThis week's assignment involves working with the `actor_films` dataset. Your task "
},
{
"path": "intermediate-bootcamp/materials/1-dimensional-data-modeling/lecture-lab/analytical_query.sql",
"chars": 283,
"preview": " SELECT player_name,\n (seasons[cardinality(seasons)]::season_stats).pts/\n CASE WHEN (seasons[1]::season_s"
},
{
"path": "intermediate-bootcamp/materials/1-dimensional-data-modeling/lecture-lab/graph_ddls.sql",
"chars": 669,
"preview": "\nCREATE TYPE vertex_type\n AS ENUM('player', 'team', 'game');\n\n\n\nCREATE TABLE vertices (\n identifier TEXT,\n type"
},
{
"path": "intermediate-bootcamp/materials/1-dimensional-data-modeling/lecture-lab/incremental_scd_query.sql",
"chars": 3070,
"preview": "\nCREATE TYPE scd_type AS (\n scoring_class scoring_class,\n is_active boolean,\n "
},
{
"path": "intermediate-bootcamp/materials/1-dimensional-data-modeling/lecture-lab/pipeline_query.sql",
"chars": 1466,
"preview": "WITH last_season AS (\n SELECT * FROM players\n WHERE current_season = 1997\n\n), this_season AS (\n SELECT * FROM "
},
{
"path": "intermediate-bootcamp/materials/1-dimensional-data-modeling/lecture-lab/player_game_edges.sql",
"chars": 553,
"preview": "INSERT INTO edges\nWITH deduped AS (\n SELECT *, row_number() over (PARTITION BY player_id, game_id) AS row_num\n FRO"
},
{
"path": "intermediate-bootcamp/materials/1-dimensional-data-modeling/lecture-lab/player_player_edges.sql",
"chars": 1140,
"preview": "WITH deduped AS (\n SELECT *, row_number() over (PARTITION BY player_id, game_id) AS row_num\n FROM game_details\n),\n"
},
{
"path": "intermediate-bootcamp/materials/1-dimensional-data-modeling/lecture-lab/players.sql",
"chars": 701,
"preview": " CREATE TYPE season_stats AS (\n season Integer,\n pts REAL,\n "
},
{
"path": "intermediate-bootcamp/materials/1-dimensional-data-modeling/lecture-lab/players_scd_table.sql",
"chars": 172,
"preview": "create table players_scd_table\n(\n\tplayer_name text,\n\tscoring_class scoring_class,\n\tis_active boolean,\n\tstart_season inte"
},
{
"path": "intermediate-bootcamp/materials/1-dimensional-data-modeling/lecture-lab/scd_generation_query.sql",
"chars": 1065,
"preview": "WITH streak_started AS (\n SELECT player_name,\n current_season,\n scoring_class,\n LAG(sco"
},
{
"path": "intermediate-bootcamp/materials/1-dimensional-data-modeling/lecture-lab/team_vertices.sql",
"chars": 395,
"preview": "WITH teams_deduped AS (\n SELECT *, ROW_NUMBER() OVER(PARTITION BY team_id) as row_num\n FROM teams\n)\nSELECT\n "
},
{
"path": "intermediate-bootcamp/materials/1-dimensional-data-modeling/lecture-lab/unnest_query.sql",
"chars": 185,
"preview": " SELECT player_name,\n UNNEST(seasons) -- CROSS JOIN UNNEST\n -- / LATERAL VIEW EXPLODE\n FROM players\n "
},
{
"path": "intermediate-bootcamp/materials/1-dimensional-data-modeling/scripts/init-db.sh",
"chars": 905,
"preview": "#!/bin/bash\nset -e\n\n# Restore the dump file using pg_restore\npg_restore \\\n -v \\\n --no-owner \\\n --no-privileges "
},
{
"path": "intermediate-bootcamp/materials/1-dimensional-data-modeling/sql/actor_films.sql",
"chars": 181,
"preview": "CREATE TABLE actor_films (\n Actor TEXT,\n ActorId Text,\n Film TEXT,\n Year integer,\n votes Integer,\n Rat"
},
{
"path": "intermediate-bootcamp/materials/1-dimensional-data-modeling/sql/game_details.sql",
"chars": 534,
"preview": "CREATE TABLE public.game_details (\n game_id integer,\n team_id integer,\n team_abbreviation text,\n team_city t"
},
{
"path": "intermediate-bootcamp/materials/1-dimensional-data-modeling/sql/games.sql",
"chars": 513,
"preview": "CREATE TABLE public.games (\n game_date_est date,\n game_id integer NOT NULL,\n game_status_text text,\n home_te"
},
{
"path": "intermediate-bootcamp/materials/1-dimensional-data-modeling/sql/load_players_table_day2.sql",
"chars": 2147,
"preview": "INSERT INTO players\nWITH years AS (\n SELECT *\n FROM GENERATE_SERIES(1996, 2022) AS season\n), p AS (\n SELECT\n "
},
{
"path": "intermediate-bootcamp/materials/1-dimensional-data-modeling/sql/player_seasons.sql",
"chars": 417,
"preview": "CREATE TABLE public.player_seasons (\n player_name text NOT NULL,\n age integer,\n height text,\n weight integer"
},
{
"path": "intermediate-bootcamp/materials/2-fact-data-modeling/.gitignore",
"chars": 1894,
"preview": "# Byte-compiled / optimized / DLL files\n__pycache__/\n*.py[cod]\n*$py.class\n\n# C extensions\n*.so\n\n# Distribution / packagi"
},
{
"path": "intermediate-bootcamp/materials/2-fact-data-modeling/README.md",
"chars": 185,
"preview": "# Week 2 Fact Data Modeling\n\nThis repo follows the same setup as week 1. Please go to the dimensional data modeling [REA"
},
{
"path": "intermediate-bootcamp/materials/2-fact-data-modeling/homework/.gitkeep",
"chars": 0,
"preview": ""
},
{
"path": "intermediate-bootcamp/materials/2-fact-data-modeling/homework/homework.md",
"chars": 1293,
"preview": "# Week 2 Fact Data Modeling\nThe homework this week will be using the `devices` and `events` dataset\n\nConstruct the follo"
},
{
"path": "intermediate-bootcamp/materials/2-fact-data-modeling/lecture-lab/anaylze_datelist.sql",
"chars": 1147,
"preview": "WITH starter AS (\n SELECT uc.dates_active @> ARRAY [DATE(d.valid_date)] AS is_active,\n EXTRACT(\n "
},
{
"path": "intermediate-bootcamp/materials/2-fact-data-modeling/lecture-lab/array_metrics_analysis.sql",
"chars": 2201,
"preview": "-- Insert aggregated metrics into the array_metrics table\nINSERT INTO array_metrics\nWITH daily_aggregate AS (\n -- Agg"
},
{
"path": "intermediate-bootcamp/materials/2-fact-data-modeling/lecture-lab/generate_datelist.sql",
"chars": 759,
"preview": "\nWITH starter AS (\n SELECT uc.dates_active @> ARRAY [DATE(d.valid_date)] AS is_active,\n EXTRACT(\n "
},
{
"path": "intermediate-bootcamp/materials/2-fact-data-modeling/lecture-lab/generate_monthly_array_metrics.sql",
"chars": 982,
"preview": "WITH yesterday AS (\n SELECT *\n FROM monthly_user_site_hits\n WHERE date_partition = '2023-03-02'\n),\n today A"
},
{
"path": "intermediate-bootcamp/materials/2-fact-data-modeling/lecture-lab/quick_sum_device_hits.sql",
"chars": 195,
"preview": "SELECT\n month_start,\n SUM(hit_array[1]) as num_hits_mar_1,\n SUM(hit_array[2]) AS num_hits_mar_2\nFROM m"
},
{
"path": "intermediate-bootcamp/materials/2-fact-data-modeling/lecture-lab/user_cumulated_populate.sql",
"chars": 865,
"preview": "WITH yesterday AS (\n SELECT * FROM users_cumulated\n WHERE date = DATE('2023-03-30')\n),\n today AS (\n SE"
},
{
"path": "intermediate-bootcamp/materials/2-fact-data-modeling/tables/array_metrics_ddl.sql",
"chars": 166,
"preview": "CREATE TABLE array_metrics(\n user_id NUMERIC,\n month_start DATE,\n metric_name TEXT,\n metric_array REAL[],\nPR"
},
{
"path": "intermediate-bootcamp/materials/2-fact-data-modeling/tables/devices.sql",
"chars": 396,
"preview": "CREATE TABLE devices (\n device_id BIGINT,\n browser_type TEXT,\n browser_version_major BIGINT,\n browser_versio"
},
{
"path": "intermediate-bootcamp/materials/2-fact-data-modeling/tables/events.sql",
"chars": 114,
"preview": "CREATE TABLE events (\nurl TEXT,\nreferrer TEXT,\nuser_id BIGINT,\ndevice_id BIGINT,\nhost TEXT,\nevent_time TIMESTAMP\n)"
},
{
"path": "intermediate-bootcamp/materials/2-fact-data-modeling/tables/game_details.sql",
"chars": 534,
"preview": "CREATE TABLE public.game_details (\n game_id integer,\n team_id integer,\n team_abbreviation text,\n team_city t"
},
{
"path": "intermediate-bootcamp/materials/2-fact-data-modeling/tables/games.sql",
"chars": 513,
"preview": "CREATE TABLE public.games (\n game_date_est date,\n game_id integer NOT NULL,\n game_status_text text,\n home_te"
},
{
"path": "intermediate-bootcamp/materials/2-fact-data-modeling/tables/monthly_user_site_hits.sql",
"chars": 234,
"preview": "CREATE TABLE monthly_user_site_hits\n(\n user_id BIGINT,\n hit_array BIGINT[],\n month_start D"
},
{
"path": "intermediate-bootcamp/materials/2-fact-data-modeling/tables/user_datelist_int.sql",
"chars": 127,
"preview": "CREATE TABLE user_datelist_int (\n user_id BIGINT,\n datelist_int BIT(32),\n date DATE,\n PRIMARY KEY (user_id, "
},
{
"path": "intermediate-bootcamp/materials/2-fact-data-modeling/tables/users_cumulated.sql",
"chars": 131,
"preview": " CREATE TABLE users_cumulated (\n user_id BIGINT,\n dates_active DATE[],\n date DATE,\n PRIMARY KEY (user_id"
},
{
"path": "intermediate-bootcamp/materials/3-spark-fundamentals/.gitignore",
"chars": 19,
"preview": ".ipynb_checkpoints/"
},
{
"path": "intermediate-bootcamp/materials/3-spark-fundamentals/Makefile",
"chars": 70,
"preview": "up:\n\tdocker compose up -d\n\ndown:\n\tdocker compose down\n\n.PHONY: up down"
},
{
"path": "intermediate-bootcamp/materials/3-spark-fundamentals/README.md",
"chars": 1134,
"preview": "# Week 3 Spark Fundamentals training\n\n## Unit Testing PySpark Course Getting Started\n\nYou need to install the required d"
},
{
"path": "intermediate-bootcamp/materials/3-spark-fundamentals/data/devices.csv",
"chars": 268292,
"preview": "device_id,browser_type,os_type,device_type\n-2147042689,Firefox,Ubuntu,Other\n-2146219609,WhatsApp,Other,Spider\n-214557461"
},
{
"path": "intermediate-bootcamp/materials/3-spark-fundamentals/data/maps.csv",
"chars": 3494,
"preview": "mapid,name,description\nc93d708f-f206-11e4-a815-24be05e24f7e,Urban,Andesia was the crucible for countless heroes and vill"
},
{
"path": "intermediate-bootcamp/materials/3-spark-fundamentals/data/matches.csv",
"chars": 4847802,
"preview": "match_id,mapid,is_team_game,playlist_id,game_variant_id,is_match_over,completion_date,match_duration,game_mode,map_varia"
},
{
"path": "intermediate-bootcamp/materials/3-spark-fundamentals/data/medals.csv",
"chars": 41338,
"preview": "medal_id,sprite_uri,sprite_left,sprite_top,sprite_sheet_width,sprite_sheet_height,sprite_width,sprite_height,classificat"
},
{
"path": "intermediate-bootcamp/materials/3-spark-fundamentals/docker-compose.yaml",
"chars": 1907,
"preview": "version: \"3\"\n\nservices:\n spark-iceberg:\n image: tabulario/spark-iceberg\n container_name: spark-iceberg\n build:"
},
{
"path": "intermediate-bootcamp/materials/3-spark-fundamentals/homework/homework.md",
"chars": 1083,
"preview": "# Spark Fundamentals Week\n\n- match_details\n - a row for every players performance in a match\n- matches\n - a row for ev"
},
{
"path": "intermediate-bootcamp/materials/3-spark-fundamentals/homework/homework_testing.md",
"chars": 280,
"preview": "# PySpark Testing Homework\n\n- Convert 2 queries from Weeks 1-2 from PostgreSQL to SparkSQL\n- Create new PySpark jobs in "
},
{
"path": "intermediate-bootcamp/materials/3-spark-fundamentals/notebooks/Caching.ipynb",
"chars": 11630,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"code\",\n \"execution_count\": 3,\n \"id\": \"e9ae4c8b-4599-4fbb-a545-76b6e3bcb84d\",\n \""
},
{
"path": "intermediate-bootcamp/materials/3-spark-fundamentals/notebooks/DatasetApi.ipynb",
"chars": 14458,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"code\",\n \"execution_count\": 1,\n \"id\": \"22b842be-6a82-4127-b937-ead4103a92e8\",\n \""
},
{
"path": "intermediate-bootcamp/materials/3-spark-fundamentals/notebooks/bucket-joins-in-iceberg.ipynb",
"chars": 5125,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"code\",\n \"execution_count\": null,\n \"id\": \"374411c5-a48f-4739-9031-d638638633a3\",\n "
},
{
"path": "intermediate-bootcamp/materials/3-spark-fundamentals/notebooks/event_data_pyspark.ipynb",
"chars": 24699,
"preview": "{\n \"cells\": [\n {\n \"cell_type\": \"code\",\n \"execution_count\": null,\n \"id\": \"81cca085-dba2-42eb-a13b-fa64b6e86583\",\n "
},
{
"path": "intermediate-bootcamp/materials/3-spark-fundamentals/requirements.txt",
"chars": 34,
"preview": "chispa\npytest\npyspark\npyspark[sql]"
},
{
"path": "intermediate-bootcamp/materials/3-spark-fundamentals/src/__init__.py",
"chars": 0,
"preview": ""
},
{
"path": "intermediate-bootcamp/materials/3-spark-fundamentals/src/jobs/__init__.py",
"chars": 0,
"preview": ""
},
{
"path": "intermediate-bootcamp/materials/3-spark-fundamentals/src/jobs/monthly_user_site_hits_job.py",
"chars": 893,
"preview": "from pyspark.sql import SparkSession\n\n\n\n\n\ndef do_monthly_user_site_hits_transformation(spark, dataframe, ds):\n query "
},
{
"path": "intermediate-bootcamp/materials/3-spark-fundamentals/src/jobs/players_scd_job.py",
"chars": 1528,
"preview": "from pyspark.sql import SparkSession\n\nquery = \"\"\"\n\nWITH streak_started AS (\n SELECT player_name,\n current_s"
},
{
"path": "intermediate-bootcamp/materials/3-spark-fundamentals/src/jobs/team_vertex_job.py",
"chars": 875,
"preview": "from pyspark.sql import SparkSession\n\nquery = \"\"\"\n\nWITH teams_deduped AS (\n SELECT *, ROW_NUMBER() OVER(PARTITION BY "
},
{
"path": "intermediate-bootcamp/materials/3-spark-fundamentals/src/tests/__init__.py",
"chars": 0,
"preview": ""
},
{
"path": "intermediate-bootcamp/materials/3-spark-fundamentals/src/tests/conftest.py",
"chars": 204,
"preview": "import pytest\nfrom pyspark.sql import SparkSession\n\n@pytest.fixture(scope='session')\ndef spark():\n return SparkSessio"
},
{
"path": "intermediate-bootcamp/materials/3-spark-fundamentals/src/tests/test_monthly_user_site_hits.py",
"chars": 1787,
"preview": "from chispa.dataframe_comparer import *\n\nfrom ..jobs.monthly_user_site_hits_job import do_monthly_user_site_hits_transfo"
},
{
"path": "intermediate-bootcamp/materials/3-spark-fundamentals/src/tests/test_player_scd.py",
"chars": 991,
"preview": "from chispa.dataframe_comparer import *\nfrom ..jobs.players_scd_job import do_player_scd_transformation\nfrom collections"
},
{
"path": "intermediate-bootcamp/materials/3-spark-fundamentals/src/tests/test_team_vertex_job.py",
"chars": 1110,
"preview": "from chispa.dataframe_comparer import *\n\nfrom ..jobs.team_vertex_job import do_team_vertex_transformation\nfrom collectio"
},
{
"path": "intermediate-bootcamp/materials/4-apache-flink-training/.gitignore",
"chars": 1882,
"preview": "flink-env.env\npostgres-data\n# Byte-compiled / optimized / DLL files\n__pycache__/\n*.py[cod]\n*$py.class\n\n# C extensions\n*."
},
{
"path": "intermediate-bootcamp/materials/4-apache-flink-training/Dockerfile",
"chars": 1653,
"preview": "FROM --platform=linux/amd64 flink:1.16.2\n\n# install python3: it has updated Python to 3.9 in Debian 11 and so install Py"
},
{
"path": "intermediate-bootcamp/materials/4-apache-flink-training/Makefile",
"chars": 1978,
"preview": "include flink-env.env\n\nPLATFORM ?= linux/amd64\n\n# COLORS\nGREEN := $(shell tput -Txterm setaf 2)\nYELLOW := $(shell tput "
},
{
"path": "intermediate-bootcamp/materials/4-apache-flink-training/README.md",
"chars": 7292,
"preview": "# Apache Flink Training\nWeek 4 Apache Flink Streaming Pipelines\n\n## :pushpin: Getting started \n\n### :whale: Installation"
},
{
"path": "intermediate-bootcamp/materials/4-apache-flink-training/docker-compose.yml",
"chars": 1531,
"preview": "services:\n jobmanager:\n build: .\n image: eczachly-pyflink\n pull_policy: never\n container_name: \"jobmanager\""
},
{
"path": "intermediate-bootcamp/materials/4-apache-flink-training/example.env",
"chars": 515,
"preview": "KAFKA_WEB_TRAFFIC_SECRET=\"<GET FROM WEBSITE>\"\nKAFKA_WEB_TRAFFIC_KEY=\"<GET FROM WEBSITE>\nIP_CODING_KEY=\"MAKE AN ACCOUNT A"
},
{
"path": "intermediate-bootcamp/materials/4-apache-flink-training/homework/homework.md",
"chars": 330,
"preview": "# Homework\n\n- Create a Flink job that sessionizes the input data by IP address and host\n- Use a 5 minute gap\n- Answer th"
},
{
"path": "intermediate-bootcamp/materials/4-apache-flink-training/requirements.txt",
"chars": 52,
"preview": "apache-flink==1.16.2\npsycopg2-binary==2.9.1\nrequests"
},
{
"path": "intermediate-bootcamp/materials/4-apache-flink-training/sql/init.sql",
"chars": 209,
"preview": "-- Create processed_events table\nCREATE TABLE IF NOT EXISTS processed_events (\n ip VARCHAR,\n event_timestamp TIMES"
},
{
"path": "intermediate-bootcamp/materials/4-apache-flink-training/src/job/aggregation_job.py",
"chars": 4783,
"preview": "import os\nfrom pyflink.datastream import StreamExecutionEnvironment\nfrom pyflink.table import EnvironmentSettings, DataT"
},
{
"path": "intermediate-bootcamp/materials/4-apache-flink-training/src/job/start_job.py",
"chars": 5570,
"preview": "from pyflink.datastream import StreamExecutionEnvironment\nfrom pyflink.table.udf import ScalarFunction, udf\nimport os\nim"
},
{
"path": "intermediate-bootcamp/materials/4-applying-analytical-patterns/README.md",
"chars": 190,
"preview": "# 4 Applying Analytics Patterns and Advanced SQL\n\nWe are going to be talking about a few different analytical patterns\n\n"
},
{
"path": "intermediate-bootcamp/materials/4-applying-analytical-patterns/homework/homework.md",
"chars": 1243,
"preview": "# Week 4 Applying Analytical Patterns\nThe homework this week will be using the `players`, `players_scd`, and `player_sea"
},
{
"path": "intermediate-bootcamp/materials/4-applying-analytical-patterns/lecture-lab/funnel_analysis.sql",
"chars": 910,
"preview": "WITH deduped_events AS (\n SELECT\n url, host, user_id,event_time\n FROM events\n GROUP BY 1,2,3,4\n),\n c"
},
{
"path": "intermediate-bootcamp/materials/4-applying-analytical-patterns/lecture-lab/grouping_sets.sql",
"chars": 1163,
"preview": "CREATE TABLE device_hits_dashboard AS\n\nWITH events_augmented AS (\n SELECT COALESCE(d.os_type, 'unknown') AS os_t"
},
{
"path": "intermediate-bootcamp/materials/4-applying-analytical-patterns/lecture-lab/growth_accounting.sql",
"chars": 2369,
"preview": "WITH yesterday AS (\n SELECT * FROM users_growth_accounting\n WHERE date = DATE('2023-03-09')\n),\n today AS (\n "
},
{
"path": "intermediate-bootcamp/materials/4-applying-analytical-patterns/lecture-lab/retention_analysis.sql",
"chars": 308,
"preview": "SELECT\n date - first_active_date AS days_since_first_active,\n CAST(COUNT(CASE\n WHEN daily_active_s"
},
{
"path": "intermediate-bootcamp/materials/4-applying-analytical-patterns/lecture-lab/window_based_analysis.sql",
"chars": 2718,
"preview": "WITH events_augmented AS (\n SELECT COALESCE(d.os_type, 'unknown') AS os_type,\n COALESCE(d.device_type,"
},
{
"path": "intermediate-bootcamp/materials/4-applying-analytical-patterns/tables/user_growth_accounting.sql",
"chars": 255,
"preview": " CREATE TABLE users_growth_accounting (\n user_id TEXT,\n first_active_date DATE,\n last_active_date DATE,\n "
},
{
"path": "intermediate-bootcamp/materials/5-kpis-and-experimentation/README.md",
"chars": 4064,
"preview": "# SPOTIFY’S KPI AND EXPERIMENTATION\nI am going to discuss about Spotify. I have used Spotify for 4 years. I am a big mus"
},
{
"path": "intermediate-bootcamp/materials/5-kpis-and-experimentation/homework/homework.md",
"chars": 606,
"preview": "# Homework\n\n- Pick a product that you love using (spotify, linkedin, etc)\n - Describe the user journey of the things yo"
},
{
"path": "intermediate-bootcamp/materials/5-kpis-and-experimentation/requirements.txt",
"chars": 31,
"preview": "Flask\nrequests\njsonify\nstatsig\n"
},
{
"path": "intermediate-bootcamp/materials/5-kpis-and-experimentation/src/server.py",
"chars": 4231,
"preview": "from flask import Flask, jsonify, request\nfrom statsig import statsig\nfrom statsig.statsig_event import StatsigEvent\nfro"
},
{
"path": "intermediate-bootcamp/materials/6-data-impact-training/.gitignore",
"chars": 10,
"preview": ".DS_Store\n"
},
{
"path": "intermediate-bootcamp/materials/6-data-impact-training/README.md",
"chars": 0,
"preview": ""
},
{
"path": "intermediate-bootcamp/materials/6-data-impact-training/data/devices.csv",
"chars": 363163,
"preview": "device_id,browser_type,os_type,device_type\n000095d303eaf2cc2e5b1bb7fa9718a5,Chrome Mobile WebView,Android,Generic Smartp"
},
{
"path": "intermediate-bootcamp/materials/6-data-impact-training/homework/homework.md",
"chars": 1054,
"preview": "# Homework\n\n- Make two dashboards with Tableau public\n - an executive dashboard that illustrates different stuff than i"
},
{
"path": "intermediate-bootcamp/materials/6-data-pipeline-maintenance/README.md",
"chars": 146,
"preview": "# Week 5 Data Pipeline Maintenance\n\n## We cover in this week\n\n- Run books, prioritization, etc\n- The tradeoffs of tech d"
},
{
"path": "intermediate-bootcamp/materials/6-data-pipeline-maintenance/homework/homework.md",
"chars": 949,
"preview": "# Week 5 Data Pipeline Maintenance\n\n### Homework\n\nImagine you're in a group of 4 data engineers, you will be in charge o"
},
{
"path": "intermediate-bootcamp/software.md",
"chars": 460,
"preview": "### Needed Software\n\nMake sure your computer can run\n\n- Docker (install guide [here](https://docs.docker.com/engine/inst"
},
{
"path": "interviews.md",
"chars": 1341,
"preview": "# Free Data Engineering Interview Advice\n\nThis is a list of resources you can rely on for great interview prep advice!\n\n"
},
{
"path": "newsletters.md",
"chars": 1549,
"preview": "# A great list of newsletters to subscribe to\n\n- [DataEngineer.io Newsletter](https://blog.dataengineer.io)\n- [Seattle D"
},
{
"path": "projects.md",
"chars": 1830,
"preview": "# Free projects you could work on\n\n- [End-to-end Uber Data engineering project with BigQuery](https://www.youtube.com/wa"
}
]
// ... and 5 more files (download for full content)
About this extraction
This page contains the full source code of the DataExpert-io/data-engineer-handbook GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 113 files (218.0 MB), approximately 1.4M tokens, and a symbol index with 46 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.