Partage de l'accès en écriture aux données (version préliminaire) - Amazon Redshift

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Partage de l'accès en écriture aux données (version préliminaire)

Vous pouvez partager des objets de base de données en lecture et en écriture entre différents clusters Amazon Redshift ou groupes de travail Amazon Redshift Serverless au sein d'un Compte AWS même cluster, d'un compte à l'autre et d'une région à l'autre. Les procédures décrites dans cette rubrique montrent comment configurer le partage de données incluant les autorisations d'écriture. Vous pouvez accorder des autorisations telles que SELECTINSERT, et UPDATE pour différentes tables USAGE et CREATE pour des schémas. Les données sont en ligne et disponibles dans tous les entrepôts dès qu’une transaction d’écriture est validée. Les administrateurs des comptes Producer peuvent déterminer si des espaces de noms ou des régions spécifiques sont accessibles en lecture seule ou s'ils ont accès aux données. read-and-write

Les sections suivantes montrent comment configurer le partage de données. Les procédures supposent que vous travaillez sur une base de données dans un cluster provisionné ou un groupe de travail Amazon Redshift sans serveur.

Partage de données en lecture seule ou partage de données en lecture et en écriture

Auparavant, les objets des unités de partage des données étaient en lecture seule en toutes circonstances. L’écriture dans un objet d’une unité de partage des données est une nouvelle fonctionnalité. Les objets des partages de données ne sont activés en écriture que lorsqu'un producteur accorde spécifiquement des privilèges d'écriture tels que INSERT ou CREATE sur des objets au partage de données. En outre, pour le partage entre comptes, un producteur doit autoriser le partage de données pour les écritures et le consommateur doit associer des clusters et des groupes de travail spécifiques pour les écritures. Des informations détaillées figurent dans les sections suivantes de cette rubrique.

Autorisations que vous pouvez accorder aux partages de données (aperçu)

Différents types d’objets et autorisations que vous pouvez leur accorder dans un contexte de partage de données.

Schémas :

  • USAGE

  • CREATE

Tables : 

  • SELECT

  • INSERT

  • UPDATE

  • DELETE

  • TRUNCATE

  • DROP

  • REFERENCES

Fonctions :

  • EXECUTE

Bases de données :

  • CREATE

Exigences et restrictions concernant l’unité de partage de données en version préliminaire

  • Connexions : vous devez être connecté directement à une base de données de partage de données ou exécuter la USE commande pour écrire dans des partages de données. Cependant, nous allons bientôt offrir la possibilité de le faire avec une notation en trois parties.

  • Disponibilité — Vous devez utiliser des groupes de travail sans serveur, des clusters ra3.4xl ou des clusters ra3.16xl pour utiliser cette fonctionnalité.

  • Découverte des métadonnées : lorsque vous êtes un consommateur connecté directement à une base de données de partage de données via les pilotes Redshift ODBC ou PythonJDBC, vous pouvez afficher les données du catalogue de différentes manières :

  • Données API — Vous ne pouvez pas vous connecter à des bases de données partagées via les données. API La prise en charge de ceci sera bientôt disponible.

  • Visibilité des autorisations — Les consommateurs ne peuvent pas voir les autorisations accordées aux partages de données. Nous ajouterons bientôt cette fonctionnalité.

  • Chiffrement — Pour le partage de données entre comptes, le cluster de producteurs et de consommateurs doit être crypté.

  • Niveau d'isolation : le niveau d'isolation de votre base de données doit être une isolation instantanée afin de permettre aux autres groupes de travail et clusters sans serveur d'y écrire.

  • Opérations automatiques : les consommateurs écrivant sur des objets de partage de données ne déclencheront pas d'opération d'analyse automatique. Par conséquent, le producteur doit exécuter manuellement l’analyse une fois les données insérées dans la table pour que les statistiques de celle-ci soient mises à jour. Sans cela, les plans de requête risquent de ne pas être optimaux.

  • Requêtes et transactions à instructions multiples : les requêtes à instructions multiples en dehors d'un bloc de transactions ne sont actuellement pas prises en charge. Par conséquent, si vous utilisez un éditeur de requêtes tel que dbeaver et que vous avez plusieurs requêtes d'écriture, vous devez encapsuler vos requêtes dans un... BEGIN ENDrelevé de transaction.

SQLdéclarations soutenues

Ces instructions sont prises en charge pour la version préliminaire publique du partage de données avec écritures :

  • BEGIN | START TRANSACTION

  • END | COMMIT | ROLLBACK

  • COPYsans COMPUPDATE

  • { CREATE | DROP } SCHEMA

  • { CREATE | DROP | SHOW } TABLE

  • CREATETABLEnom_table AS

  • DELETE

  • {GRANT|REVOKE} privilege_name ON OBJECT _ object_name TO consumer_user TYPE

  • INSERT

  • SELECT

  • INSERT INTO SELECT

  • TRUNCATE

  • UPDATE

  • Colonnes de données de type Super

