Using ODBC DREMIO Driver with SAP Business Intelligence 4.2

Hi,

we installed the ODBC Dremio Driver on SAP Business Intelligence 4.2 SP5 on Linux RH 7.3 server.

Is this configuration supported by Dremio?

When we try to run a query on Dremio from SAPBI, we note the following error on the logs:

(…)v7QDIeFFUPKrJXRy9eyjQkf5ce|||||Administrator||||||google:: protobuf said: This program requires version 2.5.0 of the Protocol Buffer runtime library, but the installed version is 2.2.0. Please update your library. If you compiled the program yourself, make sure that your headers are from the same version of Protocol Buffers as your link-time library. (Version verification failed in “/home/employee/Desktop/Rob/drill/drill-1.10.0.4/contrib/native/client/src/protobuf/ExecutionProtos.pb.cc”.) (…)

Making some investigation, we found that SAP BI probably use a different libprotobuf version library, while Dremio seems to require 2.5

Has anyone ever experienced this? Is it possible to circumvent this problem?

Regards
Sergio

Hi Sergio - can you confirm the version of Dremio and the ODBC driver you are using.

Also, wanted to make sure you saw this page in the docs: https://docs.dremio.com/client-applications/business-objects.html

Hi Kelly,
thank you for your quick answer
We installed dremio-odbc-1.3.14.1043-1.x86_64

We also tried to connect from SAP BI with the JDBC Driver, but we didn’t managed to have a working connection

Please note that our BI installation is on linux (Redhat 7.3) os
Thanks very much
Sergio

I almost forgot: we installed Dremio 1.4.9-201802191836310213-7195059 CE (Yarn deploy) on Hortonworks Data Platform 2.6.

Regards,
Sergio

Hi Sergio, I have a few quick questions.

Could you do a ‘yum list installed | grep proto’ on the RHEL machine?

Could you provide the workflow on how you setup the driver with SAP BI on RHEL? I have a IPS setup and wondering if I can repro the issue.

Hi superbstreak,
there’s no proto package installed with yum on the servers, but I note there’s a library copied by Sap Business Intelligence installation at the path

/opt/sapbi/sap_bobj/enterprise_xi40/linux_x64/liblibprotobuf.so

This library is used by SAP BI runtime.

Regarding Dremio driver installation, we did the following steps:

–>rpm -i dremio-odbc-1.3.14.1043-1.x86_64
–>we copied the content of /opt/dremio-odbc/lib64
into
/opt/sapbi/sap_bobj/enterprise_xi40/linux_x64/odbc/lib/dremio

–> to make dremio driver shared libs available to SAP BI runtime, this path is then added to the LD_LIBRARY_PATH variable of the user which runs SAP BI services
–> then we did a Sap BI service Restart

Thanks
Sergio

As a further detail, I can say that Dremio driver is working correctly from the command line: with isql I can query dremio datasets successfully.

Regards

Hi Sergio, Thanks for the detail! I’ll give it a go.

I was able to find the protobuf library files you mentioned on both Windows and RHEL installation of IPS. And verified both to be of version 2.2.0. I wonder if this is reproducible on Windows as well.

I’m going to do an switch from IPS (a subset of BI) to BI, since it looks like IPS does not have the capability to utilize an external ODBC connector as of 4.2.

Hi,

have you found any bypass? We still can’t connect to Dremio :frowning:

Do you think that using jdbc connection ma be an easier way to connect ?
We could give it another try if jdbc connection is supported or known to work with SAP BI on linux

Thanks
Sergio

Hi Sergio, Apologies for the delay, we’re looking into a possible workaround of shading protobuf libraries to resolve this issue while the team completes the switch from IPS to BIP.

You mentioned that you’ve tried the JDBC driver before but encountered a connection issue. Could you provide more detail regarding that?

Hi superbstreak,

thanks very much for your patience

Today we re-tried to configure a working JDBC connection using SAP BI but we didn’t succeed in making progress. We noted the following exception on Sap BI log:

ERRORCODE=“10901” ERRORTYPE=“USER” MESSAGE=“Si verificato il seguente errore di database: (CS) “Java Exception : java.lang.NullPointerException: while trying to invoke the method cdjd.com.typesafe.config.impl.MergeableValue.toFallbackValue() of a null object loaded from local variable ‘mergeable’” Per informazioni sull’errore, fare riferimento all’articolo della SAP Knowledge Base 2054721 nel SAP Support Portal. (IES 10901)” PREFIX=“ERR”

We used dremio-jdbc-driver-2.0.1rc-201804132205050000-10b1de0.jar

Is there any way to configure a higher debug level for the jdbc driver?
Regards,
Sergio

Hi @seraus, after some investigation regarding the protobuf 2.2 and 2.5 conflict issue, it looks like shading the protobuf library would be quite complex and would not the recommended solution. I’m recompiling the protobuf library again and ensuring the enable shared flag is properly picked up and turned off. I believe this should be able to help with the version conflict.

