Ich habe ein Docker-Image von Apache Superset, das in Google Cloud Run ausgeführt wird. Ich habe es so konfiguriert, dass es unseren Cloud SQL-Host für seine Metadaten-Datenbank verwendet. Aufgrund der Art und Weise, wie Sie Cloud Run mit Cloud SQL verbinden, war die Verwendung der Verbindungszeichenfolge im Unix-Socket-Stil in SQL Alchemy erforderlich, um eine Verbindung herzustellen (gemäß den Anweisungen).Hier.). Die verwendete Datenbank ist Postgres (obwohl ich bezweifle, dass das eine Rolle spielt).
Ich war ziemlich zufrieden mit mir (da meine Kenntnisse über Docker/Cloud Run gering sind) und es lief gut – aber dann wollte ich einige Datenquellen hinzufügen. Natürlich erlaubt der Konfigurationsdialog für DB-Verbindungsinformationen NUR die Eingabe eines Hosts und einer IP:
Es ist sehr enttäuschend, so weit zu kommen und durch eine UI-Einschränkung blockiert zu werden. Der Host, mit dem ich mich verbinden möchte, ist DERSELBE HOST, den es für seine Metadaten-DB verwendet – es KANN also eindeutig eine Verbindung zu ihm herstellen. … Ich habe nur keine Möglichkeit, ihm mitzuteilen, wie ich mich damit verbinden soll.
Kann ich irgendetwas tun, um Superset mit einer Unix-Socket-Verbindungszeichenfolge für die Zieldatenbanken für Datenquellen zu konfigurieren (nicht für Metadaten, die bereits funktionieren)?
Ich sehe, dass ich sogar zusätzliche Parameter angeben kann, nämlich dort, wo Sie den Unix-Socket angeben – aber da Host-IP und Port Pflichtfelder sind und diese getestet werden, werden diese nicht akzeptiert.
Ich möchte die zusätzlichen Kosten eines VPC vermeiden (und ich habe keine Ahnung, wie man eines einrichtet, da ich kein Administrator bin und alles, was außerhalb einer IDE passiert, bei mir PTBS verursacht).
Wenn ich das Problem nicht lösen kann, muss ich es in unserem K8s-Cluster bereitstellen, den wir durch serverlose Optionen (Cloud Run, GAE usw.) ersetzen möchten.
Antwort1
Das Problem liegt bei der Apache Superset-Benutzeroberfläche und ich empfehle Ihnen, die folgenden Schritte auszuführen:GitHub-Problemum dieses Problem zu beheben.
Zur Behebung des Problems hilft vorerst die folgende Konfiguration Ihrer serverlosen Umgebung:
- Konfigurieren Sie einenPrivate IP für die Cloud SQL-Instanz
- Richten Sie einVPC-Connector für serverlosen Zugriff
- KonfigurierenCloud Runzur Verwendung des Connectors
- EndlichverbindenVerwenden der privaten IP und des privaten Ports
Die angegebenen Schritte werden in der Dokumentation ausführlich erläutert und sind unkompliziert auszuführen.