4.2. ストレージの場所
StorageLocation は、データが reporting-operator によって保存される場所を設定するカスタムリソースです。これには、Prometheus から収集されるデータと Report カスタムリソースを生成して生成される結果が含まれます。
複数の S3 バケットや S3 と HDFS の両方などの複数の場所にデータを保存する必要がある場合や、メータリングによって作成されていない Hive/Presto のデータベースにアクセスする必要がある場合は、StorageLocation を設定する必要があります。ほとんどのユーザーの場合、この設定は不要であり、必要なすべてのストレージコンポーネントを設定するには、メータリングの設定についてのドキュメントを参照するだけで十分です。
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:ファイルシステムにファイルを保存するために使用するファイル形式です。オプションの一覧や詳細については、File Storage Format の Hive ドキュメントを参照してください。
- (オプション) rowFormat: Hive row フォーマットを制御します。これは、Hive が行をシリアライズ/デシリアライズする方法を制御します。詳細は、「 Hive Documentation on Row Formats and SerDe」 を参照してください。
4.2.2. デフォルトの StorageLocation
アノテーションの storagelocation.metering.openshift.io/is-default
が存在し、StorageLocation リソースで true
に設定されている場合、そのリソースはデフォルトのストレージリソースになります。StorageLocation が指定されていないストレージ設定オプションを持つすべてのコンポーネントはデフォルトのストレージリソースを使用します。デフォルトのストレージリソースは 1 つのみです。アノテーションを持つ複数のリソースが存在する場合、エラーがログに記録され、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"