Regarding the JDBC Driver error, would it be possible to acquire the stacktrace of the NPE. Could you provide the setup process you’ve attempted? The SAP support portal KB 2054721 doesnt provide much information, only mentioned that these are the frequent causes:

  • Reporting database drivers not loaded or found
  • An error returned by the reporting database indicating a connection or other system issue
  • Network connectivity between the BI server and the reporting database

Hi superbstreak,

we configure Dremio driver as a “Generic JDBC Driver” following the instructions in the paragraphs 5.3.1 & 5.3.4 of the Data Access Guide.
We use the attached jdbc.sbo file; jdbcClass and jdbcURL are provided when creating the server connection (that is from the connection wizard of BI).

jdbc.zip (1023 Bytes)

Let me know if you need additional info
Regards,
Sergio

I’m recompiling the protobuf library again and ensuring the enable shared flag is properly picked up and turned >>off. I believe this should be able to help with the version conflict.
Let me know when you have a new build of the driver, I can make another attempt with ODBC

Thnx

Hi @seraus, I would like to provide a quick update on this. We’ve successfully recompiled the protobuf library with the shared flag disabled as well as the rest of the related components. We should be able to verify the workaround shortly.

1 Like

Hi superbstreak,

have you got a chanche to recompile the ODBC driver e verify the workaround?
I saw that there’s a new minor build of the ODBC driver…
Let me me know if there is any news

Thanks
Sergio

Hi @seraus,

We have just heard back from SAP and setup a BI P for testing on Windows and RHEL. However, we are seeing an issue where exporting additional LD_LIBRARY_PATH would cause the core services to be shutdown due to a critical error in CMC. I was wondering if you’ve experience something similar before in your setup?

Would you mind verify the following steps:

  1. Install the SAP BOBJ BI Platform server on RHEL
  2. Install Dremio Connector
  3. move the dremio connector to /opt/sapbi/sap_bobj/enterprise_xi40/linux_x64/odbc/lib/dremio
  4. Modify the odbc.ini within the /opt/sapbi/sap_bobj/enterprise_xi40/…/odbc.ini file
  5. export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/sapbi/sap_bobj/enterprise_xi40/linux_x64/odbc/lib/dremio
  6. start the sap bi services (./startservers)

Yes, the latest Dremio Connector release does not contain this fix.

Hi superbstreak,

yes, these are the steps we made when we installed Dremio ODBC driver. We never experienced a critical error on reboot (and we restarted SAP BI several times)

here it is our odbc config

[Dremio]
Description=Dremio ODBC Driver (64-bit) DSN
Driver=/opt/sapbi/sap_bobj/enterprise_xi40/linux_x64/odbc/lib/dremio/libdrillodbc_sb64.so
ConnectionType=Direct
HOST=tst-edge2.pochdp.csi.it
PORT=31010
#ZKQuorum=[Zookeeper Quorum]
#ZKClusterID=[Cluster ID]
AuthenticationType=Plain
UID=xxxxx
PWD=xxxx
DelegationUID=
KrbServiceName=dremio
KrbServiceHost=
AdvancedProperties=CastAnyToVarchar=true;HandshakeTimeout=5;QueryTimeout=180;TimestampTZDisplayTimezone=utc;NumberOfPrefetchBuffers=5;NonZeroNameMaxLen=true;supportFullyQualifiedProjects=true
Catalog=DREMIO
Schema=

and this is the environ file of APS.data and ConnectionServer on RHEL:

(…)
LD_LIBRARY_PATH=/opt/sapbi/sap_bobj/enterprise_xi40/linux_x64/:/opt/sapbi/sap_bobj/enterprise_xi40/linux_x86/:/opt/sapbi/sap_bobj/enterprise_xi40/linux_x64/wcs/components/:/opt/sapbi/sap_bobj/enterprise_xi40/linux_x64/plugins//auth/secEnterprise:/opt/sapbi/sap_bobj/enterprise_xi40/linux_x64/crpe/:/opt/sapbi/sap_bobj/enterprise_xi40/linux_x86/crpe/:/opt/sapbi/sap_bobj/enterprise_xi40/linux_x86/crpe/mw/:/opt/sapbi/sap_bobj/enterprise_xi40/linux_x64/plugins//desktop/CrystalEnterprise.Report:/opt/sapbi/sap_bobj/enterprise_xi40/linux_x86/ras:/opt/sapbi/sap_bobj/mysql/lib:/opt/sapbi/sap_bobj/enterprise_xi40/linux_x64/odbc/lib:/opt/sapbi/sap_bobj/enterprise_xi40/linux_x64/odbc/lib/dremio: (…)

Regards,
Sergio

@seraus, awesome! thank you for verifying, ill try to match your setup.