すべてのプロダクト
Search
ドキュメントセンター

E-MapReduce:Spark Load

最終更新日:Mar 26, 2026

Spark Load は、外部 Spark クラスターのリソースを使用してデータを前処理し、Doris に一括で非同期にインポートする方法です。Hadoop 分散ファイルシステム (HDFS) または Hive テーブルから 10 GB 以上〜テラバイト規模の既存データを初期移行する際に適しており、ETL 処理を Spark にオフロードすることで、ご利用の Doris クラスターへの計算負荷を大幅に軽減できます。

MySQL プロトコルを使用して Spark Load ジョブを送信および管理します。SHOW LOAD コマンドでジョブのステータスを確認できます。

小規模なデータ量や Spark からアクセスできないシステムに保存されたデータの場合は、代わりに Stream Load または Broker Load を使用してください。Broker Load は Spark クラスターを必要としませんが、Doris クラスターのリソースをより多く消費します。

前提条件

開始前に、以下の要件を満たしていることを確認してください。

  • 実行中の Spark クラスター(バージョン 2.4.5 以降)

  • YARN モードを使用する場合、実行中の YARN を含む Hadoop クラスター(バージョン 2.5.2 以降)

  • ソースデータを含む HDFS または Hive テーブルへのアクセス権

  • Doris 内の Spark リソースに対する USAGE_PRIV 権限

  • fe.conf 内で enable_spark_loadtrue に設定されていること

基本概念

Spark ETL:ETL ジョブは Spark 上で実行され、Doris にデータを取り込む前に前処理を行います。前処理には、グローバル辞書(BITMAP 列用)の構築、パーティション分割、ソート、データの集計が含まれます。

ブローカー:HDFS などのリモートストレージシステムへの読み取りアクセスを Doris に提供する、独立したステートレスなプロセスです。フロントエンド(FE)ノードおよびバックエンド(BE)ノードは、ブローカーを使用して ETL の出力ファイルを転送します。

グローバル辞書:生の列値を整数エンコードされた値に変換するマッピング構造です。Roaring Bitmap を使用した BITMAP 集計列へのデータインポート時に必要です。グローバル辞書は、データソースが Hive テーブルの場合にのみ作成できます。

ユースケース

Spark Load は以下のケースに適しています。

  • 初期一括移行:10 GB 以上〜テラバイト規模の既存データを Doris に初めてロードする場合

  • HDFS ベースのデータソース:Spark からアクセス可能な HDFS または Hive テーブルに保存されたデータ

  • BITMAP 前処理:インポート前にグローバル辞書によるエンコーディングが必要な列を含むデータ

仕組み

MySQL クライアントを通じて Spark Load ジョブを送信します。FE ノードはメタデータを記録し、成功応答を返します。その後、ジョブは以下の 5 段階を経て実行されます。

                 |
            +----v----+
            |   FE    |---------------------------------+
            +----+----+                                 |
                 | 3. FE send push tasks                |
                 | 5. FE publish version                |
    +------------+------------+                         |
    |            |            |                         |
+---v---+    +---v---+    +---v---+                     |
|  BE   |    |  BE   |    |  BE   |                     |1. FE submit Spark ETL job
+---^---+    +---^---+    +---^---+                     |
    |4. BE push with broker   |                         |
+---+---+    +---+---+    +---+---+                     |
|Broker |    |Broker |    |Broker |                     |
+---^---+    +---^---+    +---^---+                     |
    |            |            |                         |
+---+------------+------------+---+ 2.ETL +-------------v---------------+
|               HDFS              +------->       Spark cluster         |
|                                 <-------+                             |
+---------------------------------+       +-----------------------------+
  1. FE ノードが Spark クラスターに抽出・変換・書き出し(ETL)ジョブを送信します。

  2. Spark クラスターが ETL ジョブを実行し、グローバル辞書を構築し、データをパーティション分割・ソート・集計します。

  3. FE ノードが前処理済みデータのディレクトリを取得し、BE ノードにプッシュジョブの実行をスケジュールします。

  4. BE ノードがブローカーを使用して HDFS からファイルをプルし、Doris ストレージフォーマットに変換します。

  5. FE ノードが新しいバージョンを公開し、インポートを完了します。

グローバル辞書

必要なタイミング

