データソースのインポートとエクスポート
superset cliを使用すると、データソースをYAMLから、またはYAMLにインポートおよびエクスポートできます。データソースにはデータベースが含まれます。データは次の階層で編成されている必要があります
├──databases
|  ├──database_1
|  |  ├──table_1
|  |  |  ├──columns
|  |  |  |  ├──column_1
|  |  |  |  ├──column_2
|  |  |  |  └──... (more columns)
|  |  |  └──metrics
|  |  |     ├──metric_1
|  |  |     ├──metric_2
|  |  |     └──... (more metrics)
|  |  └── ... (more tables)
|  └── ... (more databases)
データソースをYAMLにエクスポートする
次のコマンドを実行することで、現在のデータソースを標準出力に出力できます
superset export_datasources
データソースをZIPファイルに保存するには、次のコマンドを実行します
superset export_datasources -f <filename>
デフォルトでは、デフォルト(null)値は省略されます。それらを含めるには、-dフラグを使用します。逆参照を含める場合(たとえば、テーブルが属するテーブルIDを含む列)、-bフラグを使用します。
または、UIを使用してデータソースをエクスポートすることもできます
- ソース -> データベースを開いて、単一または複数のデータベースに関連付けられているすべてのテーブルをエクスポートします。(1つ以上のテーブルの場合はテーブル)
- エクスポートするアイテムを選択します。
- アクション -> YAMLにエクスポートをクリックします
- UIからエクスポートしたアイテムをインポートする場合は、その親要素の中にネストする必要があります。たとえば、データベースはデータベースの下にネストする必要があり、テーブルはデータベース要素の中にネストする必要があります。
YAMLインポートを使用してインポートできるすべてのフィールドの網羅的なリストを取得するには、次のコマンドを実行します
superset export_datasource_schema
念のため、逆参照を含めるには-bフラグを使用できます。
データソースのインポート
ZIPファイルからデータソースをインポートするには、次のコマンドを実行します
superset import_datasources -p <path / filename>
オプションのユーザー名フラグ-uは、データソースのインポートに使用されるユーザーを設定します。デフォルトは「admin」です。例:
superset import_datasources -p <path / filename> -u 'admin'
レガシーデータソースのインポート
Supersetの古いバージョンから現在のバージョンへ
Supersetバージョン4.x.xを使用して古いバージョン(2.x.xまたは3.x.x)からインポートする場合、インポートはコマンドlegacy_import_datasourcesとしてサポートされ、JSONまたはJSONのディレクトリが必要です。オプションは、再帰の場合は-r、ユーザーを指定する場合は-uです。オプションなしのレガシーインポートの例
superset legacy_import_datasources -p <path or filename>
Supersetの古いバージョンから古いバージョンへ
Supersetの古いバージョン(2.x.xおよび3.x.x)を使用する場合、コマンドはimport_datasourcesです。 ZIPファイルとYAMLファイルがサポートされており、それらを切り替えるには機能フラグVERSIONED_EXPORTが使用されます。 VERSIONED_EXPORTがTrueの場合、import_datasourcesはZIPファイルを予期し、そうでない場合はYAMLを予期します。例:
superset import_datasources -p <path or filename>
VERSIONED_EXPORTがFalseの場合、パスを指定すると、yamlまたはymlで終わるすべてのファイルが解析されます。追加のフラグを適用できます(たとえば、指定されたパスを再帰的に検索するため)
superset import_datasources -p <path> -r
同期フラグ-sは、指定された要素をファイルと同期するためのパラメーターを受け取ります。これはメタデータベースの内容を削除する可能性があるため、注意してください。例:
superset import_datasources -p <path / filename> -s columns,metrics
これは、Supersetメタデータベースの<path /filename>で見つかったすべてのデータソースのすべてのメトリックと列を同期します。つまり、YAMLで指定されていない列とメトリックは削除されます。テーブルを列、メトリックに追加する場合、それらも同期されます。
同期フラグ(-s)を指定しない場合、インポートはフィールドの追加と更新(上書き)のみを行います。たとえば、次のYAMLをファイルに保存し、import_datasourcesコマンドを実行することで、サンプルデータセットのテーブルrandom_time_seriesの列dsにverbose_nameを追加できます。
databases:
- database_name: main
  tables:
  - table_name: random_time_series
    columns:
    - column_name: ds
      verbose_name: datetime