1

Est-il possible de publier quelque chose commeEst-il possible de renommer des colonnes?

RENAME COLUMN col1 col2 

dans Google Cloud Spanner? Il semble de la DDL que ce n'est pas possible; sinon, est-ce un choix de conception ou une limitation en Beta?

Répondre

3

Non, ce n'est pas possible. Actuellement, vous pouvez seulement faire ce qui suit en ce qui concerne les colonnes altérant dans un tableau:

  • Ajouter un nouveau
  • Supprimer un existant, à moins d'une colonne de clé
  • Modifier Supprimer le comportement (en cascade ou non)
  • convertir entre STRING et BYTES
  • longueur Changement de STRING et BYTES
  • Ajouter ou supprimer NOT NULL modificateur

Un travail est autour possible en suivant ces étapes dans l'ordre:

  • Ajouter la nouvelle colonne à votre table
  • Mettez à jour votre code pour lire dans les deux colonnes
  • Mise à jour votre code pour écrire uniquement dans le nouveau
  • Exécutez un travail Cloud Dataflow pour migrer les données de l'ancienne colonne vers la nouvelle colonne
  • Mettez à jour votre code uniquement lire la nouvelle colonne
  • Effacer l'ancienne colonne

Gardez à l'esprit les étapes ci-dessus ne fonctionne pas pour la colonne de clé primaire, vous devrez le faire en créant une nouvelle table, et de faire la migration de données de cette façon.

+0

Dan - merci pour les conseils. Comment proposeriez-vous d'exécuter un travail Cloud Dataflow qui effectue la migration? Y at-il quelque chose de intégré pour lui permettre d'obtenir/diffuser des données à partir de Cloud Spanner? – user3707

+0

À moins que vous n'ayez déjà un grand ensemble de données, il suffit d'écrire un ancien processus pour interroger en lecture et en écriture tout dans un seul thread suffirait pour faire le travail. –