Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PowerBI certification changes #349

Merged
merged 99 commits into from
Jan 5, 2022
Merged
Show file tree
Hide file tree
Changes from 96 commits
Commits
Show all changes
99 commits
Select commit Hold shift + click to select a range
040552f
Added Tableau Connector to OpenSearch SQL
Nov 17, 2021
c8ddfb9
Merge pull request #1 from Bit-Quill/migrate-jdbc-tableau-connector
Nov 18, 2021
952ff01
Added CEILING and FLOOR functions
Nov 18, 2021
dd357bc
Merge pull request #2 from Bit-Quill/dialect-ceilfloor-AOS220
Nov 18, 2021
580e1af
Added IFNULL function
Nov 18, 2021
a4d2c0c
Added Kyle's fix for ADDDATE and SUBDATE with resulting 00:00:00 bein…
Nov 18, 2021
10aba05
Added MIN and MAX for two string arguments
Nov 18, 2021
5a90ca7
Merge pull request #3 from Bit-Quill/timestamp-issue
Nov 18, 2021
fa32866
Fixed return type for MID function redefenitions, part of AOS-202
Yury-Fridlyand Nov 19, 2021
b852f9d
Added CAST functions to convert to int or string as part of AOS-202
Yury-Fridlyand Nov 19, 2021
65437b2
Added HEXBINX and HEXBINY functions from the templace without any mod…
Yury-Fridlyand Nov 20, 2021
2e50a43
Fixed cast to use the OSSQL type
Yury-Fridlyand Nov 20, 2021
177d132
Added parenthesis to avoid opensearch-project/sql/issues/293
Yury-Fridlyand Nov 20, 2021
2355abf
Merge pull request #6 from Bit-Quill/dialect-strings-AOS-202-CAST
Yury-Fridlyand Nov 20, 2021
0df001a
Pulled from main from OpenSearch
Nov 22, 2021
8596513
Merge branch 'main' of github.com:Bit-Quill/opensearch-project-sql in…
Nov 22, 2021
f212e35
Modified Timestamp conversion formula
Nov 22, 2021
2df3f26
Merge pull request #8 from Bit-Quill/dialect-expr-logical-AOS205
Nov 23, 2021
7aaf59d
Merge pull request #5 from Bit-Quill/dialect-fix-MID-return-type-AOS-202
Yury-Fridlyand Nov 23, 2021
8d8fa1a
Merge pull request #7 from Bit-Quill/dialect-math.hexbin-AOS-195
Yury-Fridlyand Nov 23, 2021
385a41b
Added comment to TimestampType
Nov 23, 2021
26dbb7e
Updated Company Name accroding to the customer's request
Yury-Fridlyand Nov 23, 2021
3a5271e
Merge pull request #9 from Bit-Quill/update-vendor-AOS-231
Yury-Fridlyand Nov 24, 2021
4c63b64
Updated Vendor Name as well
Yury-Fridlyand Nov 24, 2021
edd2159
Merge pull request #10 from Bit-Quill/update-vendor-AOS-231-part-2
Yury-Fridlyand Nov 25, 2021
3f3fa1f
Added few small changes to simplify connector developing and debugging
Yury-Fridlyand Dec 1, 2021
6f046dc
Typo fix
Yury-Fridlyand Dec 1, 2021
f529282
Added a simple test from TDVT: case bool0 from test calcs_data (an ex…
Yury-Fridlyand Dec 1, 2021
b215357
Modified the driver to recognize its support for conversion of types
Dec 4, 2021
b4f3e91
Removed changes from a different branch
Dec 4, 2021
431e01a
Removed changes from a different branch
Dec 4, 2021
e8dafaa
Made the connector convert keyword columns to string columns
Dec 6, 2021
a22afac
Fix requested by PR review
Yury-Fridlyand Dec 7, 2021
47c3445
Merge pull request #11 from Bit-Quill/pbi-connector-dbg-tricks
Yury-Fridlyand Dec 7, 2021
4a97b6c
Modified integration tests to reflect support for conversion types
Dec 7, 2021
f295608
Removed connector changes
Dec 7, 2021
bd49c92
Merge pull request #13 from Bit-Quill/pbi-add-a-tdvt-test-AOS-234
Yury-Fridlyand Dec 8, 2021
284376e
Change values to bitmasks
Dec 8, 2021
8b4e6d2
Merge pull request #14 from Bit-Quill/type-conversion
Dec 8, 2021
f3af5e1
Add timestamp as a type for the driver
Dec 9, 2021
5e91eb4
Added timestamp to SQLGetTypeInfo for the ODBC Driver
Dec 10, 2021
1817773
Reverted some previous changes
Dec 10, 2021
bb59319
Removed generated test output file
Dec 10, 2021
bbeed55
Merge pull request #15 from Bit-Quill/driver-timestamp
Dec 14, 2021
463350c
Merge branch 'main' of github.com:opensearch-project/sql into powerbi…
Dec 14, 2021
766abf4
Renamed SqlOdbcPBIConnector to OpenSearch
Dec 14, 2021
d4cc709
According to AOS-248, we have to build the server address string prop…
Yury-Fridlyand Dec 15, 2021
78434e9
Merge branch 'powerbi-main' into pbi-connector-build-server-string-AO…
Yury-Fridlyand Dec 15, 2021
0f3cab0
Added version and disable trace output as per Microsoft's feedback
Dec 15, 2021
2336a80
Added documentation for the OpenSearch connector
Dec 15, 2021
d5227b8
Renamed connector markdown file to follow naming conventions
Dec 15, 2021
0cde588
Changed image file extention as it was not being detected by GitHub
Dec 15, 2021
562ee41
Updating docs according to PR #16 comments.
Yury-Fridlyand Dec 16, 2021
396ce1c
Added GitHub actions script to build Tableau and Power BI connector. …
Yury-Fridlyand Dec 17, 2021
1d3cceb
A typo fix in yml
Yury-Fridlyand Dec 17, 2021
c277fe2
A dummy commit to make GitHub Actions start the desired workflow
Yury-Fridlyand Dec 17, 2021
2be30f3
Workflow fix - pack Tableau ODBC connector instead of JDBC one
Yury-Fridlyand Dec 17, 2021
604adbf
Fix line endings in the workflow file
Yury-Fridlyand Dec 17, 2021
91dd569
Another dummy commit to start the desired workflow
Yury-Fridlyand Dec 17, 2021
6b89593
Fix paths in the GitHub workflow
Yury-Fridlyand Dec 17, 2021
015fa7b
Modified workflow to trigger on changes of itself
Yury-Fridlyand Dec 17, 2021
081392e
Path fix for preparation step
Yury-Fridlyand Dec 17, 2021
450d483
Added some changes to the second PBI connector - they should differ m…
Yury-Fridlyand Dec 17, 2021
a62bdd1
Renamed PBI connector files
Yury-Fridlyand Dec 17, 2021
47530d0
Moved Tableau JDBC connector to bi-connectors
Yury-Fridlyand Dec 17, 2021
21e0bdf
Added packing Tableau JDBC connector
Yury-Fridlyand Dec 17, 2021
f5692cc
Renamed Power BI connector as "OpenSearch Project"
Yury-Fridlyand Dec 17, 2021
a432ac2
Renamed output artifact
Yury-Fridlyand Dec 17, 2021
b8d14e9
Update SqlOdbcPBIConnector.pq according to PR review notes
Yury-Fridlyand Dec 18, 2021
7a83e2d
Update SqlOdbcPBIConnector.pq according to PR review notes
Yury-Fridlyand Dec 18, 2021
26d29ac
Modified code that builds the server string
Yury-Fridlyand Dec 18, 2021
6d432ee
Merge branch 'pbi-connector-build-server-string-AOS-248' of github.co…
Yury-Fridlyand Dec 18, 2021
f6b808b
Merge pull request #17 from Bit-Quill/naming-convention
Dec 18, 2021
fe18c68
Merge branch 'powerbi-main' into pbi-connector-build-server-string-AO…
Yury-Fridlyand Dec 18, 2021
f53a46d
Merge branch 'powerbi-main' into add-github-workflow-pack-bi-connecto…
Yury-Fridlyand Dec 18, 2021
3c8910b
Merge branch 'powerbi-main' of github.com:Bit-Quill/opensearch-projec…
Dec 19, 2021
e9ec9fb
Fixed grammatical errors, added a docs directory, and updated the con…
Dec 20, 2021
64539dc
Removed md file as it was moved to the docs directory
Dec 20, 2021
017cae1
Fixed grammatical errors and updated the old power bi support document
Dec 20, 2021
45810b7
Removed extra line
Dec 20, 2021
624c4ab
Merge pull request #18 from Bit-Quill/connector-documentation
Dec 20, 2021
4cadfd1
Disabled building Tableau ODBC connector, because it is not ready for…
Yury-Fridlyand Dec 20, 2021
6e37870
Updated workflow step description
Yury-Fridlyand Dec 20, 2021
3b4b026
Merge branch 'powerbi-main' into pbi-connector-build-server-string-AO…
Yury-Fridlyand Dec 20, 2021
9151460
Merge pull request #16 from Bit-Quill/pbi-connector-build-server-stri…
Yury-Fridlyand Dec 20, 2021
ccb52f4
Removed packing ODBC driver for Tableau (re: 4cadfd18).
Yury-Fridlyand Dec 20, 2021
2e67626
Updated workflow, because connector source files were renamed after m…
Yury-Fridlyand Dec 21, 2021
741c963
Merge pull request #19 from Bit-Quill/add-github-workflow-pack-bi-con…
Dec 21, 2021
3bb0941
Revert "Add GitHub workflow to pack BI connectors"
Yury-Fridlyand Dec 21, 2021
10d5061
Merge pull request #20 from Bit-Quill/revert-19-add-github-workflow-p…
Yury-Fridlyand Dec 21, 2021
1234bc9
Changed string replacement in the main connector file
Yury-Fridlyand Dec 21, 2021
1bd65af
Merge branch 'powerbi-main' into add-github-workflow-pack-bi-connecto…
Yury-Fridlyand Dec 21, 2021
b287841
Script was modified according to PR comments
Yury-Fridlyand Dec 23, 2021
7211482
Merge pull request #21 from Bit-Quill/add-github-workflow-pack-bi-con…
Yury-Fridlyand Dec 23, 2021
0194958
Removed Tableau ODBC connector
Yury-Fridlyand Dec 23, 2021
116cd49
Merge pull request #23 from Bit-Quill/remove-tableau-odbc-connector
Yury-Fridlyand Dec 23, 2021
b14b4e8
Merge branch 'main' of github.com:opensearch-project/sql into powerbi…
Dec 28, 2021
c89a86c
Merged OpenSearch-sql main to this branch and updated links as per th…
Dec 28, 2021
21997d1
Merge branch 'main' of github.com:opensearch-project/sql into powerbi…
Jan 5, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
60 changes: 60 additions & 0 deletions .github/workflows/bi-connectors.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
name: Build connectors for BI tools

on:
push:
paths:
- 'bi-connectors/PowerBIConnector/**'
- 'bi-connectors/TableauConnector/**'
- '.github/workflows/bi-connectors.yml'

jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Pack Tableau JDBC connector
id: pack-tableau-jdbc
run: |
zip -r opensearch_sql_jdbc.taco . -x *.taco
working-directory: bi-connectors/TableauConnector/opensearch_sql_jdbc
- name: Prepare Power BI ODBC connector
run: |
cp OpenSearch.pq OpenSearch.m
working-directory: bi-connectors/PowerBIConnector
- name: Pack Power BI ODBC connector
id: pack-powerbi-odbc-os-proj
run: |
zip OpenSearchProject.mez *.png *.m *.resx *.pqm
working-directory: bi-connectors/PowerBIConnector
- name: Prepare Power BI ODBC connector for 'Amazon OpenSearch Service'
id: prep-powerbi-odbc-amz-os-svc
run: |
sed -i 's/<value>OpenSearch Project<\/value>/<value>Amazon OpenSearch Service<\/value>/g' resources.resx
sed -i 's/Documentation.Name = "OpenSearch Project"/Documentation.Name = "Amazon OpenSearch Service"/g' OpenSearch.m
sed -i 's/section OpenSearch;/section AmazonOpenSearchConnector;/' OpenSearch.m
sed -i 's/\[DataSource.Kind="OpenSearch", Publish="OpenSearch.Publish"\]/[DataSource.Kind="AmazonOpenSearchConnector", Publish="AmazonOpenSearchConnector.Publish"]/g' OpenSearch.m
sed -i 's/OpenSearch.Contents/AmazonOpenSearchConnector.Contents/g' OpenSearch.m
sed -i 's/OpenSearch.Publish/AmazonOpenSearchConnector.Publish/g' OpenSearch.m
sed -i 's/OpenSearch.Icons/AmazonOpenSearchConnector.Icons/g' OpenSearch.m
sed -i 's/OpenSearchImpl/AmazonOpenSearchConnectorImpl/g' OpenSearch.m
sed -i 's/OpenSearchType/AmazonOpenSearchConnectorType/g' OpenSearch.m
sed -i 's/OpenSearch = \[/AmazonOpenSearchConnector = [/' OpenSearch.m
# sed -i 's/"opensearch-sql"/"Amazon-OpenSearch-Service"/g' OpenSearch.m
working-directory: bi-connectors/PowerBIConnector
- name: Pack Power BI ODBC connector for 'Amazon OpenSearch Service'
id: pack-powerbi-odbc-amz-os-svc
run: |
zip AmazonOpenSearchService.mez *.png *.m *.resx *.pqm
working-directory: bi-connectors/PowerBIConnector
- name: Upload Tableau JDBC connector
if: steps.pack-tableau-jdbc.outcome == 'success'
uses: actions/upload-artifact@v2
with:
name: TableauConnectors
path: bi-connectors/TableauConnector/opensearch_sql_jdbc/opensearch_sql_jdbc.taco
- name: Upload Power BI ODBC connectors
if: steps.pack-powerbi-odbc-os-proj.outcome == 'success' || (steps.prep-powerbi-odbc-amz-os-svc.outcome == 'success' && steps.pack-powerbi-odbc-amz-os-svc.outcome == 'success')
uses: actions/upload-artifact@v2
with:
name: PBIConnectors
path: 'bi-connectors/PowerBIConnector/*.mez'
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
<SuppressCellErrors>False</SuppressCellErrors>
<MaxRows>1000</MaxRows>
<ExtensionProject>Yes</ExtensionProject>
<Name>SqlOdbcPBIConnector</Name>
<Name>OpenSearch</Name>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
<DebugSymbols>false</DebugSymbols>
Expand All @@ -36,31 +36,31 @@
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="SqlOdbcPBIConnector.pq">
<Compile Include="OpenSearch.pq">
<SubType>Code</SubType>
</Compile>
<Compile Include="SqlOdbcPBIConnector16.png">
<Compile Include="OpenSearch16.png">
<SubType>Code</SubType>
</Compile>
<Compile Include="SqlOdbcPBIConnector20.png">
<Compile Include="OpenSearch20.png">
<SubType>Code</SubType>
</Compile>
<Compile Include="SqlOdbcPBIConnector24.png">
<Compile Include="OpenSearch24.png">
<SubType>Code</SubType>
</Compile>
<Compile Include="SqlOdbcPBIConnector32.png">
<Compile Include="OpenSearch32.png">
<SubType>Code</SubType>
</Compile>
<Compile Include="SqlOdbcPBIConnector40.png">
<Compile Include="OpenSearch40.png">
<SubType>Code</SubType>
</Compile>
<Compile Include="SqlOdbcPBIConnector48.png">
<Compile Include="OpenSearch48.png">
<SubType>Code</SubType>
</Compile>
<Compile Include="SqlOdbcPBIConnector64.png">
<Compile Include="OpenSearch64.png">
<SubType>Code</SubType>
</Compile>
<Compile Include="SqlOdbcPBIConnector80.png">
<Compile Include="OpenSearch80.png">
<SubType>Code</SubType>
</Compile>
<Compile Include="resources.resx">
Expand All @@ -72,7 +72,7 @@
<Compile Include="OdbcConstants.pqm">
<SubType>Content</SubType>
</Compile>
<Content Include="SqlOdbcPBIConnector.query.pq">
<Content Include="OpenSearch.query.pq">
<SubType>Code</SubType>
</Content>
</ItemGroup>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,28 +1,39 @@
// This file contains Data Connector logic
section SqlOdbcPBIConnector;
[Version = "1.0.0"]
section OpenSearch;

// When set to true, additional trace information will be written out to the User log.
// This should be set to false before release. Tracing is done through a call to
// Diagnostics.LogValue(). When EnableTraceOutput is set to false, the call becomes a
// no-op and simply returns the original value.
EnableTraceOutput = true;
EnableTraceOutput = false;

[DataSource.Kind="SqlOdbcPBIConnector", Publish="SqlOdbcPBIConnector.Publish"]
shared SqlOdbcPBIConnector.Contents = Value.ReplaceType(SqlOdbcPBIConnectorImpl, SqlOdbcPBIConnectorType);
[DataSource.Kind="OpenSearch", Publish="OpenSearch.Publish"]
shared OpenSearch.Contents = Value.ReplaceType(OpenSearchImpl, OpenSearchType);

// Wrapper function to provide additional UI customization.
SqlOdbcPBIConnectorType = type function (
OpenSearchType = type function (
Server as (type text meta [
Documentation.FieldCaption = "Server",
Documentation.FieldDescription = "The hostname of the OpenSearch server.",
Documentation.SampleValues = { "localhost:9200" }
Documentation.SampleValues = { "localhost" }
]),
Port as (type number meta [
Documentation.FieldCaption = "Port",
Documentation.FieldDescription = "Port which OpenSearch server listens on.",
Documentation.SampleValues = { 9200 }
]),
UseSSL as (type logical meta [
Documentation.FieldCaption = "Use SSL",
Documentation.FieldDescription = "Use SSL",
Documentation.AllowedValues = { true, false }
])
)
as table meta [
Documentation.Name = "OpenSearch"
];

SqlOdbcPBIConnectorImpl = (Server as text) as table =>
OpenSearchImpl = (Server as text, Port as number, UseSSL as logical) as table =>
let
Credential = Extension.CurrentCredential(),
AuthenticationMode = Credential[AuthenticationKind],
Expand Down Expand Up @@ -56,9 +67,16 @@ SqlOdbcPBIConnectorImpl = (Server as text) as table =>
UseSSL = 0
],

// Subtract the server from the user input in case it's entered like 'http://localhost' or 'https://srv.com:100500' or 'localhost:0'
// And build the proper string on our own
FinalServerString = if UseSSL then
"https://" & Uri.Parts(Server)[Host] & ":" & Text.From(Port)
else
"http://" & Uri.Parts(Server)[Host] & ":" & Text.From(Port),

ConnectionString = [
Driver = "OpenSearch SQL ODBC Driver",
Host = Server
Host = FinalServerString
],

SQLGetInfo = Diagnostics.LogValue("SQLGetInfo_Options", [
Expand Down Expand Up @@ -160,14 +178,16 @@ OnOdbcError = (errorRecord as record) =>
error errorRecord;

// Data Source Kind description
SqlOdbcPBIConnector = [
OpenSearch = [
// Required for use with Power BI Service.
TestConnection = (dataSourcePath) =>
let
json = Json.Document(dataSourcePath),
Server = json[Server]
Server = json[Server],
Port = json[Port],
UseSSL = json[UseSSL]
in
{ "SqlOdbcPBIConnector.Contents", Server },
{ "OpenSearch.Contents", Server, Port, UseSSL },

// Authentication modes
Authentication = [
Expand All @@ -185,11 +205,11 @@ SqlOdbcPBIConnector = [

// PBIDS Handler
DSRHandlers = [
#"sqlodbc" = [
GetDSR = (server, schema, object, optional options) => [ protocol = "sqlodbc", address = [ server = server ] ],
GetFormula = (dsr, optional options) => () =>
#"opensearch-sql" = [
GetDSR = (server, schema, object, optional options) => [ protocol = "opensearch-sql", address = [ server = server, port = schema, useSSL = object ] ],
GetFormula = (dsr, optional options) => () =>
let
db = SqlOdbcPBIConnector.Contents(dsr[address][server])
db = OpenSearch.Contents(dsr[address][server], dsr[address][port], dsr[address][useSSL])
in
db,
GetFriendlyName = (dsr) => "OpenSearch SQL ODBC"
Expand All @@ -203,7 +223,7 @@ SqlOdbcPBIConnector = [
];

// Data Source UI publishing description
SqlOdbcPBIConnector.Publish = [
OpenSearch.Publish = [
Beta = true,
Category = "Other",
ButtonText = { Extension.LoadString("ButtonTitle"), Extension.LoadString("ButtonHelp") },
Expand All @@ -212,13 +232,13 @@ SqlOdbcPBIConnector.Publish = [
// Disabling direct query due to limited SQL query support
SupportsDirectQuery = true,

SourceImage = SqlOdbcPBIConnector.Icons,
SourceTypeImage = SqlOdbcPBIConnector.Icons
SourceImage = OpenSearch.Icons,
SourceTypeImage = OpenSearch.Icons
];

SqlOdbcPBIConnector.Icons = [
Icon16 = { Extension.Contents("SqlOdbcPBIConnector16.png"), Extension.Contents("SqlOdbcPBIConnector20.png"), Extension.Contents("SqlOdbcPBIConnector24.png"), Extension.Contents("SqlOdbcPBIConnector32.png") },
Icon32 = { Extension.Contents("SqlOdbcPBIConnector32.png"), Extension.Contents("SqlOdbcPBIConnector40.png"), Extension.Contents("SqlOdbcPBIConnector48.png"), Extension.Contents("SqlOdbcPBIConnector64.png") }
OpenSearch.Icons = [
Icon16 = { Extension.Contents("OpenSearch16.png"), Extension.Contents("OpenSearch20.png"), Extension.Contents("OpenSearch24.png"), Extension.Contents("OpenSearch32.png") },
Icon32 = { Extension.Contents("OpenSearch32.png"), Extension.Contents("OpenSearch40.png"), Extension.Contents("OpenSearch48.png"), Extension.Contents("OpenSearch64.png") }
];

// Load common library functions
Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,19 @@
// This file contains queries to test your data connector
section SqlOdbcPBIConnector.UnitTests;
section OpenSearch.UnitTests;

shared MyExtension.UnitTest =
[
// Common variables for all tests
Host = "localhost:9200",
Host = "localhost",
Port = 9200,
UseSSL = false,

facts =
{
Fact("Connection Test",
7,
let
Source = SqlOdbcPBIConnector.Contents(Host),
Source = OpenSearch.Contents(Host, Port, UseSSL),
no_of_columns = Table.ColumnCount(Source)
in
no_of_columns
Expand All @@ -20,7 +22,7 @@ shared MyExtension.UnitTest =
#table(type table [bool0 = logical],
{ {null}, {false}, {true} }),
let
Source = SqlOdbcPBIConnector.Contents(Host),
Source = OpenSearch.Contents(Host, Port, UseSSL),
calcs_null_null = Source{[Item="calcs",Schema=null,Catalog=null]}[Data],
grouped = Table.Group(calcs_null_null, {"bool0"}, {})
in
Expand Down
Binary file not shown.
66 changes: 66 additions & 0 deletions bi-connectors/PowerBIConnector/docs/AmazonOpenSearchService.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
# Connecting Amazon OpenSearch Service to Microsoft Power BI Desktop

>[!Note]

>The following connector article is provided by Amazon, the owner of this connector and a member of the Microsoft Power Query Connector Certification Program. If you have questions regarding the content of this article or have changes you would like to see made to this article, visit the OpenSearch website and use the support channels there.

## Summary
| Item | Description |
| ---- | ----------- |
| Release State | General Availability |
| Products | Power BI Desktop |
| Authentication Types Supported | Basic |

## Prerequisites
* Microsoft Power BI Desktop
* [OpenSearch](https://docs-beta.opensearch.org/opensearch/install/index/)
* [OpenSearch SQL ODBC driver](https://docs-beta.opensearch.org/search-plugins/sql/odbc/)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

minor: we are not using the beta links anymore

Suggested change
* [OpenSearch](https://docs-beta.opensearch.org/opensearch/install/index/)
* [OpenSearch SQL ODBC driver](https://docs-beta.opensearch.org/search-plugins/sql/odbc/)
* [OpenSearch](https://opensearch.org/docs/latest/opensearch/install/index/)
* [OpenSearch SQL ODBC driver](https://opensearch.org/docs/latest/search-plugins/sql/odbc/)

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for the heads up. This has now been updated


## Capabilities supported
* Import
* DirectQuery

## Connect to Amazon OpenSearch Service
1. Open Power BI Desktop.

2. Click on **Home** > **Get Data** > **More** > **Other**. Select **Amazon OpenSearch Service**. Click on **Connect**.

<img src="img/pbi_select_connector_amz.png" width="500">

3. You will get a warning for using a third-party service. Click on **Continue**.

<img src="img/pbi_third_party_warning.png" width="500">

4. Enter host and port values and select your preferred SSL option. Click on **OK**.

<img src="img/pbi_connection_string_options.png" width="500">

5. Select authentication option. Enter credentials if required and click on **Connect**.

<img src="img/pbi_auth.png" width="500">

6. Select required table. Data preview will be loaded.

<img src="img/pbi_data_preview.png">

7. Click on **Load**.

8. Select required columns for creating a graph.

<img src="img/pbi_simple_graph.png">


## Troubleshooting

* If you get the following error, please install the [OpenSearch SQL ODBC Driver](https://docs-beta.opensearch.org/search-plugins/sql/odbc/).

<img src="img/pbi_error_driver_not_installed.png" width="350">

* If you get the following error,

<img src="img/pbi_error_conn.png" width="350">

1. Check if host and port values are correct.
2. Check if auth credentials are correct.
3. Check if server is running.

Loading