Types d’instructions non pris en charge : les types d’instructions suivants ne sont pas pris en charge :

  • Requêtes à plusieurs instructions adressées aux entrepôts consommateur lors d’écritures vers les producteurs

  • Requêtes de mise à l’échelle de la simultanéité avec écriture des consommateurs vers les producteurs

  • Tâches de copie automatique avec écriture des consommateurs vers les producteurs.

  • Tâches de streaming avec écriture des consommateurs vers les producteurs.

  • Les consommateurs créent des tables à ETL intégration nulle sur les clusters de producteurs. Pour plus d'informations sur les ETL intégrations nulles, consultez la section Utilisation des ETL intégrations nulles.

  • Écriture dans une table avec une clé de tri entrelacée.

Partage de données au sein d'un compte avec des autorisations d'écriture en tant qu'administrateur du compte producteur (aperçu)

Auparavant, les objets des unités de partage des données étaient en lecture seule en toutes circonstances. L’écriture dans un objet d’une unité de partage des données est une nouvelle fonctionnalité. Les objets des partages de données ne sont activés en écriture que lorsqu'un producteur accorde spécifiquement des privilèges d'écriture tels que INSERT ou CREATE sur des objets au partage de données. Des informations détaillées figurent dans les sections suivantes de cette rubrique.

Si vous recherchez la documentation existante concernant les unités de partage des données en lecture seule, consultez Partage de données entre clusters dans Amazon Redshift.

Pour démarrer le partage de données, l’administrateur du producteur crée une unité de partage des données et y ajoute des objets :

  1. Le propriétaire ou le super-utilisateur de la base de données du producteur crée une unité de partage des données. Une unité de partage des données est un conteneur logique d’objets de base de données, d’autorisations et de consommateurs. (Les consommateurs sont des clusters ou des espaces de noms Amazon Redshift sans serveur de votre compte et d’autres comptes.) Chaque unité de partage des données est associée à la base de données dans laquelle elle a été créée, et seuls les objets de cette base de données peuvent être ajoutés. La commande suivante crée une unité de partage des données :

    CREATE DATASHARE my_datashare [PUBLICACCESSIBLE = TRUE];

    Le paramètre PUBLICACCESSIBLE = TRUE permet aux consommateurs d'interroger votre partage de données à partir de clusters accessibles au public et de groupes de travail provisionnés. Oubliez ce paramètre ou définissez-le explicitement sur false si vous ne souhaitez pas l’autoriser.

    Le propriétaire du partage de données doit autoriser USAGE les schémas qu'il souhaite ajouter au partage de données. La GRANT commande est nouvelle. Il est utilisé pour accorder diverses actions sur le schéma, notamment CREATE etUSAGE. Les schémas contiennent des objets partagés :

    CREATE SCHEMA myshared_schema1; CREATE SCHEMA myshared_schema2; GRANT USAGE ON SCHEMA myshared_schema1 TO DATASHARE my_datashare; GRANT CREATE, USAGE ON SCHEMA myshared_schema2 TO DATASHARE my_datashare;

    L'administrateur peut également continuer à exécuter des ALTER commandes pour ajouter un schéma au partage de données. Seules USAGE les autorisations sont accordées lorsqu'un schéma est ajouté de cette façon.

    ALTER DATASHARE my_datashare ADD SCHEMA myshared_schema1;
  2. Une fois que l’administrateur a ajouté des schémas, il peut accorder des autorisations d’unité de partage des données sur les objets du schéma. Il peut s’agit d’autorisations en lecture ou en écriture. L'GRANTALLexemple montre comment accorder toutes les autorisations.

    GRANT SELECT, INSERT ON TABLE myshared_schema1.table1, myshared_schema1.table2, myshared_schema2.table1 TO DATASHARE my_datashare; GRANT ALL ON TABLE myshared_schema1.table4 TO DATASHARE my_datashare;

    Vous pouvez continuer à exécuter des commandes telles que ALTER DATASHARE l'ajout de tables. Dans ce cas, seules SELECT les autorisations sont accordées sur les objets ajoutés.

    ALTER DATASHARE my_datashare ADD TABLE myshared_schema1.table1, myshared_schema1.table2, myshared_schema2.table1;
  3. L’administrateur autorise un espace de noms spécifique du compte à utiliser l’unité de partage des données. Vous pouvez trouver l'ID de l'espace de noms ARN dans la page de détails du cluster, dans la page de détails de l'espace de noms Amazon Redshift Serverless, ou en exécutant la commande. SELECT current_namespace; Pour plus d'informations, voir CURRENT_ NAMESPACE.

    GRANT USAGE ON DATASHARE my_datashare TO NAMESPACE '86b5169f-012a-234b-9fbb-e2e24359e9a8';