ScalarDB Analytics データソー スリファレンス
このページは英語版のページが機械翻訳されたものです。英語版との間に矛盾または不一致がある場合は、英語版を正としてください。
このリファレンスガイドでは、ScalarDB Analytics のデータソース設定形式、プロバイダー固有の設定、およびデータ型マッピングに関する詳細情報を提供します。
ScalarDB Analytics を使用するには、ライセンスキー (試用ライセンスまたは商用ライセンス) が必要です。ライセンスキーをお持ちでない場合は、お問い合わせください。
データソース登録ファイル形式
データソースは、データソース登録ファイルを使用してCLIでカタログに登録されます。これらのファイルは以下の構造を持ちます。CLIコマンドの詳細については、CLIコマンドリファレンスを参照してください。
{
"catalog": "<catalog-name>", // データソースを登録するカタログ
"name": "<data-source-name>", // このデータソースの一意の名前
"type": "<database-type>", // データベースタイプ: postgres, mysql, scalardb, sqlserver, oracle, dynamodb, databricks, snowflake
"provider": {
// タイプ固有の接続設定
// 設定はデータベースタイプによって異なります
}
}
provider セクションには、type フィールドに基づいたデータソース固有の接続設定が含まれます。
タイプ別のプロバイダー設定
以下のセクションでは、サポートされている各データベースタイプのプロバイダー設定を示します:
- ScalarDB
- PostgreSQL
- MySQL
- Oracle
- SQL Server
- Databricks
- Snowflake
- DynamoDB
設定
ScalarDB の設定は以下の通りです。
configPath
- フィールド:
configPath - 説明: ScalarDB 設定ファイルへのパス。
例
{
"catalog": "production",
"name": "scalardb_source",
"type": "scalardb",
"provider": {
"configPath": "/path/to/scalardb.properties"
}
}
設定
PostgreSQL の設定は以下の通りです。
host
- フィールド:
host - 説明: PostgreSQL サーバーのホスト名。
port
- フィールド:
port - 説明: ポート番号。
username
- フィールド:
username - 説明: データベースユーザー。
password
- フィールド:
password - 説明: データベースパスワード。
database
- フィールド:
database - 説明: 接続するデータベース名。
例
{
"catalog": "production",
"name": "postgres_customers",
"type": "postgres",
"provider": {
"host": "postgres.example.com",
"port": 5432,
"username": "analytics_user",
"password": "secure_password",
"database": "customers"
}
}
設定
MySQL の設定は以下の通りです。
host
- フィールド:
host - 説明: MySQL サーバーのホスト名。
port
- フィールド:
port - 説明: ポート番号。
username
- フィールド:
username - 説明: データベースユーザー。
password
- フィールド:
password - 説明: データベースパスワード。
database
- フィールド:
database - 説明: インポートする特定のデータベース。省略した場合、すべてのデータベースがインポートされます。
- デフォルト値: なし (すべてのデータベースをインポート)
例
{
"catalog": "production",
"name": "mysql_orders",
"type": "mysql",
"provider": {
"host": "mysql.example.com",
"port": 3306,
"username": "analytics_user",
"password": "secure_password",
"database": "orders" // オプション - 省略した場合、すべてのデータベースがインポートされます
}
}
設定
Oracle の設定は以下の通りです。
host
- フィールド:
host - 説明: Oracle サーバーのホスト名。
port
- フィールド:
port - 説明: ポート番号。
username
- フィールド:
username - 説明: データベースユーザー。
password
- フィールド:
password - 説明: データベースパスワード。
serviceName
- フィールド:
serviceName - 説明: Oracle サービス名。
例
{
"catalog": "production",
"name": "oracle_warehouse",
"type": "oracle",
"provider": {
"host": "oracle.example.com",
"port": 1521,
"username": "analytics_user",
"password": "secure_password",
"serviceName": "ORCL"
}
}
設定
SQL Server の設定は以下の通りです。
host
- フィールド:
host - 説明: SQL Server のホスト名。
port
- フィールド:
port - 説明: ポート番号。
username
- フィールド:
username - 説明: データベースユーザー。
password
- フィールド:
password - 説明: データベースパスワード。
database
- フィールド:
database - 説明: 接続する特定のデータベース。
- デフォルト値: なし (デフォルトデータベースに接続)
secure
- フィールド:
secure - 説明: 暗号化を有効化。
- デフォルト値:
false
例
{
"catalog": "production",
"name": "sqlserver_analytics",
"type": "sqlserver",
"provider": {
"host": "sqlserver.example.com",
"port": 1433,
"username": "sa",
"password": "secure_password",
"database": "analytics", // オプション - 指定した場合、このデータベース のみがインポートされます
"secure": true // オプション - 暗号化を有効化
}
}
設定
Databricks (Databricks SQL/JDBC) の設定は以下の通りです。
host
- フィールド:
host - 説明: Databricks ワークスペースのホスト名(例:
adb-1234567890123.4.azuredatabricks.net)。
port
- フィールド:
port - 説明: ポート番号。
- デフォルト値: ドライバーのデフォルト。(任意)
httpPath
- フィールド:
httpPath - 説明: SQL ウェアハウスまたはクラスターの HTTP パス (例:
/sql/1.0/warehouses/xxxxxxxxxxxxxx)。
oAuthClientId
- フィールド:
oAuthClientId - 説明: Databricks SQL/JDBC 認証用の OAuth マシン間 (M2M) サービスプリンシパルの UUID またはアプリケーション ID。
oAuthSecret
- フィールド:
oAuthSecret - 説明: Databricks SQL/JDBC 認証用の OAuth マシン間 (M2M) サービスプリンシパルのシークレット。
catalog
- フィールド:
catalog - 説明: 既定で使用するカタログ。(任意)
例
{
"catalog": "production",
"name": "databricks_analytics",
"type": "databricks",
"provider": {
"host": "adb-1234567890123.4.azuredatabricks.net",
"port": 443,
"httpPath": "/sql/1.0/warehouses/xxxxxxxxxxxxxx",
"oAuthClientId": "YOUR_CLIENT_ID",
"oAuthSecret": "YOUR_CLIENT_SECRET",
"catalog": "main"
}
}
設定
Snowflake の設定は以下の通りです。
account
- フィールド:
account - 説明: Snowflake アカウント識別子 (例:
xy12345.ap-northeast-1)。
username
- フィールド:
username - 説明: Snowflake ユーザー。
password
- フィールド:
password - 説明: Snowflake ユーザーのプログラムアクセストークン。
database
- フィールド:
database - 説明: 解決/インポート対象とする既定のデータベース。(任意)
例
{
"catalog": "production",
"name": "snowflake_dwh",
"type": "snowflake",
"provider": {
"account": "YOUR-ACCOUNT",
"username": "analytics_user",
"password": "secure_password",
"database": "ANALYTICS"
}
}
設定
DynamoDB の設定は以下の通りです。
DynamoDB の認証は標準的な AWS SDK の認証情報プロバイダーチェーンを使用します。認証情報は以下の方法で設定できます:
- 環境変数 (
AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY) - AWS 認証情報ファ イル (
~/.aws/credentials) - IAM ロール (EC2、ECS、Lambda 上で実行する場合)
- AWS SSO または AWS SDK がサポートするその他の認証情報プロバイダー
詳細については、AWS SDK の認証情報プロバイダーに関するドキュメントを参照してください。
region
- フィールド:
region - 説明: AWS リージョン (例: us-east-1) 。
regionまたはendpointのいずれかを指定する必要があります (両方は指定できません)。
endpoint
- フィールド:
endpoint - 説明: カスタムエンドポイント URL。
regionまたはendpointのいずれかを指定する必要があります (両方は指定できません)。
schema
- フィールド:
schema - 説明: 完全なスキーマ定義。DynamoDB はスキーマレスなので、完全なスキーマ定義を提供する必要があります。
スキーマ構造
schema フィールドには以下の構造が必要です:
.schema.namespaces[]
- フィールド:
.schema.namespaces[] - 説明: 名前空間定義の配列。
.schema.namespaces[].names[]
- フィールド:
.schema.namespaces[].names[] - 説明: 名前空間名の配列 (文字列)。
.schema.namespaces[].tables[]
- フィールド:
.schema.namespaces[].tables[] - 説明: テーブル定義の配列。
.schema.namespaces[].tables[].name
- フィールド:
.schema.namespaces[].tables[].name - 説明: テーブル名。
.schema.namespaces[].tables[].columns[]
- フィールド:
.schema.namespaces[].tables[].columns[] - 説明: カラム定義の配列。
.schema.namespaces[].tables[].columns[].name
- フィールド:
.schema.namespaces[].tables[].columns[].name - 説明: カラム名。
.schema.namespaces[].tables[].columns[].type
- フィールド:
.schema.namespaces[].tables[].columns[].type - 説明: データ型。
.schema.namespaces[].tables[].columns[].nullable
- フィールド:
.schema.namespaces[].tables[].columns[].nullable - 説明: カラムがnull値を含むことができるかどうか。
- デフォルト値:
true
例
{
"catalog": "production",
"name": "dynamodb_events",
"type": "dynamodb",
"provider": {
"region": "us-east-1",
"schema": {
"namespaces": [
{
"names": ["production"],
"tables": [
{
"name": "user_events",
"columns": [
{ "name": "user_id", "type": "TEXT", "nullable": false },
{
"name": "event_time",
"type": "TIMESTAMP",
"nullable": false
},
{ "name": "event_type", "type": "TEXT" },
{ "name": "event_data", "type": "TEXT" }
]
}
]
}
]
}
}
}
カタログ情報リファレンス
このセクションでは、データソース別のカタログ構造マッピングとデータ型マッピングについて説明します。