製品アップデート
製品お知らせ
INSERT…SELECT… ステートメント内のSELECTクエリを列ストレージで高速化し、結果を内部ネットワーク経由で読み書きインスタンスに転送して対象テーブルに書き込むことが可能です。詳細な機能説明はETLライトバックの高速化をご参照ください。INSERT...SELECT...の高速化のみサポートしており、UPDATE...SELECT...およびDELETE...SELECT...などのシナリオの高速化はサポートしていません。INSERT…SELECT…文のSELECTクエリが比較的単純な場合、読み取り専用分析エンジンからデータを読み取って読み書きインスタンスにライトバックすると、追加のネットワークオーバーヘッドが発生します。読み書きインスタンスから直接データを読み取る場合と比較して、その利点はあまり顕著ではありません。INSERT…SELECT…文のSELECTクエリ結果セットのデータ量が大きい場合、主なパフォーマンスボトルネックは結果セットがネットワーク経由で転送され、読み書きインスタンスに書き込まれるプロセスにあります。このシナリオでは、本機能を使用してパフォーマンスを最適化することはできません。INSERT…SELECT… のSQL実行シナリオのみサポートしています。パラメータ名 | パラメータ説明 | 既定値 | パラメータ値 |
libra_etl_to_rw | ライトバック機能を有効にするかどうかを制御します。 | off | on:ライトバック機能を有効にします。実行を意味します。 off:ライトバック機能を無効にします。値がoffの場合、 INSERT…SELECT…文を実行すると権限が不足しているというエラーが発生します。 |
libra_concurrent_etl | 読み書きインスタンスへのライトバック時に並行書き込みを有効にするかどうかを制御します。 | off | on: 並行ライトバックを有効にします。並行ライトバックは結果のライトバック効率を向上させますが、マルチスレッド間での書き込みのトランザクション一貫性は保証できません。 off:コンカレントライトバックを無効にします。この値に設定すると、読み書きインスタンスへのライトバックデータは単一のトランザクション内で実行されます。 |
libra_etl_concurrency | 読み書きインスタンスへのライトバックにおけるコンカレントスレッド数を制御します。libra_concurrent_etl が on に設定されている場合にのみ有効になります。 | 1 | 設定可能な範囲:[1 - 読み書きインスタンスのCPUコア数]。整数値で設定可能で、最大値は読み書きインスタンスのCPUコア数です。 注意: マルチコンカレントライトバックを使用すると実行速度が向上しますが、コンカレント数が過度に高いと読み書きインスタンスが書き込み負荷に耐えられず、インスタンスのパフォーマンスが低下する可能性があります。 |
set libra_etl_to_rw=on;set libra_concurrent_etl=on;set libra_etl_concurrency=4;INSERT INTO database1.table1 select a.t1,b.t2,a.t2,b.t3 from a,b where a.t1=b.t1 and a.t5='x';set libra_concurrent_etl=off;set libra_etl_to_rw=off;
INSERT /*+ SET_VAR(libra_etl_to_rw=ON) SET_VAR(libra_concurrent_etl=ON) SET_VAR(libra_etl_concurrency=4)*/ INTO database1.table1 select a.t1,b.t2,a.t2,b.t3 from a,b where a.t1=b.t1 and a.t5='x';
set libra_etl_to_rw=on;set libra_concurrent_etl=off;set libra_etl_concurrency=1;create table t1 (supp_nation VARCHAR(50),cust_nation VARCHAR(50),l_year INT,revenue DECIMAL);INSERT INTO t1 SELECTsupp_nation, cust_nation, l_year, sum(volume) as revenuefrom (select n1.n_name as supp_nation, n2.n_name as cust_nation,extract(year from l_shipdate) as l_year,l_extendedprice * (1 - l_discount) as volumefrom supplier, lineitem, orders, customer, nation n1, nation n2where s_suppkey = l_suppkeyand o_orderkey = l_orderkeyand c_custkey = o_custkeyand s_nationkey = n1.n_nationkeyand c_nationkey = n2.n_nationkeyand ((n1.n_name = 'JAPAN' and n2.n_name = 'INDIA')or (n1.n_name = 'INDIA' and n2.n_name = 'JAPAN'))and l_shipdate between '1995-01-01' and '1996-12-31') as shippinggroup by supp_nation, cust_nation, l_yearorder by supp_nation, cust_nation, l_year;
読み取り専用インスタンスにおけるSELECTの時間 | ライトバック機能が有効になっていません。 読み書きインスタンスでのINSERT…SELECT…の実行時間 | ライトバック機能を有効にする 読み取り専用分析エンジンにおけるINSERT…SELECT…の実行時間 |
0.57 | 232.77 | 0.61 |
set libra_etl_to_rw=on;set libra_concurrent_etl=off;set libra_etl_concurrency=1;CREATE TABLE t2(p_brand VARCHAR(10),p_type VARCHAR(25),p_size INTEGER,supplier_cnt INTEGER);INSERT INTO t2 SELECTp_brand,p_type,p_size,count(distinct ps_suppkey) as supplier_cntfrompartsupp,partwherep_partkey = ps_partkeyand p_brand <> 'Brand#45'and p_type not like 'MEDIUM POLISHED%'and p_size in (49, 14, 23, 45, 19, 3, 36, 9)and ps_suppkey not in (selects_suppkeyfromsupplierwheres_comment like '%Customer%Complaints%')group byp_brand,p_type,p_sizeorder bysupplier_cnt desc,p_brand,p_type,p_size;
読み取り専用インスタンスにおけるSELECTの時間 | ライトバック機能が有効になっていません。 読み書きインスタンスでのINSERT…SELECT…の実行時間 | ライトバック機能を有効にする 読み取り専用分析エンジンにおけるINSERT…SELECT…の実行時間 |
0.15 | 8.77 | 0.61 |
set libra_etl_to_rw=on;set libra_concurrent_etl=on;set libra_etl_concurrency=8;CREATE TABLE IF NOT EXISTS lineitem ( L_ORDERKEY INTEGER NOT NULL,L_PARTKEY INTEGER NOT NULL,L_SUPPKEY INTEGER NOT NULL,L_LINENUMBER INTEGER NOT NULL,L_QUANTITY DECIMAL(15,2) NOT NULL,L_EXTENDEDPRICE DECIMAL(15,2) NOT NULL,L_DISCOUNT DECIMAL(15,2) NOT NULL,L_TAX DECIMAL(15,2) NOT NULL,L_RETURNFLAG CHAR(1) NOT NULL,L_LINESTATUS CHAR(1) NOT NULL,L_SHIPDATE DATE NOT NULL,L_COMMITDATE DATE NOT NULL,L_RECEIPTDATE DATE NOT NULL,L_SHIPINSTRUCT CHAR(25) NOT NULL,L_SHIPMODE CHAR(10) NOT NULL,L_COMMENT VARCHAR(44) NOT NULL , primary key(L_ORDERKEY, L_LINENUMBER));INSERT INTO lineitem_t SELECT*fromlineitem;
コンカレンシーの実行をする | ライトバック機能が有効になっていません。 読み書きインスタンスでのINSERT…SELECT…の実行時間 | ライトバック機能を有効にする 読み取り専用分析エンジンにおけるINSERT…SELECT…の実行時間 |
コンカレンシーの有効化しません。 | 622.7 | 1441.02 |
コンカレンシー数:8 | | 259.20 |
コンカレンシー数:16 | | 181.79 |
コンカレンシー数:32 | | 185.64 |
フィードバック