Doris の BITMAP 列は Roaring Bitmap を使用しており、整数入力が必要です。BITMAP 集計列へのデータインポート時、Spark Load は ETL フェーズ中に生の値を整数にエンコードするためのグローバル辞書を構築できます。この辞書は、元の値とエンコード済み値をマッピングする Hive テーブル構造として保存されます。

重要

グローバル辞書は、Hive テーブルからのインポート時のみ作成可能であり、HDFS ファイルからの直接インポートではサポートされていません。

構築方法

  1. ソースデータを一時的な Hive テーブル(hive_table)に読み込みます。

  2. 値を重複排除し、一意な生の値を distinct_value_table に格納します。

  3. 生の値とエンコード済み値の両方を含む列を持つ dict_table を作成します。

  4. distinct_value_tabledict_table の間で LEFT JOIN を実行し、ウィンドウ関数を使用して新しい値をエンコードし、結果を dict_table に書き戻します。

  5. dict_tablehive_table を結合し、生の値をエンコード済み整数に置き換えます。

  6. エンコード済みの hive_table を残りの ETL パイプラインに入力し、Doris にインポートします。

データ前処理(DPP)

Spark ETL ジョブは、以下の DPP ステップを実行します。

  1. HDFS または Hive テーブルからデータを読み込みます。

  2. フィールドマッピングおよび式ベースの変換を適用します。パーティションメタデータに基づいてデータのバケット化用に bucket_id フィールドを生成します。

  3. Doris テーブルのロールアップメタデータからロールアップツリーを構築します。

  4. ロールアップツリーをトラバースし、レイヤーごとにデータを集計します(各レイヤーは直前のレイヤーから導出されます)。

  5. bucket_id に基づいて集計データをバケットに分散し、HDFS に書き込みます。

  6. ブローカーが HDFS から出力ファイルをプルし、Doris BE ノードにプッシュします。

Hive Bitmap UDF

Spark Load は、Hive Bitmap UDF を使用して Hive で生成されたビットマップデータを Doris に直接インポートすることをサポートしています。

Spark リソースの構成

Spark Load ジョブを送信する前に、Spark クラスターを Doris 内の外部リソースとして登録する必要があります。Doris は Resource Management モジュールを使用して外部リソースを追跡および管理します。

リソースの作成

CREATE EXTERNAL RESOURCE resource_name
PROPERTIES
(
  type = spark,
  spark_conf_key = spark_conf_value,
  working_dir = path,
  broker = broker_name,
  broker.property_key = property_value,
  broker.hadoop.security.authentication = kerberos,
  broker.kerberos_principal = doris@YOUR.COM,
  broker.kerberos_keytab = /home/doris/my.keytab
  broker.kerberos_keytab_content = ASDOWHDLAWI********ALDJSDIWALD
)

以下の表は主なパラメーターを説明しています。

パラメーター必須説明
typeはいspark に設定します。
spark.masterはいyarn または spark://host:port に設定します。
spark.submit.deployModeはいデプロイメントモード:cluster または client
spark.hadoop.yarn.resourcemanager.addressspark.master=yarnYARN ResourceManager のアドレス。
spark.hadoop.fs.defaultFSspark.master=yarnデフォルトの HDFS ファイルシステムアドレス。
working_dirあり(ETL 用)ETL 出力を保存する HDFS ディレクトリ。例:hdfs://host:port/tmp/doris
brokerはい(ETL 用)ALTER SYSTEM ADD BROKER で登録されたブローカーの名前。
broker.property_keyいいえブローカーが ETL 中間ファイルを読み取るための認証プロパティ。
broker.hadoop.security.authenticationKerberos 使用時kerberos に設定します。
broker.kerberos_principalKerberos 使用時認証用の Kerberos プリンシパル。
broker.kerberos_keytabKerberos 使用時ブローカーサーバー上の keytab ファイルのパス。
broker.kerberos_keytab_contentKerberos 使用時keytab ファイルの Base64 エンコード済みコンテンツ。broker.kerberos_keytab とのいずれか一方を使用します。

Spark 構成パラメーターの完全なリストについては、「Spark Configuration」をご参照ください。

例:YARN クラスターモード

