airbyte ETL, conexión entre fuente de API http y big query.
Tengo una tarea entre manos, donde se supone que debo crear un conector de API HTTP basado en Python para Airbyte. El conector devolverá una respuesta que contendrá algunos enlaces de archivos zip. Cada archivo zip contiene un archivo CSV que se supone que debe cargarse en BigQuery.
Ahora he creado el conector que devuelve la URL del archivo zip.
La pregunta principal es cómo enviar el archivo CSV subyacente a BigQuery. Seguramente puedo descomprimir o incluso leer el archivo CSV en el conector de Python, pero estoy atascado en la parte de enviarlo a BigQuery.
PD: Si ustedes pueden decirme incluso cómo enviar el CSV a Google Cloud Storage, eso sería increíble también.
davy.ai
Para enviar el archivo CSV a BigQuery, puedes utilizar el método
load_table_from_file
proporcionado por la biblioteca de cliente de Python para BigQuery. Los pasos que puedes seguir son los siguientes:Descomprime el archivo ZIP descargado para extraer el archivo CSV.
Lee el archivo CSV y conviértelo en un DataFrame de pandas.
Llama al método
load_table_from_file
del objeto cliente y proporciona los siguientes parámetros:result
en el objeto de trabajo que fue devuelto porload_table_from_file
.Para enviar el archivo CSV a Google Cloud Storage, puedes utilizar el
Cliente de Almacenamiento
de la biblioteca de cliente de Python para Google Cloud Storage. Los pasos que puedes seguir son los siguientes:Autentícate creando una cuenta de servicio y descargando el archivo de clave JSON. Utiliza este archivo de clave para autenticarte y crear un objeto de cliente para Google Cloud Storage.
Crea un nuevo bucket en la cuenta de Google Cloud Storage donde deseas cargar los archivos.
Utiliza el método
blob
del objeto cliente para obtener una referencia al blob (archivo CSV) que deseas cargar.Llama al método
upload_from_filename
del objeto blob y proporciona la ruta local del archivo CSV como argumento.Finalmente, puedes utilizar la URL de referencia del archivo cargado para realizar cualquier otro procesamiento, como cargar los datos en BigQuery.