Snowflake data share between accounts in different regions - snowflake-cloud-data-platform

I wanted to confirm my understanding on this. I have documented below my understanding on data share
I think direct data share works only if the two snowflake accounts are
in the same region of the cloud provider (for example US-EAST-1 of
AWS). If I need to do a data share between two snowflake accounts in
different regions of the cloud provider or in different cloud
providers(AWS and AZURE), I will first need to setup a database
replication and then create a share from the replicated database.
It will be a great help, if you can please let me know if my understanding is correct

This is covered in the documentation here. The table shows what is, and is not, possible with a Direct Share

Related

Is data sharing only supported between accounts in the same Snowflake region?

"Data Sharing is only supported between accounts in the same Snowflake region" as per multiple sources I have come across.
However, with dB replication we can replicate dB to other accounts across regions and cloud platforms. These two statements seem to contradict. Can someone please clarify?
"Data Sharing is only supported between accounts in the same Snowflake region"
This text appears to be from an earlier documentation revision that does not appear to hold true anymore with recent enhancements to SnowflakeDB.
As surmised, data shares are supported across regions via a replication step per the current documentation.
This is all technically accurate. Data Sharing only works within a single region. However, you can replicate your account to another region and then data share from that replicated account within that account's region. This is also true across cloud platforms.
was preparing for Snowflake Certification and had similar problem.
But I finally realised that you can share data across region ONLY if REPLICATING.
If you are NOT REPLICATING then sharing the data can be only within the region
Please see link below for more details :)
https://www.linkedin.com/pulse/snowflake-data-sharing-limitations-tips-minzhen-yang

Designing databases and applications for hosted / cloud solutions

Are there any resources available that can guide someone on how to 'think' about the various components of a hosted / cloud solution before going ahead and starting to make a hosted application? If that made no sense, what I mean to ask is are there any guidance books/websites on what things need to be considered when making a cloud application?
I am attempting to make a hosted CRM-style software application that will serve many hundreds of customers. The application is powered by a SQL server database with many tables and a ColdFusion, HTML5, CSS, Javascript front-end. If I was installing this application and its components at each client site, then each installation is unique to that customer. But somehow I have to replicate this uniqueness in the cloud which is baffling me.
Only two things have come to mind so far:
The need for a unique database per customer in SQL server
The need to change DB connection strings per customer in the web application
My thought process has come to a block when I am trying to envisage how to design the application to serve so many different customers. Even though the application that all customers use will is the same (same DB tables, same front-end), the data that they store and retrieve will be specific to them. So I was thinking that surely each customer needs a separate database creating for them? Is it feasible to create a replica database for each customer? If I need to update some tables or add a new table, how would I do this for hundreds of different databases?
From the front-end I guess each unique customer log-in would change DB connection strings so that they can only access their database. Other than this I can't think of anything else that needs to change per customer basis.
When a new customer wants to sign up, it needs to be clear to me what I need to create for them to have access to the application. I guess this is ultimately what I need to think of but I'm stuck.
If anyone can suggest some things to think of or if there is a book or website on this kind of thing that someone could point me to I'd really be very thankful.
EDIT:
I was looking at an article about Salesforce.com and it says
"In order to ensure privacy of data for each user and give an effect of each having their own database, the data from different users are securely isolated from one another."
Anyone know how this is achieved or how it may be done?
Found some great information here. It is called multi-tenant database design and seems to be a common topic. Once I get the database designed then the application can sit nicely on top.
https://dba.stackexchange.com/questions/1043/what-problems-will-i-get-creating-a-database-per-customer

openam with database

I have a requirement that openam should access users and groups from a MySQL database. In the openam GUI for New Data Store -> Database Repository (Early Access), I could see some configurations related to this. But I am not aware about how to map fields from two or three of MySQL tables (users and groups) to the corresponding attributes of openAM. Also what are the mandatory or optional fields for keeping user and group information? Somebody please point me to good documentation on this.
Also I have a couple of basic queries.
Is it possible to keep policy information in database?
Is it possible to create users, groups and assign policy information from a web application deployed differently (through JSP / servlet). Does the OpenSSO APIs allows to do this.
Thanks.
The Database data store is very primitive (hence it's Early Access), and it is very likely that it won't fit your very specific needs. In that case you can always implement your own Data Store implementation (which can be tricky, I know..), here's a guide for it:
http://docs.forgerock.org/en/openam/10.0.0/dev-guide/index.html#chap-identity-repo-spi
Per your questions:
1) the policies are stored in the configuration store, and I'm not aware of any ways to store them in DataBase
2) yes, there are some APIs which let you perform some changes with the identities stored in the data store, but OpenSSO/OpenAM is not an identity management tool, so it might not be a perfect fit for doing it.
This is pretty simple but sparse documentation makes it a bit tough to do. Check out: http://rahul-ghose.blogspot.com/2014/05/openam-database-connectivity-with-mysql.html
Basically you need to create a MySql database and 2 tables for this. Include all variables you see in the User Configuration dropdown in the Mysql user table, it is okay to remove a few attributes.

Database table structure Guidance

I am trying to build a web application that enables users to refer people to the site. A user can refer up to 10 people to the site and can have up to 7 generations, meaning that each person referred to the system by a referred user will be related to the immediate referrer and the other user that referred the newly registered user’s referrer, up to the seventh level.
The diagram below will help give a view of what I mean.
I'm using SQL Server 2008 for my database.
This is impossible to answer in general because the answer depends on what kind of queries you plan to run against your data.
But there are many alternatives for how to store hierarchical data in a database. You can start with Implementing a hierarchical data structure in a database.
If that's not enough, Google is your friend

2 vBulletin forums sharing same user database?

How would I fix so that 2 vBulletin forums share the same database?
And do not tell me it is not possible, cause it is.
http://MMOwned.com
http://FPSOwned.com
If it's just a predefined set of tables that you want to share you may be able to use the FEDERATED storage engine to "share" a table across two separate databases or perhaps the MERGE storage engine to effectively share a MyISAM table across two databases.
I'm not sure what fun and games you might run into with counters, etc inside vBulletin.
Have you had a good look on the vBulletin.org forums or asked the owner of mmowned.com how they did it?

Resources