Quick start
===========

このクイック スタートでは、次のことを行います。

1. Lakehouse ノードを作成します。

2. 好みの Postgres クライアントを使用してノードに接続します。

3. オブジェクト ストレージ内のサンプル データ
   (TPC-H、TPC-DS、Clickbench、または 1BRC) をクエリします。

詳細と高度な使用例については、 :ref:`PGAA functions reference <PGAA functions reference>`  を参照してください。

導入
----

Postgres Lakehouseは、 EDB Postgres® AI
Platform上でプロビジョニングできる新しいタイプのPostgresクラスタ（実際には1ノードのみ）です。Apache
`DataFusion <https://github.com/apache/datafusion>`_ をベースにしたベクトル化クエリエンジンを搭載しており、オブジェクトストレージ内のLakehouse列指向テーブル（ `Delta Lake protocol <https://delta.io/>`_ を使用）に対する高速クエリを実現します。

知っておくべきこと
^^^^^^^^^^^^^^^^^^

詳細については、 :ref:`関連概念 <関連概念>`  および :ref:`PGAA functions reference <PGAA functions reference>` 
を参照してください。ただし、知っておくべき主なポイントは次のとおりです。

- Postgres Lakehouse ノードは一時的です。

- Postgres Lakehouse ノードは、オブジェクト ストレージ内のベンチマーク
  データセットをクエリするように事前構成されています。

- Postgres Lakehouse
  は通常は読み取り専用ですが、それ以外はすべての有効な Postgres
  クエリをサポートします。

- システムテーブルは書き込み可能なので、ユーザーとロールを作成できます。これらのテーブルはアタッチされたブロックストレージに保存されるため、インスタンスの再起動後も保持され、バックアップ/リストア操作の一部として保存されます。Lakehouseテーブルは最終的にオブジェクトストレージに保存されるため、バックアップには含まれません。

基本的なアーキテクチャ
^^^^^^^^^^^^^^^^^^^^^^

次の図は、Lakehouse ノードのボックスの内容を示しています。

.. figure:: /images/level-300.png
   :width: 70% 
   :alt: Level 300 Architecture

   Level 300 Architecture

はじめる
--------

HCP
ポータルにログインしてプロジェクトを作成したら、クラスターを作成できます。

Lakehouseノードを作成する
^^^^^^^^^^^^^^^^^^^^^^^^^

プロジェクト ページで、 **[新規作成] > [Lakehouse Analytics]**
を選択します。

.. figure:: /images/create-cluster-dropdown.png
   :width: 70% 
   :alt: Create Lakehouse Node Dropdown

   Create Lakehouse Node Dropdown

**分析クラスターの作成** ページが開き、テンプレート ビルドまたはカスタム
ビルドを選択できます。

.. figure:: /images/choose-your-path.png
   :width: 70% 
   :alt: Create Lakehouse Node Wizard Step 1

   Create Lakehouse Node Wizard Step 1

**カスタムビルド** を選択し、 **最初から開始** を選択します。
**分析クラスターの作成**
ページが開き、クラスターのサイズと構成を選択できます。

.. figure:: /images/custom-build-wizard.png
   :width: 70% 
   :alt: Create Lakehouse Node Wizard Step 2

   Create Lakehouse Node Wizard Step 2

その後、 **クラスター**
ページに戻り、作成されたクラスターのステータスを確認できます。クラスターのプロビジョニングには10～15分かかる場合があります。

いくつかの注意事項:

- パスワードはご自身でご入力ください。安全なパスワードを作成し、パスワードマネージャーに保存してください。HCPはパスワードを保存しません。

- EDB Postgres Advanced ServerまたはEDB Postgres Extended Server
  を選択できます。

- クラスターのシャットダウン時に、NVMe
  ドライブ上のすべてのデータが失われます。

- システム テーブル内の永続データ (ユーザー、ロールなど)
  は、接続されたブロック ストレージ
  デバイスに保存され、再起動やバックアップ/復元サイクルを経ても保持されます。

