4.2. 存储位置
StorageLocation 是一个自定义资源,用于配置 report-operator 存储数据的位置。其中包括从 Prometheus 收集的数据,以及通过生成报告自定义资源所产生的结果。
如果您要在多个位置(如多个 S3 存储桶或 S3 和 HDFS)存储数据,或者需要访问并非由 metering 在 Hive/Presto 中创建的数据库,您只需配置 StorageLocation 即可。这对于大部分用户来说并非强制要求,配置 metering 文档中的内容足以配置所有必要存储组件。
4.2.1. StorageLocation 示例
第一个示例为内置本地存储选项。它被配置为使用 Hive,数据默认保存在 Hive 所配置的使用存储的位置(HDFS、S3 或 ReadWriteMany PVC)。
本地存储示例
apiVersion: metering.openshift.io/v1 kind: StorageLocation metadata: name: hive labels: operator-metering: "true" spec: hive: 1 databaseName: metering 2 unmanagedDatabase: false 3
下一示例将 AWS S3 存储桶用于存储。在构造要使用的路径时,前缀会附加至存储桶名称中。
远程存储示例
apiVersion: metering.openshift.io/v1
kind: StorageLocation
metadata:
name: example-s3-storage
labels:
operator-metering: "true"
spec:
hive:
databaseName: example_s3_storage
unmanagedDatabase: false
location: "s3a://bucket-name/path/within/bucket" 1
- 1
- (可选)用于数据库的 Presto 和 Hive 的文件系统 URL。可为
hdfs://
或s3a://
文件系统 URL。
hive
部分还可指定其他一些可选字段:
- (可选)defaultTableProperties:包含使用 Hive 创建表的配置选项。
- (可选)fileFormat:存储至文件系统中的文件的格式。如需选项列表和更多详情,请参阅文件存储格式 Hive 文档。
- (可选)rowFormat:控制 Hive 行格式。该字段控制行的序列化和反序列化方式。更多详情请参阅行格式和 SerDe Hive 文档。
4.2.2. 默认 StorageLocation
如果存在 storagelocation.metering.openshift.io/is-default
注解,且该注解在 StorageLocation 资源上被设置为 true
,则该资源将成为默认存储资源。任何组件的存储配置选项如果未指定 StorageLocation,则会使用默认存储资源。仅可在默认存储资源中。如果多个资源都存在注解,则会记录一个错误,Operator 将视为无默认值。
apiVersion: metering.openshift.io/v1 kind: StorageLocation metadata: name: example-s3-storage labels: operator-metering: "true" annotations: storagelocation.metering.openshift.io/is-default: "true" spec: hive: databaseName: example_s3_storage unmanagedDatabase: false location: "s3a://bucket-name/path/within/bucket"