0
votes

Facturation - Copie des journaux historiques de B & Q de la vieille table à la nouvelle. Plate-forme de cloud Google Cloud

Question de la première requête de Google Cloud.

Situation:

  • GCP BQ des journaux où dans le cadre de "facturation" sur la région WE2.
  • Nouveau projet "BillingNew" (région UE) a été créé et invité à trafic BQ des journaux de BQ à ce projet. En outre, déplacez les données historiques.

    Le problème: Comment insérer d'anciennes données de facturation à un nouveau projet de facturation et des tables imbriquées entre différents projets.


4 commentaires

Pouvez-vous spécifier mieux votre question?


Chez GCP, il existe un projet1, ayant une facturation de jeu de données1, où tous les journaux BQ ont été acheminés. Toutes les actions de tout projet relatif à BQ sont connectées à une table automatisée, c'est-à-dire "" Cloudaud_googleapis_com_data_access_20200107 ".


Vos tables sont-elles partitionnées par la date?


Oui, les tableaux où les journaux sont routés sont créés par Google automatiquement et ils sont partitionnés par la date et la majorité des colonnes sont imbriquées (structurées).


3 Réponses :


0
votes

Si vous utilisez des tables partitionnées, bigquery ne vous permet pas de copier de nombreuses tables partitionnées à la fois. Si vous souhaitez migrer vos tables une seule fois, je vous suggère de faire quelque chose comme celui-ci dans shell script: xxx

Vous devez mettre toutes vos partitions de date comme une chaîne dans la liste puis exécutez la boucle. J'espère que cela aide

edit 1:

Comme vous avez des problèmes pour copier des tableaux entre régions, je suggère ce qui suit:

étant donné que vous êtes Aller à migrer les tables une seule fois, vous pouvez utiliser une copie de données entre la région: xxx

Vous pouvez vérifier la référence complète ici Si vous copiez votre ancien jeu de données définissant votre nouveau jeu de données comme jeu de données cible, toutes les tables seront créées là-bas.

espère qu'il aide


4 commentaires

Il semble que cela ne soit pas possible si vous copiez des projets dans différentes régions. Dans notre cas, la vieille table est en Europe-West2 et une nouvelle est dans l'UE. J'ai essayé une table de copie d'essai entre les projets sur la même région, s'est bien passé.


S'il vous plaît voir la commande et l'erreur. Commande: "XXX @ Cloudshell: ~ (Project1) $ BQ CP Project1: DataSet1.Table1 ProjectX: DataSet2.Newtable" Erreur: "Erreur de BigQuery en Opération CP: non trouvé: DataSet Projectx: DataSet2" Si j'essaie de copier la table de test entre jeux de données dans la même région (différents projets) Cela va bien. "DataSet2" existe définitivement chez ProjectX. "DataSet1" est "West-Europe2", "DataSet2" est dans les régions "UE".


Votre jeu de données n'a-t-il que ces tables que vous souhaitez copier ou avoir plus de tables?


À des fins de test, Source DataSet1 n'a que cette table, la destination DataSet2 est vide, aucune tables là-bas.



0
votes

Afin de déplacer vos données de facturation sur votre nouveau projet, vous devez d'abord déplacer les données dans la même région que votre nouveau jeu de données. Vous pouvez suivre Ce guide pour accomplir cela. Veuillez noter que la table de facturation a des données imbriquées; Par conséquent, vous devez utiliser un format de fichier qui prend en charge ce type de données comme JSON ou Avro formats . En outre, veuillez prendre en compte le Considérations sur l'emplacement depuis que vous Impossible de copier directement des ensembles de données entre différentes régions.

Une fois que vous avez vos données dans Google Cloud Storage, vous pouvez le charger dans votre nouvelle table de facturation en suivant le " Chargement de données dans une table à une table partitionnée ", faites attention à cette étape car il y a 2 option: " write_append "et" write_trunate ". Le type de charge dépendra de la question de savoir si la partition est nouvelle ou a déjà des données.

Une autre option consiste à utiliser " Copie de jeux de données " Beta Feature; Cependant, toutes les régions ne sont pas activées actuellement pour la copie de données. Vous pouvez créer des copies de données dans des régions où le service de transfert de données BigQuery est actuellement Pris en charge . En utilisant la fonction "DataSets de copie", je vous recommande de charger les données dans un jeu de données séparé dans votre nouveau projet (dans le même endroit que votre jeu de données de destination), puis ajoutez les données à votre jeu de données de destination en utilisant Emplois de requête .

Dans les deux options Vous pouvez utiliser des travaux de requête pour charger les données de facturation dans votre nouvelle table si vous chargez vos données d'historique dans un jeu de données séparé.


0 commentaires

0
votes

Juste au cas où quelqu'un d'autre vient au même rebus:

  • GCP, BQ Journaux où acheminé vers le projet "facturation" sur la région WE2.

  • Nouveau projet "BillingNew" (région UE) a été créé et invité à trafic BQ des journaux de BQ à ce projet. En outre, déplacez des données historiques.

    solution:

    1. Créer un nouveau jeu de données sur "BillingNew". Route tous les projets là-bas. Vérifiez, assurez-vous que les journaux en direct y allient.

    2. COPY DataSet de la vieille "facturation" à un nouveau projet "BillingNew" à l'aide de "TRANSFERT JOB" (script ci-dessous sous exemple): xxx

      1. Vous avez maintenant les deux ensembles de données avec des schémas de table de journaux identiques sur le même projet et les plus importants dans la même région (UE).
      2. Utilisez SQL Syntax 'Insérer dans la nouvelle carte ... Sélectionnez * à partir d'OldTable ...'
      3. fait, vous avez des bûches vivantes et anciennes dans la même table, y compris la partition, etc.

        Autre moyen:

        1. Copy Coller Dataset d'ancien projet neuf.
        2. itinéraire BQ enregistre là-bas. Vous perdrez des disques lors de la réacheminement de projets, ils seront enregistrés dans l'ancienne table. Il faudra donc copier ces données d'écart.

          Merci pour des suggestions d'utiliser des «tâches de transfert» et de copier des ensembles de données, car ces tables partitionnées générées par GCP ont été un moyen trop compliqué pour travailler.


0 commentaires