Там есть несколько вопросов, поэтому я постараюсь быть кратким и надеюсь, что некоторые изменения могут уйти sh из деталей, которые я, возможно, пропустил.
Вам не нужно ничего делать, чтобы просматривать ваши данные как единый массив dask, поскольку вы можете ссылаться на отдельные чанки как массивы (см. здесь ), а затем использовать функции стека / сцепления для создания единого массива. Это означает открытие каждого файла на клиенте, чтобы прочитать meatadata.
Аналогично, xarray имеет некоторые функции для чтения наборов файлов , где вы должны быть в состоянии предположить, что согласованность dtype и размерности - смотрите их документацию.
Что касается zarr, вы можете использовать dask для создания набора файлов для вас в GCS или нет, и выбрать ту же схему чанкинга, что и для вход - тогда не будет тасования. Так как zarr очень прост в настройке и понимании, вы даже можете создать набор данных zarr самостоятельно и записать куски один за другим, не создавая заранее массив dask из файлов zarr. Обычно это происходит через API zarr, и запись фрагмента данных не требует каких-либо изменений в файле метаданных, поэтому может выполняться параллельно. Теоретически, вы можете просто скопировать блок, если вы понимаете низкоуровневое представление данных (например, int64 в C -раскладке массива); однако я не знаю, насколько вероятно, что один и тот же механизм сжатия будет доступен как в исходном hdf, так и в zarr (см. здесь ).