Site Logo
Site Logo
Heliophysics Software Search Interface

CloudCatalog

1.2.1
Citation

Reference Publication

Concise Description
A Python package for retrieving cloud data file catalogs/indices
Description
CloudCatalog specification and API for providing and accessing cloud data API for accessing the generalized CloudCatalog (cloudcatalog) specification for sharing data in and across clouds Indexing millions of files for easy, searchable yet serverless and decentralized access is hard. CloudCatalog is a lightweight CSV- and JSON-based indexing schema enabling HAPI-like "data ID + time range" queries on massive cloud datasets, and includes an implementation of the API and support tools in Python. Key goals include that (1) data owners control their own indices, (2) indices are static files to avoid incurring server costs, (3) searching is efficient and (4) indices are easily constructable and maintainable by the scientists/data-owners (the 'lazy' part). In addition to the FAIR principles of findability, accessibility, interoperability, and reusability, it is serverless and decentralized so that contributors can publish and update their open science data without the worries of external gatekeeping or server maintenance. CloudCatalog is a generalized indexing specification for large cloud datasets. The push to open science means many more published datasets, and finding and accessing is important to solve. CloudCatalog is an indexing method for sharing big datasets in cloud systems. It is scientist-friendly and it is easy to generate a set of indices. It uses static index files in time-ordered CSV format that are easy to fetch, easy to access via an API, and very low cost in both money and bandwidth needed to support. Metadata is kept in a simple JSON schema. We also provide a Python client toolset for scientists to access datasets that use CloudCatalog. The CloudCatalog specification and tools are open source, created by the HelioCloud project, and already used for 2 Petabytes of publicly available NASA and scientist-contributed data. We hope the community continues to adopt this CloudCatalog standard (in github, linked off heliocloud.org). * For sharing datasets across cloud frameworks * Decentralized: data owners control their own data and access * RESTful & serverless (indices are flat files alongside their datasets) * Removes need for doing slow/expensive disk ‘ls’ on large holdings * Global registry JSON points to owner-controlled ‘buckets’ * Uses minimal JSON to list metadata, CSV files for indices * Searchable * Public specification here on GitHub. The API is designed for retrieving file catalog (index) files from a specific ID entry in a catalog within a bucket. It also includes search functionality for searching through all data index catalogs found in the bucket list. We also include command-line tools for creating and viewing the networked catalogs: cloudcatalog-tree lists all toplevel datasets and the number of dataIDs available; cloudcatalog-spider adds valid years and the number of files; cloudcatalog-update-json updates catalog.json using metadata from catalog_stub.json; cloudcatalog-update-csv updates catalog.json using metadata from cat.csv; cloudcatalog-gui provides a GUI for selecting files for cloudcatalog-update-json; and cloudcatalog-manifest2indices converts an AWS Manifest.csv to individual [dataID]_[YYYY].csv indices. The package also includes validators that check catalog.json files and dataset indices against the CloudCatalog specification.
Reference Publication
Authors
Functionality
Technical Details
Data & File Formats
Science Context
Keywords
Related Items
Licensing & Funding
Version Information