Powershell 和 ClickHouse
Powershell and ClickHouse
我正在尝试将 Powershell 配置为 ETL 并想从 ClickHouse 获取数据,任何人都可以建议一个连接到 Powershell 数据库的示例吗?或者没有办法做到这一点?通过 ODBC,请求挂起,甚至 Select 1
.
$Cnn = new-object System.Data.Odbc.OdbcConnection("DSN=test");
$Cnn.Open()
$CmdCreate = $Cnn.CreateCommand()
$CmdCreate.CommandText = " select 1"
$CmdCreate.ExecuteNonQuery() # | Out-Null $Cnn.Close()
作为备用 ODBC 可以使用 ClickHouse HTTP interface:
$Env:clickhouse_server = '1.1.1.1'
$Env:user = 'user'
$Env:password = 'passw'
# pass credentials in URL
('SELECT version()' `
| Invoke-WebRequest "http://${Env:clickhouse_server}:8123?user=${Env:user}&password=${Env:password}" `
-Method 'POST' -UseBasicParsing).Content
# pass credentials in Headers
('SELECT version()' `
| Invoke-WebRequest "http://${Env:clickhouse_server}:8123" `
-Headers @{'X-ClickHouse-User'="${Env:user}"; 'X-ClickHouse-Key'="${Env:password}"} `
-Method 'POST' -UseBasicParsing).Content
考虑使用 python 访问 CH(参见 clickhouse_driver):
pip install clickhouse-driver
python
>>> from clickhouse_driver import Client
>>> import os
>>> client = Client(host=os.getenv('clickhouse_server'), user=os.getenv('user'), password=os.getenv('password'))
>>> client.execute('SELECT version()')
[('20.3.12.112',)]
>>>
我正在尝试将 Powershell 配置为 ETL 并想从 ClickHouse 获取数据,任何人都可以建议一个连接到 Powershell 数据库的示例吗?或者没有办法做到这一点?通过 ODBC,请求挂起,甚至 Select 1
.
$Cnn = new-object System.Data.Odbc.OdbcConnection("DSN=test");
$Cnn.Open()
$CmdCreate = $Cnn.CreateCommand()
$CmdCreate.CommandText = " select 1"
$CmdCreate.ExecuteNonQuery() # | Out-Null $Cnn.Close()
作为备用 ODBC 可以使用 ClickHouse HTTP interface:
$Env:clickhouse_server = '1.1.1.1'
$Env:user = 'user'
$Env:password = 'passw'
# pass credentials in URL
('SELECT version()' `
| Invoke-WebRequest "http://${Env:clickhouse_server}:8123?user=${Env:user}&password=${Env:password}" `
-Method 'POST' -UseBasicParsing).Content
# pass credentials in Headers
('SELECT version()' `
| Invoke-WebRequest "http://${Env:clickhouse_server}:8123" `
-Headers @{'X-ClickHouse-User'="${Env:user}"; 'X-ClickHouse-Key'="${Env:password}"} `
-Method 'POST' -UseBasicParsing).Content
考虑使用 python 访问 CH(参见 clickhouse_driver):
pip install clickhouse-driver
python
>>> from clickhouse_driver import Client
>>> import os
>>> client = Client(host=os.getenv('clickhouse_server'), user=os.getenv('user'), password=os.getenv('password'))
>>> client.execute('SELECT version()')
[('20.3.12.112',)]
>>>