Лучший способ загрузить GCP AssetInventory в BigTable - PullRequest
0 голосов
/ 20 мая 2019

Запасы активов экспортируются в облачное хранилище в формате JSON.Я хочу загрузить эти данные в BigTable, но я не уверен, что лучший подход.

Я думаю, что конвейер будет выглядеть примерно так: облачное хранилище> ETL в CSV / файлы последовательности> Загрузка в BigTableиспользуя DataFlow.

Какие есть варианты загрузки данных JSON Cloud Storage в BigTable?

1 Ответ

0 голосов
/ 21 мая 2019

Поскольку JSON и Bigtable настолько гибки и аморфны, между ними нет предварительно упакованных преобразований. Google предоставляет все части, но вы должны написать код, чтобы склеить их вместе. Конкретное сопоставление документов JSON со столбцами и строками Bigtable должно выполняться с нуля.

  • Используйте клиент Cloud Asset [1] для экспорта активов в GCS.

  • В зависимости от размера экспорта либо

    • создать задание потока данных, которое использует TextIO для чтения экспорта
    • или используйте клиент Cloud Storage [2] напрямую
  • Используйте вашу любимую библиотеку JSON для разбора каждой строки

  • Преобразовать каждый объект JSON в мутацию Bigtable

  • Используйте либо приемник потока данных BigtableIO [3], либо клиент Bigtable [4] для записи данных в Bigtable

[1] https://cloud.google.com/resource-manager/docs/cloud-asset-inventory/libraries [2] https://cloud.google.com/storage/docs/reference/libraries [3] https://beam.apache.org/releases/javadoc/2.12.0/org/apache/beam/sdk/io/gcp/bigtable/BigtableIO.html [4] https://cloud.google.com/bigtable/docs/reference/libraries

...