CREATE EXTERNAL RESOURCE "spark0"
PROPERTIES
(
  "type" = "spark",
  "spark.master" = "yarn",
  "spark.submit.deployMode" = "cluster",
  "spark.jars" = "xxx.jar,yyy.jar",
  "spark.files" = "/tmp/aaa,/tmp/bbb",
  "spark.executor.memory" = "1g",
  "spark.yarn.queue" = "queue0",
  "spark.hadoop.yarn.resourcemanager.address" = "127.0.0.1:9999",
  "spark.hadoop.fs.defaultFS" = "hdfs://127.0.0.1:10000",
  "working_dir" = "hdfs://127.0.0.1:10000/tmp/doris",
  "broker" = "broker0",
  "broker.username" = "user0",
  "broker.password" = "password0"
);

例:Spark スタンドアロンクライアントモード

CREATE EXTERNAL RESOURCE "spark1"
PROPERTIES
(
  "type" = "spark",
  "spark.master" = "spark://127.0.0.1:7777",
  "spark.submit.deployMode" = "client",
  "working_dir" = "hdfs://127.0.0.1:10000/tmp/doris",
  "broker" = "broker1"
);

例:Kerberos 認証付きクラスター

CREATE EXTERNAL RESOURCE "spark_on_kerberos"
PROPERTIES
(
  "type" = "spark",
  "spark.master" = "yarn",
  "spark.submit.deployMode" = "cluster",
  "spark.jars" = "xxx.jar,yyy.jar",
  "spark.files" = "/tmp/aaa,/tmp/bbb",
  "spark.executor.memory" = "1g",
  "spark.yarn.queue" = "queue0",
  "spark.hadoop.yarn.resourcemanager.address" = "127.0.0.1:9999",
  "spark.hadoop.fs.defaultFS" = "hdfs://127.0.0.1:10000",
  "working_dir" = "hdfs://127.0.0.1:10000/tmp/doris",
  "broker" = "broker0",
  "broker.hadoop.security.authentication" = "kerberos",
  "broker.kerberos_principal" = "doris@YOUR.COM",
  "broker.kerberos_keytab" = "/home/doris/my.keytab"
);

リソースの管理

リソースの表示

SHOW RESOURCES
SHOW PROC "/resources"

通常のアカウントは、USAGE_PRIV 権限を持つリソースのみを表示できます。root および admin アカウントはすべてのリソースを表示できます。

権限の付与および取り消し

-- 特定のリソースに対する USAGE_PRIV をユーザーに付与
GRANT USAGE_PRIV ON RESOURCE "spark0" TO "user0"@"%";

-- 特定のリソースに対する USAGE_PRIV をロールに付与
GRANT USAGE_PRIV ON RESOURCE "spark0" TO ROLE "role0";

-- すべてのリソースに対する USAGE_PRIV をユーザーに付与
GRANT USAGE_PRIV ON RESOURCE * TO "user0"@"%";

-- すべてのリソースに対する USAGE_PRIV をロールに付与
GRANT USAGE_PRIV ON RESOURCE * TO ROLE "role0";

-- 特定のリソースに対する USAGE_PRIV をユーザーから取り消し
REVOKE USAGE_PRIV ON RESOURCE "spark0" FROM "user0"@"%";

リソースの削除

DROP RESOURCE resource_name

Spark クライアントの構成

FE ノードは内部で spark-submit を実行して Spark Load ジョブをディスパッチします。ジョブ送信前に、FE ノード上で Spark クライアントを構成してください。Spark 2.4.5 またはそれ以降の 2.x バージョン をダウンロードします。

Spark ホームディレクトリの構成

Spark クライアントを FE ノードと同じマシン上のディレクトリに配置します。fe.conf 内の spark_home_default_dir をこのディレクトリを指すように設定します。デフォルト値は FE ルートからの相対パスで lib/spark2x です。このパラメーターは空にできません。

Spark 依存関係パッケージの構成

Spark クライアントの jars/ フォルダ内のすべての JAR ファイルを ZIP ファイルにパッケージ化します。fe.conf 内の spark_resource_path をこの ZIP ファイルのパスに設定します。空のままにした場合、FE ノードはルートディレクトリ内の lib/spark2x/jars/spark-2x.zip を検索し、ファイルが見つからない場合はエラーを返します。

Spark Load ジョブが送信されると、依存関係パッケージが HDFS のリモートディレクトリにアップロードされます。リモートパスは以下の構造になります。

