2017-03-05 3 views
0

J'essaie de comprendre comment procéder pour charger une table partitionnée de date à partir d'un fichier csv contenant des données pour plusieurs jours. Je suppose que je suis à la recherche d'une fonctionnalité similaire offrant des bases de données relationnelles avec leur partitionnement sur une colonne spécifique qui prend soin de charger automatiquement l'enregistrement dans la bonne partition. Il semble qu'avec bigquery la seule façon d'assigner dynamiquement une partition est d'utiliser un décorateur de partition qui me demanderait de charger chaque enregistrement séquentiellement à partir du CSV (comme le jour pourrait être différent pour chaque ligne) ou d'écrire un etl pour diviser le csv en fichiers séparés par jour.Partition de date BigQuery de la colonne

Ai-je oublié quelque chose ici?

Répondre

1

Actuellement BigQuery ne prend pas en charge le partitionnement sur une colonne spécifique, mais il s'agit d'une fonctionnalité hautement demandée vote here et here.

Comme vous le dites, la seule façon de charger des données dans une partition est d'utiliser le décorateur de partition. Pour ce faire, vous devez traiter votre CSV à l'extérieur en jours et charger chaque jour dans sa propre partition en utilisant des tâches de chargement distinctes pour chaque partition.

Ou vous chargez le CSV complet non partitionné, puis créez le script pour les partitions par des requêtes individuelles -> écrire les résultats dans la partition dédiée comme décrit in details here.

1

Google a maintenant introduit une fonctionnalité pour le champ Partition par. Vous pouvez utiliser n'importe quel champ de type Date ou Datetime pour la partie