EXPORT を使用したデータのエクスポート
このトピックでは、StarRocks クラスター内の指定されたテーブルやパーティションからデータを CSV データファイルとして外部ストレージシステムにエクスポートする方法について説明します。外部ストレージシステムは、分散ファイルシステム HDFS や AWS S3 などのクラウドストレージシステムである可能性があります。
注意
StarRocks テーブルからデータをエクスポートするには、その StarRocks テーブルに対して EXPORT 権限を持つユーザーである必要があります。EXPORT 権限がない場合は、GRANT に従って、StarRocks クラスターに接続するために使用するユーザーに EXPORT 権限を付与してください。
背景情報
バージョン 2.4 以前では、StarRocks はデータをエクスポートする際に、StarRocks クラスターと外部ストレージシステム間の接続を設定するためにブローカーに依存していました。そのため、EXPORT ステートメントで使用するブローカーを指定するために WITH BROKER "<broker_name>" を入力する必要がありました。これを「ブローカーを使用したアンロード」と 呼びます。ブローカーは独立したステートレスサービスであり、ファイルシステムインターフェースと統合されており、StarRocks が外部ストレージシステムにデータをエクスポートするのを支援します。
バージョン 2.5 以降、StarRocks はデータをエクスポートする際に、StarRocks クラスターと外部ストレージシステム間の接続を設定するためにブローカーに依存しなくなりました。そのため、EXPORT ステートメントでブローカーを指定する必要はありませんが、WITH BROKER キーワードは保持する必要があります。これを「ブローカーを使用しないアンロード」と呼びます。
ただし、データが HDFS に保存されている場合、ブローカーを使用しないアンロードが機能しないことがあり、ブローカーを使用したアンロードに頼ることができます。
- 複数の HDFS クラスターにデータをエクスポートする場合、これらの HDFS クラスターごとに独立したブローカーを展開して構成する必要があります。
- 単一の HDFS クラスターにデータをエクスポートし、複数の Kerberos ユーザーを構成している場合、独立したブローカーを 1 つ展開する必要があります。
サポートされているストレージシステム
- 分散ファイルシステム HDFS
- AWS S3 などのクラウドストレージシステム
注意事項
-
一度にエクスポートするデータは数十 GB を超えないことをお勧めします。一度に非常に大量のデータをエクスポートすると、エクスポートが失敗する可能性があり、再試行のコストが増加します。
-
ソースの StarRocks テーブルに大量のデータが含まれている場合、テーブルのすべてのデータがエクスポートされるまで、テーブルのパーティションの一部からのみデータをエクスポートすることをお勧めします。
-
StarRocks クラスター内の FEs が再起動したり、新しい Leader FE が選出されたりすると、エクスポートジョブが失敗します。この場合、エクスポートジョブを再度送信する必要があります。
-
StarRocks クラスター内の FEs が再起動したり、新しい Leader FE が選出されたりした後にエクスポートジョブが終了すると、SHOW EXPORT ステートメントによって返されるジョブ情報の一部が失われる可能性があります。
-
StarRocks はベーステーブルのデータのみをエクスポートします。ベーステーブル上に作成されたマテリアライズドビューのデータはエクスポートしません。
-
エクスポートジョブはデータスキャンを必要とし、これが I/O リソースを占有し、クエリの遅延を増加させます。