__spark_repository__spark0/
    |-__archive_1.0.0/
    |        |-__lib_990325d2c0d1d5e45bf675e54e44fb16_spark-dpp-1.0.0-jar-with-dependencies.jar
    |        |-__lib_7670c29daf535efe3c9b923f778f61fc_spark-2x.zip
    |-__archive_1.1.0/
    |        |-__lib_64d5696f99c379af2bee28c1c84271d5_spark-dpp-1.1.0-jar-with-dependencies.jar
    |        |-__lib_1bbb74bb6b264a270bc7fca3e964160f_spark-2x.zip
    |-__archive_1.2.0/
    |        |-...

リモートパスは working_dir/{cluster_id} 内にあり、_spark_repository_{resource_name} という名前です。FE ノードは、spark-2x.zip とともに Dynamic Partition Pruning (DPP) 依存関係パッケージもアップロードします。依存関係ファイルがリモートリポジトリにすでに存在する場合は、再アップロードされません。

YARN クライアントの構成

FE ノードは YARN コマンドを使用してアプリケーションのステータスを照会および終了します。FE ノード上で YARN クライアントを構成してください。Hadoop 2.5.2 またはそれ以降の 2.x バージョン をダウンロードします。

YARN 実行可能ファイルパスの構成

YARN クライアントを FE ノードと同じマシン上に配置します。fe.conf 内の yarn_client_path を YARN バイナリ実行ファイルのパスに設定します。デフォルト値は FE ルートからの相対パスで lib/yarn-client/hadoop/bin/yarn です。

YARN 構成ディレクトリの構成(オプション)

FE ノードが YARN コマンドを実行する際、一時的な構成ディレクトリ内に core-site.xml および yarn-site.xml を生成します。デフォルトパスは FE ルートからの相対パスで lib/yarn-config です。このパスを変更するには、fe.conf 内の yarn_config_dir を設定します。

Spark Load ジョブの送信

完全な構文リファレンスについては、MySQL クライアント内で HELP SPARK LOAD を実行してください。

構文

LOAD LABEL load_label
    (data_desc, ...)
    WITH RESOURCE resource_name
    [resource_properties]
    [PROPERTIES (key1=value1, ... )]

-- load_label:
    db_name.label_name

-- data_desc (HDFS ファイル):
    DATA INFILE ('file_path', ...)
    [NEGATIVE]
    INTO TABLE tbl_name
    [PARTITION (p1, p2)]
    [COLUMNS TERMINATED BY separator]
    [(col1, ...)]
    [COLUMNS FROM PATH AS (col2, ...)]
    [SET (k1=f1(xx), k2=f2(xx))]
    [WHERE predicate]

-- data_desc (Hive テーブル):
    DATA FROM TABLE hive_external_tbl
    [NEGATIVE]
    INTO TABLE tbl_name
    [PARTITION (p1, p2)]
    [SET (k1=f1(xx), k2=f2(xx))]
    [WHERE predicate]

-- resource_properties:
    (key2=value2, ...)

サポートされるデータソースは、HDFS 内の CSV ファイルおよび Hive 外部テーブルです。その他の規則は Broker Load の規則に従います。

パラメーター

データ記述パラメーター

データソースとして CSV ファイルおよび Hive テーブルのみがサポートされています。その他の規則は Broker Load と同一です。

ジョブパラメーター

ジョブパラメーター(PROPERTIES 内で設定)はインポートジョブ全体に適用され、Broker Load と同様の規則に従います。

ジョブ単位の Spark リソース設定のオーバーライド

クラスターレベルのリソース構成を変更せずに、単一のジョブに対して Spark リソース設定をオーバーライドするには、インラインで指定します。

WITH RESOURCE 'spark0'
(
  "spark.driver.memory" = "1g",
  "spark.executor.memory" = "3g"
)

オーバーライドは現在のジョブにのみ適用されます。

例 1:HDFS ファイルからのインポート

LOAD LABEL db1.label1
(
    DATA INFILE("hdfs://abc.com:8888/user/palo/test/ml/file1")
    INTO TABLE tbl1
    COLUMNS TERMINATED BY ","
    (tmp_c1,tmp_c2)
    SET
    (
        id=tmp_c2,
        name=tmp_c1
    ),
    DATA INFILE("hdfs://abc.com:8888/user/palo/test/ml/file2")
    INTO TABLE tbl2
    COLUMNS TERMINATED BY ","
    (col1, col2)
    where col1 > 1
)
WITH RESOURCE 'spark0'
(
    "spark.executor.memory" = "2g",
    "spark.shuffle.compress" = "true"
)
PROPERTIES
(
    "timeout" = "3600"
);

