How is data engineering different from data science?

Data Engineering occurs before data science in the data lifecycle. Data can be generated from various sources and this raw data may be structured, semi structured or even unstructured. To make sense of this data, data has to be ingested and transformed. This is when data engineering comes into picture. Data engineering includes the process of extracting the raw data, ingesting data into a system like a data lake, transforming the data for business needs and finally loading it into a table. This is commonly known as ELT (Extract-Load-Transform). ETL (Extract-Transform-Load) is also possible where transformation happens before the loading stage.
Data Science and Analytics is the next step in the data lifecycle. Once the data needed for specific business need is available, data scientists use this data to run machine learning models to find the most accurate model. This data is available to the data scientists in the form of tables. Data analysts also use this data to do some exploratory analysis and create dashboards. 
In essence, the data lifecycle would look as follows:
Raw data from different sources -> Data Engineering -> Data Science and Analytics