Tengo una imagen acoplable de Apache Superset ejecutándose en Google Cloud Run. Lo configuré para usar nuestro host Cloud SQL para su base de datos de metadatos. Debido a la forma en que se conecta Cloud Run a Cloud SQL, esto requería usar la cadena de conexión de estilo socket Unix en SQL Alchemy para conectarlo (según las instruccionesaquí.). Postgres es la base de datos en uso (aunque dudo que eso importe).
Estaba bastante contento conmigo mismo (ya que mi conocimiento de Docker/Cloud Run es bajo) y estaba funcionando bien, pero luego fui a agregar algunas fuentes de datos. Por supuesto, el cuadro de diálogo de configuración para la información de conexión de base de datos SÓLO le permite ingresar un host y una IP:
Es muy decepcionante llegar tan lejos y verse bloqueado por una limitación de la interfaz de usuario. El host al que quiero conectarme es EL MISMO HOST que está utilizando para su base de datos de metadatos, por lo que claramente PUEDE conectarse a él. ...Simplemente no tengo manera de expresarle cómo conectarme.
¿Hay algo que pueda hacer para configurar Superset con una cadena de conexión de socket Unix para las bases de datos de destino para las fuentes de datos (no los metadatos, que ya funcionan)?
Veo que incluso me permite proporcionar parámetros adicionales, que es donde se especifica el socket Unix, pero como la IP del host y el puerto son campos obligatorios y se prueban con ellos, no los aceptará.
Quiero evitar el costo adicional de una VPC (y no tengo idea de cómo configurar una porque no soy administrador y cualquier cosa que suceda fuera de un IDE me produce trastorno de estrés postraumático).
Si no puedo solucionarlo, tendré que implementarlo en nuestro clúster K8 que estamos intentando reemplazar con opciones sin servidor (Cloud Run, GAE, etc.).
Respuesta1
El problema está en la interfaz de usuario de Apache Superset y le recomiendo que siga las instrucciones.Problema de GitHubpara resolver esto.
Por ahora, configurar su entorno sin servidor como se muestra a continuación ayudará a resolver el problema:
- Configurar unIP privada para la instancia de Cloud SQL
- Configurar unConector de acceso sin servidor VPC
- ConfigurarEjecutar en la nubepara usar el conector
- Finalmenteconectarusando la IP privada y el puerto
Los pasos proporcionados están bien explicados en la documentación y son sencillos de ejecutar.