0% encontró este documento útil (0 votos)
352 vistas26 páginas

Actividad 2

El pipeline extrae datos de películas de varias fuentes como la API de TMDB, una base de datos PostgreSQL y un archivo en Azure Storage. El pipeline diseñado usa Python para extraer los datos e importarlos a dataframes de pandas para su análisis. El pipeline funcionó correctamente al extraer la información de las diferentes fuentes y generar archivos CSV.

Cargado por

cristian lesmes
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
352 vistas26 páginas

Actividad 2

El pipeline extrae datos de películas de varias fuentes como la API de TMDB, una base de datos PostgreSQL y un archivo en Azure Storage. El pipeline diseñado usa Python para extraer los datos e importarlos a dataframes de pandas para su análisis. El pipeline funcionó correctamente al extraer la información de las diferentes fuentes y generar archivos CSV.

Cargado por

cristian lesmes
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

1

ACTIVIDAD

Actividad 2 informe de extracción de fuentes, pipeline y estrategia

Cristian Ramos Moreno

Facultad de Ingeniería de Sistemas, Fundación Universitaria Compensar

Técnicas de extracción y almacenamiento de datos masivos

2023
2

ACTIVIDAD

Tabla de contenido

Informe creación y extracción de las fuentes ...................................................................... 3

Api TMDB. ..................................................................................................................... 3

Caso de estudio actividad.................................................................................................... 8

Diseño y construcción de pipeline .................................................................................. 8

Diagrama del diseño de pipeline ................................................................................... 13

Url del pipeline implementado...................................................................................... 13

Ficha técnica o diccionario de datos ............................................................................. 14

Graficas de frecuencias por año y tipo .......................................................................... 17

Estrategia de adquisición de contenidos ........................................................................... 21

Desarrollo de la estrategia ............................................................................................. 21

Conclusión ........................................................................................................................ 25

Referencias ........................................................................................................................ 26
3

ACTIVIDAD

Informe creación y extracción de las fuentes

Api TMDB.

Creación de cuenta en TMDB y Api Key.

Se creo la cuenta junto con su confirmación por correo y la solicitud de la api key y el

token.

Creación de la blog storage en Azure.


4

ACTIVIDAD

Se creo la cuenta de azure en modo estudiantil adicionalmente de la creación del servicio

de Azure blog

Se creo el grupo y los contenedores:


5

ACTIVIDAD

Se carga el archivo “netflix_titles.csv”.


6

ACTIVIDAD

Creación de Azure DataBase for PostgreSQL y cargue de la base “moviedb”

Se crea el servidor de PostgreSQL Server

Se realiza la conexión en el servidor y el cargue del archivo “moviedb.sql”


7

ACTIVIDAD
8

ACTIVIDAD

Caso de estudio actividad

Usted es un Ingeniero de Datos trabajando para una empresa que maneja Streaming de

películas y series.

Se le pide que diseñe y construya un Pipeline usando Python, que tome información de

diversas fuentes: la base de datos TMDB (The Movie DataBase), una base de datos de un

RDBMS (Postgresql) que contiene los títulos disponibles en DisneyPlus y AmazonPrimeVideo y

un archivo texto en Azure Object Storage que contiene los títulos disponibles en Netflix. Dicha

información debe ser extraída de las fuentes y luego convertida a dataframes de la librería

pandas.

Diseño y construcción de pipeline

Se diseña y construye el pipeline de acuerdo con la solución que se requiere y se realizan

las pruebas en Google Colab y de manera local, se adjunta el código Python.

Pipeline API TMDB

Se realiza el pipeline con las librería de pandas y se realiza una correcta ejecución con el

requerimiento propuesto, se adjunta evidencia de manera local y en Google Colab.

#Importar de las librerias necesarias


import pandas as pd
import requests
#Definicion de la URL de la API y los parámetros de la solicitud
url = 'https://api.themoviedb.org/3/movie/top_rated'
#clave de la api creada propiamente desde la cuenta
params = {'api_key': '8c57ef8387976dc1c6b0ca3f8c3858cb', 'page': 1}
#Definicion de una lista vacía para almacenar los datos
data = []
#se realiza la solicitud get para la API y poder procesar la respuesta
#adicionalmente se realiza un limite de 10000 registros en un rango de 500 por
pagina
for i in range(500):
response = requests.get(url, params=params)
json_data = response.json()
9

ACTIVIDAD