- Postgres 16 のみがサポートされています。

Lakehouseノードの操作
---------------------

ノードに接続する
^^^^^^^^^^^^^^^^

EDB Postgres AI Platform
から他のクラスターに接続するのと同じ方法で、任意の Postgres
クライアントから Lakehouse
ノードに接続できます。クラスターの詳細ページに移動し、接続文字列をコピーしてください。

例えば、\ ``.pgpass`` の BLOB を ``~/.pgpass``
にコピーします（\ ``$YOUR_PASSWORD``
はクラスターの起動時に指定したパスワードに置き換えてください）。その後、接続文字列をコピーして、psql
または pgcli の引数として使用できます。

一般的に、どのPostgresクライアントでもデータベースに接続できます。すべてのイントロスペクションクエリが機能することを期待しており、機能しないクエリが見つかった場合はバグです。

制約を理解する
^^^^^^^^^^^^^^

- すべてのクラスタはEDB Postgres Advanced ServerまたはEDB Postgres
  Extended
  Serverを使用しています。そのため、接続時にこれらのフレーバーの定型テーブルがインストール内に表示されることをご承知おきください。

- クエリ可能なデータ（ベンチマークデータセットなど）は、オブジェクトストレージにデルタテーブルとして保存されます。すべてのクラスターは、スケールファクター1～1000のベンチマークデータ（TPC-H、TPC-DS、Clickbench）を含むストレージバケットを参照するように事前にロードされています。

- 現在、AWS のみがサポートされています。BYOA (Bring Your Own Account)
  はサポートされていません。

- EDB Postgres
  AIアカウントで有効化されている任意のリージョンにクラスターをデプロイできます。各リージョンには、ベンチマークデータのコピーが保存されたバケットがあります。そのため、クラスターを起動すると、最も近いロケーションのベンチマークデータが使用されます。

- クラスターは一時的なものです。システムテーブル（ロール、ユーザー、権限など）のデータを除き、ハードドライブにはデータは保存されません。クラスターを再起動するか、クラスターをバックアップしてから復元すると、これらのシステムテーブルが復元されます。ただし、オブジェクトストレージ内のデータはそのまま残ります。

- クラスターはオブジェクトストレージ内のデータに対する読み取り専用クエリをサポートしていますが、ユーザー作成などのためのシステムテーブルへの書き込みクエリはサポートしています。オブジェクトストレージに直接書き込むことはできません。また、テーブルを作成することもできません。

- 独自のデータをオブジェクト ストレージにロードする場合は、 :ref:`Reference - Bring your own data <Loading data>` 
  を参照してください。

ベンチマークデータセットを検査する
----------------------------------

ベンチマークデータセットを調べてください。すべてのクラスターには、すぐに使用できるベンチマークデータが用意されています。pgcli
を使用している場合は、\ ``\dn``
を実行して利用可能なテーブルを確認できます。

利用可能なベンチマーク データセットは次のとおりです。

- TPC-H、スケール係数1、10、100、1000

- TPC-DS、スケール係数1、10、100、1000

- ClickBench、1億行

- 10億行チャレンジ

ベンチマーク データセットの詳細については、 :ref:`Reference - Available benchmarking datasets <Benchmarking datasets>` 
を参照してください。

ベンチマークデータセットをクエリする
------------------------------------

いくつかの基本的なクエリを実行してみてください。

.. code:: sql

   edb_admin> select count(*) from clickbench.hits;
   +----------+
   | count    |
   |----------|
   | 99997497 |
   +----------+
   SELECT 1
   Time: 0.945s

   edb_admin> select count(*) from brc_1b.measurements;
   +------------+
   | count      |
   |------------|
   | 1000000000 |
   +------------+
   SELECT 1
   Time: 0.651s

！！！注記

詳細な注意事項と構文/クエリの互換性に関する情報については、 :ref:`PGAA functions reference <PGAA functions reference>` 
を参照してください。!!!