例 2:Hive テーブルからのインポート

まず、Doris 内に外部 Hive テーブルを作成します。

CREATE EXTERNAL TABLE hive_t1
(
    k1 INT,
    K2 SMALLINT,
    k3 varchar(50),
    uuid varchar(100)
)
ENGINE=hive
properties
(
  "database" = "tmp",
  "table" = "t1",
  "hive.metastore.uris" = "thrift://0.0.0.0:8080"
);

次に、ロードジョブを送信します。Doris のターゲットテーブルの列は、外部 Hive テーブル内に存在している必要があります。

LOAD LABEL db1.label1
(
    DATA FROM TABLE hive_t1
    INTO TABLE tbl1
    SET
    (
        uuid=bitmap_dict(uuid)
    )
)
WITH RESOURCE 'spark0'
(
    "spark.executor.memory" = "2g",
    "spark.shuffle.compress" = "true"
)
PROPERTIES
(
    "timeout" = "3600"
);

例 3:Hive テーブルからの BINARY ビットマップデータのインポート

ソース Hive 列が BINARY 型で、spark-dpporg.apache.doris.load.loadv2.dpp.BitmapValue クラスを使用してシリアル化されたデータの場合にこの方法を使用します。

外部 Hive テーブルを作成します。

CREATE EXTERNAL TABLE hive_t1
(
    k1 INT,
    K2 SMALLINT,
    k3 varchar(50),
    uuid varchar(100) -- Hive テーブルでは BINARY 型
)
ENGINE=hive
properties
(
  "database" = "tmp",
  "table" = "t1",
  "hive.metastore.uris" = "thrift://0.0.0.0:8080"
);

binary_bitmap を使用してロードジョブを送信します。

LOAD LABEL db1.label1
(
    DATA FROM TABLE hive_t1
    INTO TABLE tbl1
    SET
    (
        uuid=binary_bitmap(uuid)
    )
)
WITH RESOURCE 'spark0'
(
    "spark.executor.memory" = "2g",
    "spark.shuffle.compress" = "true"
)
PROPERTIES
(
    "timeout" = "3600"
);
重要

binary_bitmap は、データソースとして Hive テーブルを必要とします。

例 4:パーティション化された Hive テーブルからのインポート

Hive テーブル定義:

CREATE TABLE test_partition(
    id int,
    name string,
    age int
)
PARTITIONED BY (dt string)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
STORED AS TEXTFILE;

Doris ターゲットテーブル定義:

CREATE TABLE IF NOT EXISTS test_partition_04
(
    dt date,
    id int,
    name string,
    age int
)
UNIQUE KEY(`dt`, `id`)
DISTRIBUTED BY HASH(`id`) BUCKETS 1
PROPERTIES (
    "replication_allocation" = "tag.location.default: 1"
);

Spark リソースを作成し、ロードジョブを送信します。

CREATE EXTERNAL RESOURCE "spark_resource"
PROPERTIES
(
  "type" = "spark",
  "spark.master" = "yarn",
  "spark.submit.deployMode" = "cluster",
  "spark.executor.memory" = "1g",
  "spark.yarn.queue" = "default",
  "spark.hadoop.yarn.resourcemanager.address" = "localhost:50056",
  "spark.hadoop.fs.defaultFS" = "hdfs://localhost:9000",
  "working_dir" = "hdfs://localhost:9000/tmp/doris",
  "broker" = "broker_01"
);

LOAD LABEL demo.test_hive_partition_table_18
(
    DATA INFILE("hdfs://localhost:9000/user/hive/warehouse/demo.db/test/dt=2022-08-01/*")
    INTO TABLE test_partition_04
    COLUMNS TERMINATED BY ","
    FORMAT AS "csv"
    (id,name,age)
    COLUMNS FROM PATH AS (`dt`)
    SET
    (
        dt=dt,
        id=id,
        name=name,
        age=age
    )
)
WITH RESOURCE 'spark_resource'
(
    "spark.executor.memory" = "1g",
    "spark.shuffle.compress" = "true"
)
PROPERTIES
(
    "timeout" = "3600"
);

