I. 従来のデータ ウェアハウスの進化: クラウド データ ウェアハウス近年、データの「爆発的な」増加に伴い、ますます多くのデータが生成、収集、保存されるようになりました。膨大なデータの真の価値を掘り起こし、ビジネスチャンスを抽出し、将来に対する洞察を得ることは、現代の企業や組織にとって無視できない命題となっています。 データの量と複雑さが増すにつれて、データ分析と処理の技術アーキテクチャも進化しています。膨大なデータ分析に直面すると、従来の OLAP テクノロジー アーキテクチャの問題点がますます明らかになります。たとえば、容量の拡張と縮小には長い時間がかかり、リソースの使用率が低下し、コストが高くなります。運用・保守の構成が複雑で、専門の技術者の介入が必要になります。 このような問題を解決するために、クラウド データ ウェアハウスの概念が生まれました。従来のデータ ウェアハウス アーキテクチャとは異なり、クラウド ネイティブ データ ウェアハウスはクラウド プラットフォームの基本リソースを活用してリソースの動的な拡張と縮小を実現し、リソース使用率を最大化することで、実際の使用量に基づいた従量課金モデルを実現します。 クラウド ネイティブ データ プラットフォームである ByteHouse は、アーキテクチャ レベルから始まり、ストレージとコンピューティングを分離するクラウド ネイティブ アーキテクチャを通じてクラウド インフラストラクチャに完全に適応します。 ByteDance内で、ByteHouseはすでにユーザー成長ビジネス、広告、A/Bテストなど、分析アプリケーションシナリオの80%をサポートしています。その卓越した分析性能に加え、ByteHouseのすぐに使える従量課金制の機能により、企業や個人の参入障壁が大幅に下がり、わずか数分でデータ分析の魅力を体験できます。口先だけでは済まない。次に、ByteHouse クラウド データ ウェアハウスの強力な機能を実際のケースを通じて体験してみましょう。 II. ByteHouse をすぐに使い始める - 軽量クラウド データ ウェアハウスこの章では、ByteHouse Cloud Data Warehouse を使用して SSB ベンチマーク テストを実行します。読者に製品のパフォーマンスを理解させると同時に、製品内の各モジュールの機能を理解してもらい、データ分析の旅を開き、膨大なデータを分析することでデータ分析を加速させます。以下は、ByteHouse のアーキテクチャの概要です。 SSBベンチマークSSB (Star Schema Benchmark) は、マサチューセッツ州立大学ボストン校の研究者によって定義された実際のビジネス アプリケーションに基づくデータ モデルです。 SSB は TPC-H 標準の改良版です。主に、TPC-H のスノーフレーク モデルをより一般的なスター モデルに変更し、ベンチマーク クエリを複雑なアドホック クエリからより固定された構造の OLAP クエリに変更します。これは主に、OLAP エンジンと軽量データ ウェアハウス シナリオのクエリ パフォーマンスをシミュレートおよびテストするために使用されます。 SSB ベンチマークは比較的中立的で、実際のビジネス シナリオに近いため、学界や産業界で広く使用されています。 SSB ベンチマークにおける対応するテーブル構造を以下に示します。 SSB は主にスター モデルを採用しており、これには 1 つのファクト テーブル lineorder と 4 つのディメンション テーブル customer、part、dwdate、supplier が含まれていることがわかります。各ディメンション テーブルは、主キーを通じてファクト テーブルに関連付けられます。テストでは、複数のテーブルの関連付け、グループ化、複雑な条件、その他の組み合わせを含む 13 個の SQL クエリを実行します。詳細については、SSB ドキュメント (https://www.cs.umb.edu/~poneil/StarSchemaB.pdf) を参照してください。 ステップ1:公式サイトに登録し、ByteHouseを有効化するByteHouse Cloud Data Warehouse Volcano Engine の公式 Web サイトにアクセスし、Volcano Engine アカウントを登録し、実名認証を完了してから、製品コンソールにログインします。テスト用に製品を起動します。現在、ByteHouse は年間および月間サブスクリプションと従量課金制の 2 つのインスタンス モードをサポートしているため、ビジネス ニーズに応じて選択できます。 ByteHouse クラウド データ ウェアハウス Volcano Engine 公式ウェブサイト https://www.volcengine.com/product/bytehouse-cloud 製品コンソール https://console.volcengine.com/bytehouse ステップ2: 計算グループを作成するコンソールにログインすると、データベース テーブル管理、データの読み込み、SQL ワークシート、計算グループ、クエリ履歴、ロール管理など、いくつかの主要なモジュールが表示されます。それぞれ以下の機能があります。 データベース テーブル管理: データベース、データ テーブル、ビューなどのデータ オブジェクトを作成および管理するために使用されます。データの読み込み: オブジェクト ストレージ、Kafka などのさまざまなオフラインおよびリアルタイム データ ソースからデータを書き込むために使用されます。SQL ワークシート: インターフェイスで SQL クエリを編集、管理、実行します。コンピューティング グループ: データ クエリなどの操作を実行するための仮想コンピューティング リソースを作成および管理します。クエリ履歴: SQL の履歴実行レコード、ステータス、クエリの詳細などを表示するために使用されます。 データベースの作成やテーブルの作成、クエリなどの後続の操作を容易にするために、まずByteHouseコンソールでモデルLのコンピューティンググループを作成します(次の図を参照)。 コンピューティング グループは、オンデマンドでスケールアウトできる Bytehouse 内のコンピューティング リソースのクラスターです。コンピューティング グループは、DQL や DML などのデータ クエリ操作を実行するために必要な CPU、メモリ、一時ストレージなどのリソースを提供します。 ByteHouse コンピューティング グループは、弾力的な拡張と縮小、読み取りと書き込みの分離、ストレージとコンピューティングの分離などを実現でき、リソースに対するきめ細かい権限制御を実行できます。 ステップ3: データベーステーブルを作成するコンソールページでssb_``100という名前のデータベースを作成します 作成が完了したら、SQL ワークシート モジュールに入り、次のテーブル作成ステートメントを通じて 4 つのデータ テーブル (ファクト テーブル) を作成し、対応する SQL ステートメントを保存します。 テーブルssb_100 .customerを作成します ( C_CUSTKEY UInt32 、 C_NAME文字列、 C_ADDRESS文字列、 C_CITY LowCardinality (文字列)、 C_NATION LowCardinality (文字列)、 C_REGION LowCardinality (文字列)、 C_PHONE文字列、 C_MKTSEGMENT LowCardinality (文字列)、 C_PLACEHOLDER Nullable (文字列) ) ENGINE = CnchMergeTree ORDER BY ( C_CUSTKEY ); テーブルssb_100を作成します。行順序 ( LO_ORDERKEY UInt32 、 LO_LINENUMBER UInt8 、 LO_CUSTKEY UInt32 、 LO_PARTKEY UInt32 、 LO_SUPPKEY UInt32 、 LO_ORDERDATE日付、 LO_ORDERPRIORITY LowCardinality (文字列)、 LO_SHIPPRIORITY UInt8 、 LO_QUANTITY UInt8 、 LO_EXTENDEDPRICE UInt32 、 LO_ORDTOTALPRICE UInt32 、 LO_DISCOUNT UInt8 、 LO_REVENUE UInt32 、 LO_SUPPLYCOST UInt32 、 LO_TAX UInt8 、 LO_COMMITDATE日付、 LO_SHIPMODE LowCardinality (文字列)、 LO_PLACEHOLDER Nullable (文字列) ) ENGINE = CnchMergeTree PARTITION BY to Year ( LO_ORDERDATE ) ORDER BY ( LO_ORDERDATE , LO_ORDERKEY ); テーブルssb_100を作成します。一部 ( P_PARTKEY UInt32 、 P_NAME文字列、 P_MFGR LowCardinality (文字列)、 P_CATEGORY LowCardinality (文字列)、 P_BRAND LowCardinality (文字列)、 P_COLOR LowCardinality (文字列)、 P_TYPE LowCardinality (文字列)、 P_SIZE UInt8 、 P_CONTAINER LowCardinality (文字列)、 P_PLACEHOLDER Nullable (文字列) ) ENGINE = CnchMergeTree ORDER BY P_PARTKEY ; テーブルssb_100 .supplierを作成します。 ( S_SUPPKEY UInt32 、 S_NAME文字列、 S_ADDRESS文字列、 S_CITY LowCardinality (文字列)、 S_NATION LowCardinality (文字列)、 S_REGION LowCardinality (文字列)、 S_PHONE文字列、 S_PLACEHOLDER Nullable (文字列) ) ENGINE = CnchMergeTree ORDER BY S_SUPPKEY ; テーブルssb_100を作成します。 dwdate ( D_DATEKEY UInt32 、 D_DATE文字列、 D_DAYOFWEEK文字列--セクション2.6でサイズ8として定義されていますが、水曜日は9文字です D_MONTH文字列、 D_YEAR UInt32 、 D_YEARMONTHNUM UInt32 、 D_YEARMONTH文字列、 D_DAYNUMINWEEK UInt32 、 D_DAYNUMINMONTH UInt32 , D_DAYNUMINYEAR UInt32 、 D_MONTHNUMINYEAR UInt32 , D_WEEKNUMINYEAR UInt32 、 D_SELLINGSEASON文字列、 D_LASTDAYINWEEKFL UInt32 , D_LASTDAYINMONTHFL UInt32 , D_HOLIDAYFL UInt32 、 D_WEEKDAYFL UInt32 、 S_PLACEHOLDER Nullable (文字列) ) ENGINE = CnchMergeTree () ORDER BY ( D_DATEKEY );
SQL が実行されると、コンソールの左側にある対応するデータ オブジェクト ページに、作成された 5 つのワークシート (customer、dwdate、lineorder、part、supplier) が表示されます。 ステップ4: オブジェクトストレージからSSBデータをインポートするSSB_100 GB データセットを事前に生成し、オブジェクトストレージ (AWS S3 や Volcano Engine TOS など) に保存することで、データを ByteHouse に簡単にすばやくインポートして分析できます。この演習では、Volcano Engine TOS のデータ ソースを構成してデータをインポートします。 まず、データ読み込みモジュールで、新しいオブジェクトストレージデータソースを作成し、対応するキーを設定してVolcano Engineオブジェクトストレージに接続します。 新しいデータソースに接続したら、bytehouse-shared-datasetのストレージバケットと、対応するssb_100/lineorder.csvのパスを選択します。 以前に作成したデータベース ssb_100 と対応するテーブル lineorder を選択し、[作成] を押します。他の 4 つのワークシートのデータをロードする手順を繰り返します。 データソースに保存されるデータ項目数は以下のとおりです。インポートが完了すると、データ テーブル内の行数をカウントし、精度検証を実行するために使用されます。 インポート タスクを作成したら、「開始」をクリックしてインポート タスクを開始します。タスクが開始されると、リソースが割り当てられ、数秒以内にインポート タスクが初期化されます。インポート処理中は、推定時間とインポートの進行状況が表示されます。インポートタスクの実行詳細では、インポートステータス、インポート詳細ログ、構成情報などを表示できます。 ステップ5: データ処理と分析1. オリジナルクエリテスト SSB の 13 個のクエリ ステートメントを実行して、複数テーブルの関連付けや並べ替えなどのシナリオでパフォーマンス テストを実行します。クエリステートメントは次のとおりです。 --プレウォーム ssb_100から*を選択します。 C_CUSTKEYによる顧客注文記述制限100 ; ssb_100から*を選択します。 dwdate order by D_DATEKEY desc limit 100 ; ssb_100から*を選択します。 linearorder LO_ORDERKEYによる順序desc制限100 ; ssb_100から*を選択します。 P_PARTKEYによる部品順序、降順制限100 ; ssb_100から*を選択します。サプライヤー順序、 S_SUPPKEYによる降順制限100 ; ssb_100から*を選択します。 linearorder_flat LO_ORDERKEYによる順序、降順、制限100 ;
-- Q1.1 収益として合計( LO_EXTENDEDPRICE * LO_DISCOUNT )を選択 ssb_100より。行順序 ここで、 toYear ( LO_ORDERDATE ) = 1993 LO_DISCOUNTは1 ~ 3 かつLO_QUANTITY < 25 ;
-- Q1.2 収益として合計( LO_EXTENDEDPRICE * LO_DISCOUNT )を選択 ssb_100より。行順序 ここで、 toYYYYMM ( LO_ORDERDATE ) = 199401 LO_DISCOUNTは4 ~ 6 LO_QUANTITYは26 ~ 35です。
-- Q1.3 収益として合計( LO_EXTENDEDPRICE * LO_DISCOUNT )を選択 ssb_100より。行順序 ここで、 toISOWeek ( LO_ORDERDATE ) = 6 そしてtoYear ( LO_ORDERDATE ) = 1994 LO_DISCOUNTは5 ~ 7 LO_QUANTITYは26 ~ 35です。
-- Q2.1 LO_REVENUE、 LO_ORDERDATE 、 d_year 、 P_BRANDとしてsum ( LO_REVENUE )、 toYear ( LO_ORDERDATE )を選択 ssb_100より。線形順序、 ssb_100 。パーツ、 ssb_100 。サプライヤー ここで、 LO_PARTKEY = P_PARTKEY 、 LO_SUPPKEY = S_SUPPKEY P_CATEGORY = 'MFGR#53' 、 S_REGION = ' AMERICA' GROUP BY d_year 、 P_BRAND ;
-- Q2.2 SELECT sum ( LO_REVENUE )、 toYear ( LO_ORDERDATE ) AS year 、 P_BRAND ssb_100より。線形順序、 ssb_100 。パーツ、 ssb_100 。サプライヤー ここで、 LO_PARTKEY = P_PARTKEYかつLO_SUPPKEY = S_SUPPKEY P_BRAND > = 'MFGR#2221'かつP_BRAND <= 'MFGR#2228'かつS_REGION = 'ASIA' GROUP BY年、 P_BRAND ORDER BY year 、 P_BRAND ;
-- Q2.3 SELECT sum ( LO_REVENUE )、 toYear ( LO_ORDERDATE ) AS year 、 P_BRAND ssb_100より。線形順序、 ssb_100 。パーツ、 ssb_100 。サプライヤー ここで、 LO_PARTKEY = P_PARTKEYかつLO_SUPPKEY = S_SUPPKEY P_BRAND = 'MFGR#2239' 、 S_REGION = ' EUROPE' GROUP BY年、 P_BRAND ORDER BY year 、 P_BRAND ;
-- Q3.1 C_NATION 、 S_NATION 、 toYear ( LO_ORDERDATE ) ASyear 、 sum ( LO_REVENUE ) ASrevenueを選択します。 ssb_100より。行順序、 ssb_100 。パーツ、 ssb_100 。サプライヤー、 ssb_100 。お客様 ここで、 LO_PARTKEY = P_PARTKEY 、 LO_SUPPKEY = S_SUPPKEY 、 LO_CUSTKEY = C_CUSTKEY C_REGION = 'ASIA'かつS_REGION = 'ASIA'かつyear >= 1992かつyear < = 1997 GROUP BY C_NATION 、 S_NATION 、年 ORDER BY年ASC 、収益DESC ;
-- Q3.2 C_CITY 、 S_CITY 、 toYear ( LO_ORDERDATE ) ASyear 、 sum ( LO_REVENUE ) ASrevenueを選択します。 ssb_100より。行順序、 ssb_100 。パーツ、 ssb_100 。サプライヤー、 ssb_100 。お客様 ここで、 LO_PARTKEY = P_PARTKEY 、 LO_SUPPKEY = S_SUPPKEY 、 LO_CUSTKEY = C_CUSTKEY C_NATION = ' UNITED STATES'かつS_NATION = 'UNITED STATES'かつyear >= 1992かつyear <= 1997 C_CITY 、 S_CITY 、年でグループ化 ORDER BY年ASC 、収益DESC ;
-- Q3.3 C_CITY 、 S_CITY 、 toYear ( LO_ORDERDATE ) ASyear 、 sum ( LO_REVENUE ) ASrevenueを選択します。 ssb_100より。行順序、 ssb_100 。パーツ、 ssb_100 。サプライヤー、 ssb_100 。お客様 ここで、 LO_PARTKEY = P_PARTKEY 、 LO_SUPPKEY = S_SUPPKEY 、 LO_CUSTKEY = C_CUSTKEY かつ( C_CITY = 'UNITED KI1'またはC_CITY = 'UNITED KI5' )かつ( S_CITY = 'UNITED KI1'またはS_CITY = 'UNITED KI5' )かつ年>= 1992かつ年<= 1997 C_CITY 、 S_CITY 、年でグループ化 ORDER BY年ASC 、収益DESC ;
-- Q3.4 C_CITY 、 S_CITY 、 toYear ( LO_ORDERDATE ) ASyear 、 sum ( LO_REVENUE ) ASrevenueを選択します。 ssb_100より。行順序、 ssb_100 。パーツ、 ssb_100 。サプライヤー、 ssb_100 。お客様 ここで、 LO_PARTKEY = P_PARTKEY 、 LO_SUPPKEY = S_SUPPKEY 、 LO_CUSTKEY = C_CUSTKEY かつ( C_CITY = 'UNITED KI1'またはC_CITY = 'UNITED KI5' ) AND ( S_CITY = 'UNITED KI1'またはS_CITY = 'UNITED KI5' ) AND toYYYYMM ( LO_ORDERDATE ) = 199712 GROUP BY C_CITY 、 S_CITY 、年 ORDER BY年ASC 、収益DESC ;
-- Q4 .1 SELECT toYear ( LO_ORDERDATE ) AS year 、 C_NATION 、 sum ( LO_REVENUE - LO_SUPPLYCOST ) AS profit ssb_100より。行順序、 ssb_100 。パーツ、 ssb_100 。サプライヤー、 ssb_100 。お客様 ここで、 LO_PARTKEY = P_PARTKEY 、 LO_SUPPKEY = S_SUPPKEY 、 LO_CUSTKEY = C_CUSTKEY C_REGION = 'AMERICA'かつS_REGION = 'AMERICA'かつ( P_MFGR = ' MFGR#1'またはP_MFGR = 'MFGR#2' ) GROUP BY年、 C_NATION ORDER BY year ASC 、 C_NATION ASC ;
-- Q4.2 toYear ( LO_ORDERDATE ) AS year 、 S_NATION 、 P_CATEGORY 、 sum ( LO_REVENUE - LO_SUPPLYCOST ) AS profitを選択します。 ssb_100より。行順序、 ssb_100 。パーツ、 ssb_100 。サプライヤー、 ssb_100 。お客様 ここで、 LO_PARTKEY = P_PARTKEY 、 LO_SUPPKEY = S_SUPPKEY 、 LO_CUSTKEY = C_CUSTKEY かつC_REGION = 'AMERICA' AND S_REGION = 'AMERICA' AND ( year = 1997 OR year = 1998 ) AND ( P_MFGR = 'MFGR#1' OR P_MFGR = 'MFGR#2' ) 年、 S_NATION 、 P_CATEGORYでグループ化 ORDER BY year ASC 、 S_NATION ASC 、 P_CATEGORY ASC ;
-- Q4.3 toYear ( LO_ORDERDATE ) AS year 、 S_CITY 、 P_BRAND 、 sum ( LO_REVENUE - LO_SUPPLYCOST ) AS profitを選択します。 ssb_100より。線形順序、 ssb_100 。パーツ、 ssb_100 。サプライヤー ここで、 LO_PARTKEY = P_PARTKEYかつLO_SUPPKEY = S_SUPPKEY S_NATION = 'UNITED STATES' AND ( year = 1997 OR year = 1998 ) AND P_CATEGORY = 'MFGR#14' 年、 S_CITY 、 P_BRANDでグループ化 ORDER BY year ASC 、 S_CITY ASC 、 P_BRAND ASC ; 2. フラットテーブルテスト SSB データ セットのテストを容易にするために、SSB を書き直してスター モデルを平坦化し、分析用の大きな幅広のテーブルに変換することができます。 注: テーブルのフラット化を確実に実行するには、パラメータ SET max_memory_usage = 20000000000; を構成する必要があります。さらに、実行タイムアウトによる障害を回避するには、ByteHouse コンソール ([マイ アカウント] > [クエリ構成] > [クエリ タイムアウト]) でクエリ タイムアウトを 3600 秒に設定する必要があります。 最大メモリ使用量を20000000000に設定します。 send_timeoutを3600に設定します。 受信タイムアウトを3600に設定します。 ssb_100が存在しない場合はテーブルを作成します。線形順序フラット エンジン= CnchMergeTree to Yearによるパーティション化( LO_ORDERDATE ) ( LO_ORDERDATE 、 LO_ORDERKEY )による順序付け 選択 L . LO_ORDERKEYをLO_ORDERKEYとして、 L. LO_LINENUMBER をLO_LINENUMBERとして、 L. LO_CUSTKEYをLO_CUSTKEYとして、 L. LO_PARTKEYをLO_PARTKEYとして、 L. LO_SUPPKEYをLO_SUPPKEYとして、 L. LO_ORDERDATEとしてLO_ORDERDATE 、 L. LO_ORDERPRIORITYとしてLO_ORDERPRIORITY 、 L. LO_SHIPPRIORITYをLO_SHIPPRIORITYとして、 L. LO_QUANTITYをLO_QUANTITYとして、 L. LO_EXTENDEDPRICEをLO_EXTENDEDPRICEとして、 L. LO_ORDTOTALPRICEとしてLO_ORDTOTALPRICE 、 L . LO_DISCOUNTをLO_DISCOUNTとして、 L. LO_REVENUE をLO_REVENUEとして、 L. LO_SUPPLYCOST をLO_SUPPLYCOSTとして、 L . LO_TAXをLO_TAXとして、 L. LO_COMMITDATEとしてLO_COMMITDATE 、 L. LO_SHIPMODE をLO_SHIPMODEとして、 C. C_NAME をC_NAMEとして、 C. C_ADDRESSをC_ADDRESSとして、 C. C_CITYをC_CITYとして、 C. C_NATIONをC_NATIONとして、 C. C_REGIONをC_REGIONとして、 C. C_PHONEをC_PHONEとして、 C. C_MKTSEGMENT をC_MKTSEGMENTとして、 S . S_NAMEとしてS_NAME 、 S . S_ADDRESSをS_ADDRESSとして、 S . S_CITYをS_CITYとして、 S . S_NATIONはS_NATIONとして、 S . S_REGIONをS_REGIONとして、 S . S_PHONEをS_PHONEとして、 P . P_NAME をP_NAMEとして、 P . P_MFGRをP_MFGRとして、 P . P_CATEGORYをP_CATEGORYとして、 P . P_BRAND をP_BRANDとして、 P . P_COLORをP_COLORとして、 P . P_TYPEをP_TYPEとして、 P . P_SIZE はP_SIZEとして、 P . P_CONTAINERをP_CONTAINERとして ssb_100より。行順序をLとする 内部結合ssb_100 。顧客はC on Cです。 C_CUSTKEY = L 。 LO_カスタマーキー 内部結合ssb_100 。 S上のSとしてのサプライヤー。 S_SUPPKEY = L 。 LO_SUPPKEY 内部結合ssb_100 。部分をP上のPとして表します。 P_PARTKEY = L 。 LO_PARTKEY ; テーブルが作成された後、次に示すようにクエリ ステートメントを実行して SSB パフォーマンス テストが実行されます。 --F1.1 SELECT sum ( LO_EXTENDEDPRICE * LO_DISCOUNT ) AS収益 ssb_100より。ラインオーダーフラット WHERE toYear ( LO_ORDERDATE ) = 1993 1と3の間のLO_DISCOUNT かつLO_QUANTITY < 25 ; --F1.2 SELECT sum ( LO_EXTENDEDPRICE * LO_DISCOUNT ) AS収益 ssb_100より。ラインオーダーフラット WHERE toYYYYMM ( LO_ORDERDATE ) = 199401 4と6の間のLO_DISCOUNT かつ、 LO_QUANTITYが26から35の間である。 --F1.3 SELECT sum ( LO_EXTENDEDPRICE * LO_DISCOUNT ) AS収益 ssb_100より。ラインオーダーフラット WHERE toISOWeek ( LO_ORDERDATE ) = 6 AND toYear ( LO_ORDERDATE ) = 1994 5と7の間のLO_DISCOUNT かつ、 LO_QUANTITYが26から35の間である。 --F2.1 SELECT sum ( LO_REVENUE )、 toYear ( LO_ORDERDATE ) AS year 、 P_BRAND ssb_100より。ラインオーダーフラット P_CATEGORY = 'MFGR#12'かつS_REGION = 'AMERICA'の場合 GROUP BY年、 P_BRAND ORDER BY year 、 P_BRAND ; --F2.2 SELECT sum ( LO_REVENUE )、 toYear ( LO_ORDERDATE ) AS year 、 P_BRAND ssb_100より。ラインオーダーフラット P_BRAND >= 'MFGR#2221'かつP_BRAND <= 'MFGR#2228'かつS_REGION = 'ASIA' の場合 GROUP BY年、 P_BRAND ORDER BY year 、 P_BRAND ; --F2.3 SELECT sum ( LO_REVENUE )、 toYear ( LO_ORDERDATE ) AS year 、 P_BRAND ssb_100より。ラインオーダーフラット P_BRAND = 'MFGR#2239'かつS_REGION = 'EUROPE'の場合 GROUP BY年、 P_BRAND ORDER BY year 、 P_BRAND ; --F3.1 C_NATION 、 S_NATION 、 toYear ( LO_ORDERDATE ) ASyear 、 sum ( LO_REVENUE ) ASrevenueを選択します。 ssb_100より。ラインオーダーフラット C_REGION = 'ASIA'かつS_REGION = 'ASIA'かつyear >= 1992かつyear <= 1997 の場合 GROUP BY C_NATION 、 S_NATION 、年 ORDER BY年ASC 、収益DESC ; --F3.2 C_CITY 、 S_CITY 、 toYear ( LO_ORDERDATE ) ASyear 、 sum ( LO_REVENUE ) ASrevenueを選択します。 ssb_100より。ラインオーダーフラット C_NATION = 'UNITED STATES'かつS_NATION = 'UNITED STATES'かつyear >= 1992かつyear <= 1997 の場合 C_CITY 、 S_CITY 、年でグループ化 ORDER BY年ASC 、収益DESC ; --F3.3 C_CITY 、 S_CITY 、 toYear ( LO_ORDERDATE ) ASyear 、 sum ( LO_REVENUE ) ASrevenueを選択します。 ssb_100より。ラインオーダーフラット ここで、 ( C_CITY = 'UNITED KI1'またはC_CITY = 'UNITED KI5' )かつ( S_CITY = 'UNITED KI1'またはS_CITY = 'UNITED KI5' )かつyear >= 1992かつyear <= 1997 C_CITY 、 S_CITY 、年でグループ化 ORDER BY年ASC 、収益DESC ; --F3.4 C_CITY 、 S_CITY 、 toYear ( LO_ORDERDATE ) ASyear 、 sum ( LO_REVENUE ) ASrevenueを選択します。 ssb_100より。ラインオーダーフラット ここで( C_CITY = 'UNITED KI1'またはC_CITY = 'UNITED KI5' )かつ( S_CITY = 'UNITED KI1'またはS_CITY = 'UNITED KI5' )かつtoYYYYMM ( LO_ORDERDATE ) = 199712 C_CITY 、 S_CITY 、年でグループ化 ORDER BY年ASC 、収益DESC ; --F4.1 toYear ( LO_ORDERDATE ) AS year 、 C_NATION 、 sum ( LO_REVENUE - LO_SUPPLYCOST ) AS profitを選択します。 ssb_100より。ラインオーダーフラット C_REGION = 'AMERICA'かつS_REGION = 'AMERICA'かつ( P_MFGR = 'MFGR#1'またはP_MFGR = 'MFGR#2' ) GROUP BY年、 C_NATION ORDER BY year ASC 、 C_NATION ASC ; --F4.2 toYear ( LO_ORDERDATE ) AS year 、 S_NATION 、 P_CATEGORY 、 sum ( LO_REVENUE - LO_SUPPLYCOST ) AS profitを選択します。 ssb_100より。ラインオーダーフラット C_REGION = 'AMERICA'かつS_REGION = 'AMERICA'かつ( year = 1997またはyear = 1998 )かつ( P_MFGR = 'MFGR#1'またはP_MFGR = 'MFGR#2' )の場合 年、 S_NATION 、 P_CATEGORYでグループ化 ORDER BY year ASC 、 S_NATION ASC 、 P_CATEGORY ASC ; --F4.3 toYear ( LO_ORDERDATE ) AS year 、 S_CITY 、 P_BRAND 、 sum ( LO_REVENUE - LO_SUPPLYCOST ) AS profitを選択します。 ssb_100より。ラインオーダーフラット S_NATION = 'UNITED STATES'かつ( year = 1997またはyear = 1998 )かつP_CATEGORY = 'MFGR#14' 年、 S_CITY 、 P_BRANDでグループ化 ORDER BY year ASC 、 S_CITY ASC 、 P_BRAND ASC ; III.クエリ結果とコスト分析実行後、統計クエリの結果は次のようになります。 注: クエリ結果が表示されるまでの時間は、構成パラメータとリソース構成によって異なる場合があります。クエリの最適化については、ByteHouse にお問い合わせください。 クエリが完了すると、ByteHouse コンピューティング グループの詳細ページで、クエリの合計数や CPU/メモリ使用率などのワークロードを表示して、コンピューティング リソースの使用状況を確認できます。 このストレス テストに基づく推定によると、コンピューティング リソースとストレージ リソースの消費量は次の表のようになります。 ByteHouse Cloud Data Warehouse バージョンは使用量に応じて課金されるため、アイドル時のコンピューティング グループの自動シャットダウンをサポートし、アイドル料金は請求されないため、リソースを大幅に節約できます。テストが完了した後、推定総消費量は約31.23元になります。 |