data += json_data['results']
params['page'] += 1
if len(data) >= 10000:
break
#se convierte los datos en un dataframe de la libreria Pandas
df = pd.DataFrame(data)
df.to_csv('top_rated_movies.csv', index=False)

Imagen creación del archivo con el consumo de la API de manera local

Pipeline BD moviedb y creación de archivos .csv

# importacion de las librerias


import pandas as pd
import psycopg2

# Establecer la conexión con la base de datos


conn = psycopg2.connect(
host = 'peliculaspgdata.postgres.database.azure.com',
database = "moviedb",
user = "cramosm@peliculaspgdata",
password = "UsuarioP123",
port = 5432
10

ACTIVIDAD

# Consulta SQL para obtener los datos de la tabla


query_disney = "SELECT * FROM public.disneyplus_movie"
query_amazon = "SELECT * FROM public.amazon_movie"

# Leer los datos en un dataframe utilizando Pandas


dfDisney = pd.read_sql_query(query_disney, conn)
dfAmazon = pd.read_sql_query(query_amazon, conn)

#Creacion de archivos csv con el resultado de la consulta


dfDisney.to_csv("disneyplus_movie.csv", index=False, encoding='utf-8')
dfAmazon.to_csv("amazon_movie.csv", index=False, encoding='utf-8')

# Cerrar la conexión con la base de datos


conn.close()

Imagen ejecución del pipilne de manera local


11

ACTIVIDAD

Pipeline extracción de archivo en Azure Storage

#importancion de las librerias necesarias

from azure.storage.blob import BlobServiceClient


import pandas as pd

#definicion de la cadena de conexion junto con el contenedor y nombre del archivo


generados en azure

connection_string =
'DefaultEndpointsProtocol=https;AccountName=almacenamientopeliculas;AccountKey=jM
hxWSC+7JpRmhj1W1wt+dR8OgZfgnHFYwEhrMqclno7yXxG+TRfh5+so+e9CBlPizIr46DilS4C+ASt7cP
j2A==;EndpointSuffix=core.windows.net'
blob_service_client = BlobServiceClient.from_connection_string(connection_string)
container_client = blob_service_client.get_container_client('contenedor')
blob_client = container_client.get_blob_client('netflix_titles.csv')

#descarga el archivo .csv y convierte los datos en un data frame de Pandas

with blob_client as my_blob:


data = my_blob.download_blob().content_as_text()
df = pd.read_csv(data)

df.to_csv('netflix_titles.csv', encoding='utf-8', index=False)


12

ACTIVIDAD

Imagen ejecución pipeline

Se realiza la correcta ejecución del pipeline con el ingreso a las diferentes fuentes y su

debido extracción, así como la lectura del dataframe y las consultas necesarias que se

propusieron.
13

ACTIVIDAD

Diagrama del diseño de pipeline

Se realizo el diagrama del diseño del pipeline de acuerdo con el requerimiento del caso

de estudio.

Url del pipeline implementado

https://colab.research.google.com/drive/1GR30CVXT_NBLW1asBEOvSOJj7RGoGs16?usp=sharing
14

ACTIVIDAD

Ficha técnica o diccionario de datos

Archivo “Top_Rated_Movies.csv”

CAMPO TAMAÑO TIPO DE DESCRIPCIÓN


DATO
adult 3 Carácter Clasificación de contenido
para adultos
backdrop_path 40 Numérico Caratula de la imagen
genre_ids 12 Numérico Identificación del grupo
género
id 12 Numérico Identificación de la película
original_lenguage 20 Numérico Lenguaje original de la
película
original_title 28 Carácter Titulo Original
overview 40 Carácter descripción general de la
película
popularity 15 Carácter Descripción actual de la
popularidad de la película
poster_path 15 Carácter descripción del cartel de
lanzamiento de la película
release_date 20 Tiempo Fecha de lanzamiento
title 50 Carácter Título de lanzamiento
video 50 Carácter Url del video promocional
vote_average 50 Numérico Número promedio de votos
vote_count 50 Numérico Contador total de votos

Archivo “disneyplus_movie.csv”

CAMPO TAMAÑO TIPO DE DESCRIPCIÓN


DATO
show_id 250 Alfanumérico Identificación de la película
type 250 Alfanumérico Descripción del género de la
película
title 250 Alfanumérico Título de la película
director 250 Alfanumérico Nombre del director de la
película
cast 250 Alfanumérico Campo dummy
country 250 Alfanumérico País de la película
date_added 250 Alfanumérico Fecha del cargue de la
película
15

ACTIVIDAD

release_year 250 Alfanumérico Fecha de lanzamiento de la


película
rating 250 Alfanumérico Popularidad de la película
duration 250 Alfanumérico Duración en segundos de la
película
listed_in 250 Alfanumérico Genero del listo de la
película
description 250 Alfanumérico descripción de la película

Archivo “amazon_movie.csv”

CAMPO TAMAÑO TIPO DE DESCRIPCIÓN


DATO
show_id 250 Alfanumérico Identificación de la película
type 250 Alfanumérico Descripción del género de la
película
title 250 Alfanumérico Título de la película
director 250 Alfanumérico Nombre del director de la
película
cast 250 Alfanumérico Campo dummy
country 250 Alfanumérico País de la película
date_added 250 Alfanumérico Fecha del cargue de la
película
release_year 250 Alfanumérico Fecha de lanzamiento de la
película
rating 250 Alfanumérico Popularidad de la película
duration 250 Alfanumérico Duración en segundos de la
película
listed_in 250 Alfanumérico Genero del listo de la
película
description 250 Alfanumérico descripción de la película

Archivo “netflix_titles.csv”

CAMPO TAMAÑO TIPO DE DESCRIPCIÓN


DATO
show_id 250 Alfanumérico Identificación de la película
type 250 Alfanumérico Descripción del género de la
película
title 250 Alfanumérico Título de la película
director 250 Alfanumérico Nombre del director de la
película
16

ACTIVIDAD

cast 250 Alfanumérico Campo dummy


country 250 Alfanumérico País de la película
date_added 250 Alfanumérico Fecha del cargue de la
película
release_year 250 Alfanumérico Fecha de lanzamiento de la
película
rating 250 Alfanumérico Popularidad de la película
duration 250 Alfanumérico Duración en segundos de la
película
listed_in 250 Alfanumérico Genero del listo de la
película
description 250 Alfanumérico descripción de la película

Ejecución del pipeline con la estructura de cada fuente


17

ACTIVIDAD

Graficas de frecuencias por año y tipo

Gráficas títulos Amazon

Gráficas títulos Disney


18

ACTIVIDAD

Gráficas títulos Netflix

Pipeline gráficas usando librería “matplotlib”

import pandas as pd
from azure.storage.blob import BlobServiceClient
import numpy as np
import matplotlib
import matplotlib.pyplot as plt

#lectura de columnas y conteos de las fuentes


lecturaAmazon = pd.read_csv('amazon_movie.csv', sep=',')
lecturaDisney = pd.read_csv('disneyplus_movie.csv', sep=',')
lecturaNetflix = pd.read_csv('netflix_titles.csv', sep=',')
lecturaApi = pd.read_csv('top_rated_movies.csv', sep=',')

conteoAmazon = lecturaAmazon.count()
conteoDisney = lecturaDisney.count()
conteoNetflix = lecturaNetflix.count()
conteoApi = lecturaApi.count()

#Estructura Amazon
print("Estructura de columnas amazon_movie.csv:")
print('columnas: ', list(lecturaAmazon.keys()))
print("Conteo de registros: ", + conteoAmazon)

#Estructura Disney
print("Estructura de columnas disneyplus_movie.csv:")
print('columnas: ', list(lecturaDisney.keys()))
print("Conteo de registros: ", + conteoDisney)

#Estructura Amazon
19

ACTIVIDAD

print("Estructura de columnas netflix_titles.csv:")


print('columnas: ', list(lecturaNetflix.keys()))
print("Conteo de registros: ", + conteoNetflix)

#Estructura Amazon
print("Estructura de columnas top_rated_movies.csv:")
print('columnas: ', list(lecturaApi.keys()))
print("Conteo de registros: ", + conteoApi)

#Se lee el archivo de Amazon para representar grafica de secuencias por release
de los contenidos
peliculasAmazon = pd.read_csv('amazon_movie.csv', sep=',')
#print('columnas: ', list(peliculasAmazon.keys()))

# las graficas se dividen en dos para representar las tendencias por año de el
tipo de contenido de Amazon
y_fechaAmazon = peliculasAmazon['release_year']
x_tipo1Amazon = peliculasAmazon['type'] == 'Movie'
x_tipo2Amazon = peliculasAmazon['type'] == 'TV Show'
plt.plot(x_tipo1Amazon,y_fechaAmazon)
plt.title('Grafica de frecuencias Amazon por Movie')
plt.grid()
plt.show()
plt.plot(x_tipo2Amazon,y_fechaAmazon)
plt.title('Grafica de frecuencias Amazon por TV Show')
plt.grid()
plt.show()

#Se lee el archivo de DisneyPlus para representar grafica de secuencias por


release de los contenidos
peliculasDisney = pd.read_csv('disneyplus_movie.csv', sep=',')

separar_fecha = peliculasDisney["date_added"].str.split(expand=True)
separar_fecha.columns = ['Mes', 'Dia', 'Year']
#print('columnas: ', list(peliculasDisney.keys()))

nuevoDataFrame = pd.concat([peliculasDisney, separar_fecha], axis=1)


#print('columnas: ', list(nuevoDataFrame.keys()))
#print(nuevoDataFrame.head(10))
nuevoDataFrame.to_csv('DisneyArreglo.csv', index=False, encoding='utf-8')
nuevoDataFrame = pd.read_csv('DisneyArreglo.csv', sep=',')
# las graficas se dividen en dos para representar las tendencias por año de el
tipo de contenido de Amazon
20

ACTIVIDAD

y_fechaDisney = nuevoDataFrame['Year']
x_tipo1Disney = nuevoDataFrame['type'] == 'Movie'
x_tipo2Disney = nuevoDataFrame['type'] == 'TV Show'
plt.plot(x_tipo1Disney,y_fechaDisney, 'ro')
plt.title('Grafica de frecuencias Disney por Movie')
plt.grid()
plt.show()
plt.plot(x_tipo2Disney,y_fechaDisney)
plt.title('Grafica de frecuencias Disney por TV Show')
plt.grid()

#Se lee el archivo de Netflix para representar grafica de secuencias por release
de los contenidos
peliculasNetflix = pd.read_csv('netflix_titles.csv', sep=',')
#print('columnas: ', list(peliculasAmazon.keys()))

# las graficas se dividen en dos para representar las tendencias por año de el
tipo de contenido de Disney
y_fechaAmazon = peliculasNetflix['release_year']
x_tipo1Amazon = peliculasNetflix['type'] == 'Movie'
x_tipo2Amazon = peliculasNetflix['type'] == 'TV Show'
plt.plot(x_tipo1Amazon,y_fechaAmazon)
plt.title('Grafica de frecuencias Netflix por Movie')
plt.grid()
plt.show()
plt.plot(x_tipo2Amazon,y_fechaAmazon)
plt.title('Grafica de frecuencias Netflix por TV Show')
plt.grid()
plt.show()
21

ACTIVIDAD

Estrategia de adquisición de contenidos

Desarrollo de la estrategia

De acuerdo con el modelo STAR la siguiente estrategia que se presentará se dividirá en

tres ejecuciones, teniendo en cuenta la respuesta a las interrogantes presentadas del

requerimiento.

Análisis de datos:

Netflix tiene acceso a grandes cantidades de datos sobre el comportamiento de sus

usuarios, lo que puede ayudar a la compañía a entender qué tipos de contenido son más

populares y cuáles generan mayor interés entre sus usuarios. Utilizando esta información, Netflix

podría identificar qué contenidos son más valiosos para su audiencia y enfocar sus esfuerzos en

adquirirlos.

Por consiguiente, se da respuesta a las siguientes interrogantes utilizando los métodos de

extracción y análisis de la data por medio del lenguaje de programación Python (pipeline):

¿Cuáles son las 10 películas mejor calificadas (vote_average) de la historia?

De acuerdo con el análisis y las consultas del cruce de las fuentes podemos ver que esas

son las 10 películas mejor calificadas.


22

ACTIVIDAD

¿Cuáles son las 10 películas con mayor revenue cuyo release_date sea mayor a 2010-01-

01?

Se puede observar que esas son las peliculas con mayor ganancia, popularidad que se

estrenaton despues del año 2010.

¿Cuáles son las 10 películas colombianas con mayor vote_average?

En este caso se puede observar que la relación entre las diferentes fuentes una

colaboración de Colombia junto con otros países como España para la realización de contenido.

¿Cuáles son las 10 más rentables películas de la historia definiendo rentabilidad como

revenue/Budget?
23

ACTIVIDAD

En este caso no se pudo observar el campo “renueve” sin embargo podemos hacer un

analizar similar coon el campo popularidad debido a que ambos se pueden complementar.

¿Cuáles son los contenidos compartidos por Netflix, Amazon y Disney?

Para este caso realizamos un cruce de la data entre las diferentes fuentes y creamos un archivo

.csv que se llama “contenidos_compartidos.csv”, el contenido de ese archivo es el siguiente:

contenidos_compar
tidos.csv

¿Cuáles son los contenidos que tiene Amazon o Disney y no tiene Netflix?

En este caso se tomo el arreglo del archivo anterior modificacndo loss que no cruzaban y

se obtune el resultado junto con la id de ese contenido.

¿Cuáles son los contenidos con el menor “Budget” pero con el mayor vote_average que

deba adquirir Netflix?


24

ACTIVIDAD

En este caso no se pudo cruzar el campo “Budget” pero el campo “vote_average” se

ordeno con lo menores de forma descendente.

Desarrollar relaciones con los creadores de contenido

Analizando los datos y teniendo en cuenta la respuesta a las interrogantes lo más

recomendable es que Netflix establezca relaciones con los creadores de contenido, ya sea a

través de acuerdos de producción o mediante el incentivo económico a nuevas creaciones de

contenido que son las que mantienen a los usuarios en constante pago de membresía debido al

estreno semanal de nuevos capítulos, al hacerlo Netflix podría obtener información sobre las

tendencias en el desarrollo de contenidos y conocer qué proyectos se encuentran en desarrollo;

también, podría trabajar junto a los creadores para adquirir derechos exclusivos de contenidos

que puedan resultar atractivos para su audiencia de acuerdo con lo que se analizó y nos arrojó la

data y que se propone realizar secuelas de los contenidos con mayor ganancia y popularidad.

Diversificar los tipos de contenidos

Es necesario mencionar que la plataforma Netflix fue de las primeras de contenido

streaming hace más de una década, aunque Netflix se ha ganado una reputación por su amplia

selección de películas y series de televisión, la compañía podría expandir su catálogo para incluir

otros tipos de contenidos, como documentales, programas infantiles, conciertos en vivo y

deportes en vivo; por consiguiente, Netflix podría atraer a una audiencia más amplia y aumentar

su valor como plataforma de entretenimiento además de no agregar publicidad para tratar de

obtener un poco más de ganancias ya que puede encontrarse molesto para el usuario promedio.
25

ACTIVIDAD

Conclusión

El objetivo guía del presente trabajo era realizar el laboratorio de configuración de las

fuentes y hacerlas funcionar de acuerdo con las instrucciones dadas, analizar la data de dichas

fuentes, importancia, creación y uso de “pipeline” como una herramienta para aplicar las técnicas

de extracción de datos, almacenamiento de datos y seguridad de los datos.

Adicionalmente, la realización del caso problema y la temática de realizar un reporte y

diseñar una estrategia para proponer a una compañía real, proporcionó la practica y ampliación

de conocimiento sobre Python y sus librerías como pandas que se utilizaron en este ejercicio que

también se aplicaron al conocimiento propio y la realización del código fuente con mi propio

análisis e interpretación.
26

ACTIVIDAD

Referencias

[1] Klippa. (04 de Agosto de 2022). Klippa.com. Obtenido de

https://www.klippa.com/es/blog/informativo/extraccion-

datos/#:~:text=Extraer%20los%20datos%20permite%20procesarlos,proceso%20de%20to

ma%20de%20decisiones.

[2] Naeem, T. (23 de Junio de 2020). Astera. Obtenido de

https://www.astera.com/es/type/blog/database-extraction/

[3] PowerData. (2022). PowerData.es. Obtenido de https://www.powerdata.es/seguridad-de-

datos

Common questions

Con tecnología de IA

Data visualization, such as frequency graphs for different content types, is crucial in this project as it provides clear insights into trends, patterns, and anomalies within the data. Visualizations help users quickly understand distribution across different streaming platforms, allowing for comparison and contrast of content popularity and types over time. Frequency graphs can reveal critical insights into consumer behavior and preferences, influencing content acquisition and strategy decisions. By translating complex datasets into understandable and actionable visuals, stakeholders can make informed decisions based on data-driven evidence, enhancing strategic planning and competitive analysis .

Pandas and its DataFrame structure facilitate the processing of large datasets in the pipeline by providing an efficient way to store and manage tabular data. DataFrames allow for easy data manipulation, such as filtering, aggregation, and merging dataset operations. Pandas also supports reading from and writing to various file formats, including CSV, which is useful for handling data extracted from different sources. This ability to seamlessly process, transform, and iterate over the data within a structured format makes pandas an essential part of the data pipeline, particularly when dealing with multiple data sources of varying formats like databases and API outputs .

Python, along with its libraries such as pandas, psycopg2, and requests, plays a crucial role in implementing the data processing pipeline. Pandas is used extensively for data manipulation, creating DataFrames to structure the extracted data for further processing or export. psycopg2 facilitates connections to SQL databases, enabling data queries and extraction, while requests manage API interactions, retrieving JSON data and converting it for use within pandas. Python's comprehensive library ecosystem provides tools for data cleaning, transformation, visualization, and storage, making it an ideal choice for orchestrating complex data pipeline processes. Its versatility and ease of use enhance the pipeline's efficiency and functionality, while allowing for rapid development and iteration .

Storing movie data in CSV format offers several advantages for subsequent data analysis and visualization. CSV files are text-based and widely used due to their simplicity and ease of generation from multiple data sources. They provide a platform-independent structure, which can be easily read and manipulated by numerous data analysis programs and libraries, including pandas. CSV files support large datasets and are suitable for importing into data visualization tools and techniques. The tabular structure lends itself well to exploratory data analysis and enables straightforward integration into data science workflows. Moreover, keeping data in an uncompressed text format like CSV aids in maintaining data transparency and portability .

Data extraction and storage in a multi-source pipeline setup imply critical considerations for data security and integrity. Extracting data from APIs and databases requires secure connections to prevent unauthorized access and data leaks. Stored data, especially in cloud environments like Azure, should be encrypted to maintain confidentiality and integrity. Ensuring adherence to data governance policies and managing access controls helps protect against data breaches. Additionally, regular audits and validations are necessary to ensure data accuracy across various pipeline stages. Thus, robust security measures and practices must be integrated into the pipeline to safeguard data and maintain trust .

The main components and steps involved in designing and constructing a data pipeline for extracting and processing movie data from multiple streaming platforms include: establishing connections to various data sources such as the TMDB API, a PostgreSQL database for titles from Disney Plus and Amazon Prime Video, and Azure Object Storage for Netflix titles. The pipeline involves importing necessary libraries like pandas for data manipulation, requests for API calls, and psycopg2 for SQL connections. Data extraction is performed by making API requests, running SQL queries, and downloading files from Azure Blob Storage. The extracted data is then converted into Pandas DataFrames, processed or transformed as needed, and optionally saved as CSV files for further analysis or visualization. Finally, the pipeline is tested and executed, with the entire process orchestrated in an environment like Google Colab for demonstration purposes .

The pipeline leverages cloud services like Azure by utilizing Azure Blob Storage for storing files such as "netflix_titles.csv" in object storage containers. This allows for scalable and secure data storage, accessible from anywhere for processing. Azure Cloud's features are employed to establish connections and manage databases, such as using Azure's PostgreSQL for storing movie databases. By using Azure's cloud services, the pipeline supports efficient data storage, retrieval, and management processes, enhancing the pipeline's overall scalability and flexibility in handling large and diverse datasets while ensuring data integrity and security .

The extracted data can help identify valuable content for a streaming service by providing insights into viewership patterns, popularity metrics, and ratings across different platforms. By analyzing titles' popularity, vote averages, release years, and other meta-information extracted and processed in the pipeline, the streaming service can pinpoint which shows or movies are drawing more attention and resonate with audiences. Additionally, cross-referencing content availability on Netflix, Amazon, and Disney can aid in identifying unique or exclusive content, further guiding acquisition strategies. The use of analytical models on this dataset can highlight content gaps, predict future trends, and help in making data-driven decisions for content acquisitions and development .

In the pipeline, different methods are utilized to handle various data formats from sources such as APIs, SQL databases, and CSV files. For API data, the JSON response is converted into pandas DataFrames, allowing for easy integration with other datasets. SQL data is extracted using pandas' `read_sql_query()` to bring structured database queries into DataFrames. CSV data is read directly into DataFrames, making it consistent with other collected data. Throughout the process, careful data type management and cleaning steps are employed to ensure that all data sources align in terms of formatting and content, resulting in a cohesive and integrated dataset ready for analysis .

The potential challenges of extracting data from APIs compared to static databases in a multi-source data pipeline include managing varying data formats and structures, handling rate limits or quotas that restrict the number of API calls within a specific time frame, and dealing with network or connectivity issues that might result in incomplete data extraction. APIs might also change over time, requiring maintenance and updates of the pipeline code to accommodate new endpoints or parameters. Unlike static databases, APIs can return data in real-time, which may necessitate additional handling for consistency and completeness when integrating with other data sources in the pipeline .

También podría gustarte