ロードジョブにおけるグローバル辞書

ターゲット Doris テーブルに BITMAP 集計列がある場合、SET 句で bitmap_dict を指定すると、グローバル辞書の作成がトリガーされます。

SET (doris_field_name = bitmap_dict(hive_field_name))
重要

グローバル辞書の作成は、データソースが Hive テーブルの場合にのみサポートされます。

インポートジョブの確認

Spark Load ジョブは非同期です。ジョブ送信時にラベルを記録し、それを使用してステータスを確認します。

SHOW LOAD ORDER BY createtime DESC LIMIT 1\G

出力例:

*************************** 1. row ***************************
         JobId: 76391
         Label: label1
         State: FINISHED
      Progress: ETL:100%; LOAD:100%
          Type: SPARK
       EtlInfo: unselected.rows=4; dpp.abnorm.ALL=15; dpp.norm.ALL=28133376
      TaskInfo: cluster:cluster0; timeout(s):10800; max_filter_ratio:5.0E-5
      ErrorMsg: N/A
    CreateTime: 2019-07-27 11:46:42
  EtlStartTime: 2019-07-27 11:46:44
 EtlFinishTime: 2019-07-27 11:49:44
 LoadStartTime: 2019-07-27 11:49:44
LoadFinishTime: 2019-07-27 11:50:16
           URL: http://1.1.*.*:80**/proxy/application_15866****3848_0035/
    JobDetails: {"ScannedRows":28133395,"TaskNumber":1,"FileNumber":1,"FileSize":200000}

Spark Load 固有のフィールドは、Broker Load と以下のように異なります。

フィールド説明
Stateジョブのライフサイクル:PENDINGETLLOADINGFINISHED(失敗時は CANCELLED)。
Progress2 つのコンポーネントで構成:ETL(Spark 前処理の進捗)および LOAD(BE プッシュの進捗)。LOAD の進捗は「インポートジョブ内の全レプリカにおけるインポート済みタブレット数 ÷ インポートジョブのタブレット総数 × 100 %」で算出されます。すべてのタブレットがプッシュされると LOAD は 99 % に到達し、バージョンが公開された時点で 100 % になります。
TypeSpark Load ジョブでは常に SPARK です。
JobDetailsETL フェーズ後に更新されます。スキャンされた行数、タスク数、ファイル数、ファイルサイズを含みます。
URLETL ジョブの YARN アプリケーションページへのリンク。
インポートの進捗は線形ではありません。進捗がない期間があっても、必ずしもジョブが停止しているとは限りません。

すべてのフィールドの詳細な説明については、「Broker Load」をご参照ください。

ログの確認

Spark Load はジョブ送信時にログファイルを生成します。ログは以下の場所に保存されます。

{FE_ROOT}/log/spark_launcher_log/spark_launcher_{load_job_id}_{label}.log

ログは 3 日間保持され、FE ノードからジョブメタデータとともに削除されます。

ジョブのキャンセル

インポートジョブが FINISHED または CANCELLED 状態でない場合、ラベルを指定してインポートジョブをキャンセルできます。完全な構文については、HELP CANCEL LOAD を実行してください。

システム構成

以下の fe.conf パラメーターは、すべての Spark Load ジョブにグローバルに適用されます。

パラメーターデフォルト説明
enable_spark_loadfalseSpark Load および外部リソースの作成を有効にします。true に設定して有効化します。
spark_load_default_timeout_second259200(3 日)デフォルトのジョブタイムアウト(秒単位)。
spark_home_default_dirfe/lib/spark2xSpark クライアントのルートディレクトリ。
spark_resource_path(空)パッケージ化された Spark 依存関係 ZIP ファイルのパス。
spark_launcher_log_dirfe/log/spark_launcher_logSpark Load ログファイルのディレクトリ。
yarn_client_pathfe/lib/yarn-client/hadoop/bin/yarnYARN バイナリ実行ファイルのパス。
yarn_config_dirfe/lib/yarn-configYARN 構成ファイル(core-site.xmlyarn-site.xml)が生成されるディレクトリ。

次のステップ

  • Broker Load — 小規模データセットまたは非 Spark 環境向けのシンプルなインポート方法

  • Stream Load — リアルタイムまたは小規模バッチシナリオ向けの同期インポート