Run Java in SQL Server€¦ · Java Extensibility SDK for Microsoft SQL Server...
Transcript of Run Java in SQL Server€¦ · Java Extensibility SDK for Microsoft SQL Server...
![Page 1: Run Java in SQL Server€¦ · Java Extensibility SDK for Microsoft SQL Server mssql-java-lang-extension.jar API: Extensibility Framework for Microsoft SQL Server import com.microsoft.sqlserver.javalangextension](https://reader034.fdocuments.us/reader034/viewer/2022042622/5f7dd67c40a72f0166134ab2/html5/thumbnails/1.jpg)
Nellie Gustafsson – Senior Program Manager
Run Java in SQL Server
![Page 2: Run Java in SQL Server€¦ · Java Extensibility SDK for Microsoft SQL Server mssql-java-lang-extension.jar API: Extensibility Framework for Microsoft SQL Server import com.microsoft.sqlserver.javalangextension](https://reader034.fdocuments.us/reader034/viewer/2022042622/5f7dd67c40a72f0166134ab2/html5/thumbnails/2.jpg)
SQL Server
2016
SQL Server external language integrations
SQL Server
2017
SQL Server
2019
PythonR
SQL Server Language Extensibility
R-Services
SQL Server Machine Learning Services
![Page 3: Run Java in SQL Server€¦ · Java Extensibility SDK for Microsoft SQL Server mssql-java-lang-extension.jar API: Extensibility Framework for Microsoft SQL Server import com.microsoft.sqlserver.javalangextension](https://reader034.fdocuments.us/reader034/viewer/2022042622/5f7dd67c40a72f0166134ab2/html5/thumbnails/3.jpg)
Why Java?
Source: Stack Overflow survey 2018 Tiobe programming language index
![Page 4: Run Java in SQL Server€¦ · Java Extensibility SDK for Microsoft SQL Server mssql-java-lang-extension.jar API: Extensibility Framework for Microsoft SQL Server import com.microsoft.sqlserver.javalangextension](https://reader034.fdocuments.us/reader034/viewer/2022042622/5f7dd67c40a72f0166134ab2/html5/thumbnails/4.jpg)
Java - Example use cases
• Move middle-tier (application server) logic closer to the data
• Oracle Java Procs migration
• Regular expressions (Regex)
• Natural language processing
• Machine Learning
![Page 5: Run Java in SQL Server€¦ · Java Extensibility SDK for Microsoft SQL Server mssql-java-lang-extension.jar API: Extensibility Framework for Microsoft SQL Server import com.microsoft.sqlserver.javalangextension](https://reader034.fdocuments.us/reader034/viewer/2022042622/5f7dd67c40a72f0166134ab2/html5/thumbnails/5.jpg)
SQL Server Java extension
Java Extensibility SDK for
Microsoft SQL Server
mssql-java-lang-extension.jar
API: Extensibility Framework for
Microsoft SQL Server
import com.microsoft.sqlserver.javalangextension
public PrimitiveDataset execute(…) {
//JAVA CODE
javaextension.dll/.so
SQL Server
2019
EXEC sp_execute_external_script@language = N'Java'
, @script = N'packageName.ClassName', @input_data_1 = N'SELECT id, text FROM testdata', @params = N'@parameter nvarchar(40)', @parameter = @parameterwith result sets ((column1 int, column2 nvarchar(30)))
CREATE EXTERNAL LIBRARY
CREATE EXTERNAL LANGUAGE
![Page 6: Run Java in SQL Server€¦ · Java Extensibility SDK for Microsoft SQL Server mssql-java-lang-extension.jar API: Extensibility Framework for Microsoft SQL Server import com.microsoft.sqlserver.javalangextension](https://reader034.fdocuments.us/reader034/viewer/2022042622/5f7dd67c40a72f0166134ab2/html5/thumbnails/6.jpg)
Architecture
![Page 7: Run Java in SQL Server€¦ · Java Extensibility SDK for Microsoft SQL Server mssql-java-lang-extension.jar API: Extensibility Framework for Microsoft SQL Server import com.microsoft.sqlserver.javalangextension](https://reader034.fdocuments.us/reader034/viewer/2022042622/5f7dd67c40a72f0166134ab2/html5/thumbnails/7.jpg)
3rd Party Extensibility Architecture
sp_execute_external_script
@language = ‘Java’
MSSQLSERVER Service
MSSQLLAUNCHPAD Service
sqlsatellite.dll
/satellite.so
“extension” process exthost
JVM
1
2
3
JNI
extension.dll
/extension.so
![Page 8: Run Java in SQL Server€¦ · Java Extensibility SDK for Microsoft SQL Server mssql-java-lang-extension.jar API: Extensibility Framework for Microsoft SQL Server import com.microsoft.sqlserver.javalangextension](https://reader034.fdocuments.us/reader034/viewer/2022042622/5f7dd67c40a72f0166134ab2/html5/thumbnails/8.jpg)
Security and Governance
• Reduced surface area and isolation
• Script execution requires explicit permission
• External language processes have limited privileges
• Built-in Resource Governance
![Page 9: Run Java in SQL Server€¦ · Java Extensibility SDK for Microsoft SQL Server mssql-java-lang-extension.jar API: Extensibility Framework for Microsoft SQL Server import com.microsoft.sqlserver.javalangextension](https://reader034.fdocuments.us/reader034/viewer/2022042622/5f7dd67c40a72f0166134ab2/html5/thumbnails/9.jpg)
CREATE EXTERNAL LANGUAGE JavaFROM(CONTENT=‘<sql server install path>\MSSQL\Binn\javaextension.zip', FILE_NAME=N’javaextension.dll’,PLATFORM=WINDOWS,
ENVIRONMENT_VARIABLES= 'JRE_HOME=
<server path>\Zulu\zulu-8\jre\;DEBUG=0;')
CREATE EXTERNAL LANGUAGE JavaFROM(CONTENT=‘/opt/mssql/lib/extensibility/java-lang-extension.tar.gz', FILE_NAME=N’javaextension.so’,PLATFORM=LINUX,
ENVIRONMENT_VARIABLES= 'JRE_HOME=
<server path>\Zulu\zulu-8\jre\;DEBUG=0;')
External Language – New DDL
![Page 10: Run Java in SQL Server€¦ · Java Extensibility SDK for Microsoft SQL Server mssql-java-lang-extension.jar API: Extensibility Framework for Microsoft SQL Server import com.microsoft.sqlserver.javalangextension](https://reader034.fdocuments.us/reader034/viewer/2022042622/5f7dd67c40a72f0166134ab2/html5/thumbnails/10.jpg)
External Libraries
No need to set permissions to CLASSPATH if you use external libraries.
CREATE EXTERNAL LIBRARY myJarFROM (CONTENT = ‘<path to .jar file or .zip file>') WITH (LANGUAGE = ‘Java'); GO
![Page 11: Run Java in SQL Server€¦ · Java Extensibility SDK for Microsoft SQL Server mssql-java-lang-extension.jar API: Extensibility Framework for Microsoft SQL Server import com.microsoft.sqlserver.javalangextension](https://reader034.fdocuments.us/reader034/viewer/2022042622/5f7dd67c40a72f0166134ab2/html5/thumbnails/11.jpg)
EXEC sp_execute_external_script
@language = N’ Java'
, @script = N'packageName.ClassName'
, @input_data_1 = N'SELECT id, text FROM testdata'
, @params = N'@parameter nvarchar(40)'
, @parameter = @parameter
with result sets ((column1 int, column2 nvarchar(30)))
Call external language from SQL Server
![Page 12: Run Java in SQL Server€¦ · Java Extensibility SDK for Microsoft SQL Server mssql-java-lang-extension.jar API: Extensibility Framework for Microsoft SQL Server import com.microsoft.sqlserver.javalangextension](https://reader034.fdocuments.us/reader034/viewer/2022042622/5f7dd67c40a72f0166134ab2/html5/thumbnails/12.jpg)
Demo - Regex
![Page 13: Run Java in SQL Server€¦ · Java Extensibility SDK for Microsoft SQL Server mssql-java-lang-extension.jar API: Extensibility Framework for Microsoft SQL Server import com.microsoft.sqlserver.javalangextension](https://reader034.fdocuments.us/reader034/viewer/2022042622/5f7dd67c40a72f0166134ab2/html5/thumbnails/13.jpg)
• GitHub Microsoft Open Source Repository:
aka.ms/mssql-java-lang-extension
• Host the source code for Java SDK, Java extension and Extension API on GitHub• This means that the community can build 3rd party language extensions and use Java as
example
• Sub folders for language extension in repository that we support
• Under Releases on GitHub: Signed SDK jar & Source.zip/tar.gz
SQL Server Setup• Installs signed SDK jar file & Extension .dll/.so
• In future: Supported Java distribution
Release of SDK and Extension API
![Page 14: Run Java in SQL Server€¦ · Java Extensibility SDK for Microsoft SQL Server mssql-java-lang-extension.jar API: Extensibility Framework for Microsoft SQL Server import com.microsoft.sqlserver.javalangextension](https://reader034.fdocuments.us/reader034/viewer/2022042622/5f7dd67c40a72f0166134ab2/html5/thumbnails/14.jpg)
Questions?
![Page 15: Run Java in SQL Server€¦ · Java Extensibility SDK for Microsoft SQL Server mssql-java-lang-extension.jar API: Extensibility Framework for Microsoft SQL Server import com.microsoft.sqlserver.javalangextension](https://reader034.fdocuments.us/reader034/viewer/2022042622/5f7dd67c40a72f0166134ab2/html5/thumbnails/15.jpg)
Thank you.
![Page 16: Run Java in SQL Server€¦ · Java Extensibility SDK for Microsoft SQL Server mssql-java-lang-extension.jar API: Extensibility Framework for Microsoft SQL Server import com.microsoft.sqlserver.javalangextension](https://reader034.fdocuments.us/reader034/viewer/2022042622/5f7dd67c40a72f0166134ab2/html5/thumbnails/16.jpg)
![Page 17: Run Java in SQL Server€¦ · Java Extensibility SDK for Microsoft SQL Server mssql-java-lang-extension.jar API: Extensibility Framework for Microsoft SQL Server import com.microsoft.sqlserver.javalangextension](https://reader034.fdocuments.us/reader034/viewer/2022042622/5f7dd67c40a72f0166134ab2/html5/thumbnails/17.jpg)
![Page 18: Run Java in SQL Server€¦ · Java Extensibility SDK for Microsoft SQL Server mssql-java-lang-extension.jar API: Extensibility Framework for Microsoft SQL Server import com.microsoft.sqlserver.javalangextension](https://reader034.fdocuments.us/reader034/viewer/2022042622/5f7dd67c40a72f0166134ab2/html5/thumbnails/18.jpg)
![Page 19: Run Java in SQL Server€¦ · Java Extensibility SDK for Microsoft SQL Server mssql-java-lang-extension.jar API: Extensibility Framework for Microsoft SQL Server import com.microsoft.sqlserver.javalangextension](https://reader034.fdocuments.us/reader034/viewer/2022042622/5f7dd67c40a72f0166134ab2/html5/thumbnails/19.jpg)
![Page 20: Run Java in SQL Server€¦ · Java Extensibility SDK for Microsoft SQL Server mssql-java-lang-extension.jar API: Extensibility Framework for Microsoft SQL Server import com.microsoft.sqlserver.javalangextension](https://reader034.fdocuments.us/reader034/viewer/2022042622/5f7dd67c40a72f0166134ab2/html5/thumbnails/20.jpg)
![Page 21: Run Java in SQL Server€¦ · Java Extensibility SDK for Microsoft SQL Server mssql-java-lang-extension.jar API: Extensibility Framework for Microsoft SQL Server import com.microsoft.sqlserver.javalangextension](https://reader034.fdocuments.us/reader034/viewer/2022042622/5f7dd67c40a72f0166134ab2/html5/thumbnails/21.jpg)
![Page 22: Run Java in SQL Server€¦ · Java Extensibility SDK for Microsoft SQL Server mssql-java-lang-extension.jar API: Extensibility Framework for Microsoft SQL Server import com.microsoft.sqlserver.javalangextension](https://reader034.fdocuments.us/reader034/viewer/2022042622/5f7dd67c40a72f0166134ab2/html5/thumbnails/22.jpg)
![Page 23: Run Java in SQL Server€¦ · Java Extensibility SDK for Microsoft SQL Server mssql-java-lang-extension.jar API: Extensibility Framework for Microsoft SQL Server import com.microsoft.sqlserver.javalangextension](https://reader034.fdocuments.us/reader034/viewer/2022042622/5f7dd67c40a72f0166134ab2/html5/thumbnails/23.jpg)
![Page 24: Run Java in SQL Server€¦ · Java Extensibility SDK for Microsoft SQL Server mssql-java-lang-extension.jar API: Extensibility Framework for Microsoft SQL Server import com.microsoft.sqlserver.javalangextension](https://reader034.fdocuments.us/reader034/viewer/2022042622/5f7dd67c40a72f0166134ab2/html5/thumbnails/24.jpg)
![Page 25: Run Java in SQL Server€¦ · Java Extensibility SDK for Microsoft SQL Server mssql-java-lang-extension.jar API: Extensibility Framework for Microsoft SQL Server import com.microsoft.sqlserver.javalangextension](https://reader034.fdocuments.us/reader034/viewer/2022042622/5f7dd67c40a72f0166134ab2/html5/thumbnails/25.jpg)
![Page 26: Run Java in SQL Server€¦ · Java Extensibility SDK for Microsoft SQL Server mssql-java-lang-extension.jar API: Extensibility Framework for Microsoft SQL Server import com.microsoft.sqlserver.javalangextension](https://reader034.fdocuments.us/reader034/viewer/2022042622/5f7dd67c40a72f0166134ab2/html5/thumbnails/26.jpg)
![Page 27: Run Java in SQL Server€¦ · Java Extensibility SDK for Microsoft SQL Server mssql-java-lang-extension.jar API: Extensibility Framework for Microsoft SQL Server import com.microsoft.sqlserver.javalangextension](https://reader034.fdocuments.us/reader034/viewer/2022042622/5f7dd67c40a72f0166134ab2/html5/thumbnails/27.jpg)
![Page 28: Run Java in SQL Server€¦ · Java Extensibility SDK for Microsoft SQL Server mssql-java-lang-extension.jar API: Extensibility Framework for Microsoft SQL Server import com.microsoft.sqlserver.javalangextension](https://reader034.fdocuments.us/reader034/viewer/2022042622/5f7dd67c40a72f0166134ab2/html5/thumbnails/28.jpg)
Thank you.
![Page 29: Run Java in SQL Server€¦ · Java Extensibility SDK for Microsoft SQL Server mssql-java-lang-extension.jar API: Extensibility Framework for Microsoft SQL Server import com.microsoft.sqlserver.javalangextension](https://reader034.fdocuments.us/reader034/viewer/2022042622/5f7dd67c40a72f0166134ab2/html5/thumbnails/29.jpg)
© Copyright Microsoft Corporation. All rights reserved.