Redshift (Business Analytics) - data-warehouse

I am using Amazon student subscription for a datawarehouse project. I have been able to setup redshift cluster and I am able to query tables via sql work bench. I need to perform BI analysis tasks on the data, the only option I found that was open source is Redash.
I am not being able to identify what to enter in "host" field required in the redash redshift setup. Plus, is there any straight forward way to perform that?

When you're in the AWS backend and go to Redshift -> Cluster -> Configuration, you should see the Endpoint which should look like asd.asdasda.redshift.amazonaws.com:5439. When you remove the 5439 (which is the port) then you'll have to host you have to connect to.
Hope this helps.

Related

Multiple Database Connection on Directus

Can we connect to multiple databases on directus simultaneously?
I wanted to connect postgres, SQL and aws at the same time on Directus
The closest the Directus team has come to discussing multiple database management has been this thread on their Github:
https://github.com/directus/directus/discussions/12699
As per the last message by a maintainer:
This is not something that's officially supported [...] Directus wasn't designed to handle this use case out of the box 👍🏻
Within that same thread a user had manually modified the usage of Knex to use pools to connect to different Databases but it seems unreliable.
Currently the best way to get the benefits of using Directus with multiple databases is to set up a server with multiple instances of Directus running, each pointing to a different database, and using NGINX to access each Directus instance under a separate sub-path.
For example if you have your app data on Postgress and create reports on a separate MySQL database, you could setup NGINX to proxy one Directus connected to Postgres to /api and another Directus connected to MySQL to /reports.
Some useful links:
https://learndirectus.com/how-to-manage-multiple-projects-in-directus/
https://github.com/directus/directus/discussions/4480
https://github.com/directus/sdk/issues/51

CloudRun database connection dissapearing?

some days ago I was able to set up one of my apps to be connected to one of my database instances from the google cloud run service configuration form. However lately I notice two things:
I'm no longer able to select the database instance my service is/will be connected to.
On a service that is connected using this method I no longer see the database connection name. at the bottom on the details panel.
Is this a symptom that the database connections feature will disappear from the Google CloudRun settings?.
This seems like a useful case to use the Cloud SDK to confirm your Cloud Run service is able to communicate with Cloud SQL. This will help confirm if you have a UI problem or something deeper. This is especially important given the documentation states that the Console instructions are not available yet.
Cloud Run supports Cloud SQL via gcloud management using a special flag to associate a Cloud SQL instance with an individual service.
Once this is done, the Cloud SQL instance will be available to the Cloud Run service until it is explicitly removed.
You can verify this connection is in place by looking at the service description:
gcloud beta run services describe [SERVICE-NAME]
in the response, you should see the property run.googleapis.com/cloudsql-instances inside spec.runLatest.configuration.revisionTemplate.metadata.annotations.
As long as that annotation is present and contains your Cloud SQL instance connection name, your service should be able to connect to the SQL instance as documented (assuming your service has authorization to connect to the Cloud SQL instance)

Give access to RDS database

i have several databases running in RDS Service.
I'd like to know the best pratice to grant access to developers to these DB.
I tought a solution using jenkins but i dont think this is the best option.
I am trying to avoid give some password to developers.
Hope you can help me.
As #ceejayoz mentioned you can create a few users with restricted privileges, for example an user who only can run selects on few schemas, another user who can update registers in a few tables.
I can share what we do and what I've seen. We do A and use B where it is easy.
A) Standard Users
For all databases, we have 3 standard users with the following suffixes (_dba, _rw, _ro). Those all have their own passwords using a strong password generator.
_dba is used to deploy scheme and has all rights
_rw is used by the application (CRUD on all tables, but can't modify scheme)
_ro only has R on all tables and generally given to developers
Note: Developers have access to a bastion used for port forwarding and proxycap. They can query the RDS endpoints from their own machines (DB Tools) going through socks proxy and bastion.
This is lazy method - since creation of users is done programmatically and we feel comfortable giving some developers read only access. They could write a bad query and slow down system, but they could do that with a specific user so not much different and the bastion logs tell me who really was in if I had to investigate.
B) UI
Simple web app with login (ideally MFA) - that provides a way to run queries. If only for reporting, ideally against R/O copy of system. Stackoverflow offers one themselves (https://data.stackexchange.com/).
What would be nice is if RDS offered this themselves (linked to your IAM roles). They offer this on RDS Serverless (https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/query-editor.html) and it may be a feature in other RDS versions. That allows fine control or even lazy control (IAM groups).

Neo4j Account Restriction and Multiple Databases

I know that we can get access to Neo4j db remotely by adding IP addresses. I am wondering if Neo4j supports account verification like username and password to double increase the db security even though we log in at trusted IP.
In addition, can we set mulitple databases and switch them before we query some stuff? I know Neo4jCP can do it but it only supports windows. Is there any way else to do it and is it possible that Neo4j intergrates this feature?
Thank you!
Unfortunately out of the box Neo4j doesn't support multiple databases or user management or data level security.
You can add something like that in your application layer, or use a framework like http://structr.org which provides user-management and data level security.

VBA Heroku integration?

I am wondering what might be involved in connecting an Excel VBA application to the hosted database behind a Heroku Ruby on Rails application. Is this possible? My application cannot accomplish all of the functionality I need in the cloud only. The VBA application would be used as part of a system to print and encode proximity "smart" cards. Thank you for any and all tips on how best to implement this.
Number of options here depending on how you want to connect. I would consider exposing an API in your Heroku app that your VBA could consume (if possible).
Failing that;
The present Shared Database won't let you connect directly to the database so that's a no no.
The new beta shared postgres 9.1 (https://postgres.heroku.com/blog/past/2012/4/26/heroku_postgres_development_plan/) will let you connect to it from outside.
Use one of the Heroku DB addon providers such as ClearDB which is a mySQL provider which allows direct access to the database.
Bring your own database which you could host on an external server and have your Heroku app connected to it (watch out for latency) and then you can connect your printing app directly to that Db.

Resources