{"id":79637,"date":"2020-08-26T09:00:19","date_gmt":"2020-08-26T03:30:19","guid":{"rendered":"https:\/\/techvidvan.com\/tutorials\/?p=79637"},"modified":"2020-08-26T09:00:19","modified_gmt":"2020-08-26T03:30:19","slug":"apache-sqoop-connectors-drivers","status":"publish","type":"post","link":"https:\/\/techvidvan.com\/tutorials\/apache-sqoop-connectors-drivers\/","title":{"rendered":"Connectors and Drivers in the World of Apache Sqoop"},"content":{"rendered":"<p>Sqoop is a tool which is designed for the data transfers between the RDBMS and the Hadoop ecosystem. One of the major advantages of Apache Sqoop is that it is easy to use, and we can use it with the varieties of systems (inside and outside) of the Hadoop ecosystem.<\/p>\n<p>With Apache Sqoop, we can easily import or export data from all relational databases that support JDBC interface. This can be done by using the same command line arguments exposed by Apache Sqoop.<\/p>\n<p>The users of various Apache projects within the Hadoop ecosystem use the words &#8220;driver&#8221; and &#8220;connector&#8221; interchangeably. But in the context of Apache Sqoop, these words mean completely different things. The connector and the driver both are needed for every Sqoop invocation.<\/p>\n<p>In this article, you will explore each and every concept related to Sqoop driver and connector.<\/p>\n<p><a href=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2020\/08\/Sqoop-Connectors-Drivers-TV.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-79678\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2020\/08\/Sqoop-Connectors-Drivers-TV.jpg\" alt=\"Sqoop Connectors and Drivers\" width=\"1200\" height=\"628\" \/><\/a><\/p>\n<h3>What is a Sqoop Driver?<\/h3>\n<p>In Apache Sqoop, the word driver refers to the JDBC Driver. Basically, JDBC is the standard Java API for accessing RDBMS and some data warehouses. The Java language prescribes only about classes and the methods contained in this interface and JDK does not have any default implementat<\/p>\n<p>ion.<\/p>\n<p>The database vendors have to write their own implementation, which will communicate with the corresponding database with its native protocol.<\/p>\n<p>Since the database vendors create the drivers due to which they are usually offered with the restrictive licenses. This prohibits their shipping with the Apache Sqoop distribution. Thus, the user has to separately download the driver and install them into the Sqoop prior to its use.<\/p>\n<h3>What is Sqoop Connector?<\/h3>\n<p>For communicating with the RDBMS, there is a programming language known as Structured Query Language (SQL).<\/p>\n<p>There is a standard that prescribes how the language SQL should look like, but every database has some of its own dialect of SQL. The basics were usually the same across all the databases, but there are some changes in some conditions.<\/p>\n<p>Sqoop connectors allow Apache Sqoop to overcome the differences in the SQL dialects supported by the different relational databases along with providing the optimized data transfer.<\/p>\n<p>A connector in Apache Sqoop is a pluggable piece which is used for fetching metadata about the transferred data (such as columns, data types, &#8230;) and to drive data transfer itself in a most efficient manner.<\/p>\n<p>The connector will work on various databases out of the box. Apache Sqoop also ships with the specialized connectors for databases like MySQL, Microsoft SQL Server, PostgreSQL, Oracle, DB2 and Netezza.<\/p>\n<p>Thus, generally we don\u2019t have to download the extra connectors for starting data transfer. However, some special connectors are available on the internet that add support for the additional database systems or improve the performance of built-in connectors.<\/p>\n<p>Let us explore special connectors for various databases.<\/p>\n<h3>Sqoop shipped Specialized Connectors for various Databases<\/h3>\n<h4>1. MySQL JDBC Connector<\/h4>\n<p>It is the most basic connector shipped with Apache Sqoop. This connector uses only the JDBC interface for accessing metadata and transferring data. The MySQL JDBC Connector supports the upsert functionality by using the argument &#8211;update-mode allow insert.<\/p>\n<h4>2. MySQL Direct Connector<\/h4>\n<p>This connector allows the faster import and export to or from the MySQL by using the mysqldump and the mysqlimport tools functionality instead of using the SQL selects and inserts. For using the MySQL Direct Connector, we have to specify the &#8211;direct argument for our import\/export job.<\/p>\n<p><strong>For example:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">$ sqoop import --connect jdbc:mysql:\/\/localhost\/demodb --table EMPLOYEES \\\n    --direct\n<\/pre>\n<p><strong>Limitations<\/strong><\/p>\n<ul>\n<li>Currently, it does not support the import of the large object columns such as BLOB and CLOB.<\/li>\n<li>It does not support importing to HBase and Accumulo.<\/li>\n<li>This does not support the use of a staging table while exporting data.<\/li>\n<li>It does not support the import of views.<\/li>\n<\/ul>\n<h4>3. Microsoft SQL Connector<\/h4>\n<p>The Microsoft SQL Connector is the plugin provided by Microsoft for connecting with the SQL instance.<\/p>\n<h4>4. PostgreSQL Connector<\/h4>\n<p>The connection string for PostgreSQL Connector is:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">jdbc:postgresql:\/\/&lt;HOST&gt;:&lt;PORT&gt;\/&lt;DATABASE_NAME&gt;\n<\/pre>\n<p><strong>For eg:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">jdbc:postgresql:\/\/my_postgres_server_hostname:5432\/my_database_name\n<\/pre>\n<p>The extra arguments supported by the PostgreSQL Connector is:<\/p>\n<table>\n<tbody>\n<tr>\n<td><b>Argument<\/b><\/td>\n<td><b>Description<\/b><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400\">&#8211;schema &lt;name&gt;<\/span><\/td>\n<td><span style=\"font-weight: 400\">This argument specifies the Scheme name that Apache Sqoop should use. The default is &#8220;public&#8221;.<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h4>5. PostgreSQL Direct Connector<\/h4>\n<p>The PostgreSQL Direct Connector allows for the faster import and export to and from the PostgreSQL &#8220;COPY&#8221; command.<\/p>\n<p>For using PostgreSQL Direct Connector, we have to specify the &#8211;direct argument for our import\/export job.<\/p>\n<p>The additional PostgreSQL argument supported by direct connector are:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">Argument\nDescription\n--boolean-true-string &lt;str&gt;\nSpecify the string to be used for encoding the true value of the boolean columns. The default is \"TRUE\".\n--boolean-false-string &lt;str&gt;\nSpecify the string to be used for encoding the false value of the boolean columns. The default value is \"FALSE\".\n<\/pre>\n<p><strong>Limitations<\/strong><\/p>\n<ul>\n<li>The direct connector currently doesn\u2019t provide support for the import of large object columns such as BLOB and CLOB.<\/li>\n<li>It does not support importing to HBase and Accumulo.<\/li>\n<li>It does not support the import of views.<\/li>\n<\/ul>\n<h4>6. pg_bulkload connector<\/h4>\n<p>The pg_bulkload connector is the direct connector for exporting data into PostgreSQL. The pg_bulkload connector uses pg_bulkload.<\/p>\n<p><strong>The benefits of this connector is:<\/strong><\/p>\n<ul>\n<li>Fast exports by passing the shared buffers and WAL<\/li>\n<li>Flexible error and records handling<\/li>\n<li>ETL feature with filter functions.<\/li>\n<\/ul>\n<p>For export job execution the pg_bulkload connector requires the following conditions:<\/p>\n<ul>\n<li>We must install the pg_bulkload on the DB server and on all the slave nodes.<\/li>\n<li>The PostgreSQL JDBC must be present on the client node.<\/li>\n<li>There is a need for the superuser role of the PostgreSQL database for the execution of pg_bulkload.<\/li>\n<\/ul>\n<h4>7. Netezza Connector<\/h4>\n<p>The Netezza connector provides support for an optimized data transfer facility by using Netezza external tables feature.<\/p>\n<p>Every map task of the Netezza connector\u2019s import job works on the subset of the Netezza partitions and creates and uses the external table for data transport. For export jobs, it will use an external table for pushing data fast into the Netezza system.<\/p>\n<p><strong>Example of Sqoop import by using the Netezza external table feature.<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">$ sqoop import \\\n    --direct \\\n    --connect jdbc:netezza:\/\/nzhost:5480\/sqoop \\\n    --table nztable \\\n    --username nzuser \\\n    --password nzpass \\\n    --target-dir hdfsdir\n<\/pre>\n<p><strong>Example of Sqoop export with tab as the field terminator character.<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">$ sqoop export \\\n    --direct \\\n    --connect jdbc:netezza:\/\/nzhost:5480\/sqoop \\\n    --table nztable \\\n    --username nzuser \\\n    --password nzpass \\\n    --export-dir hdfsdir \\\n    --input-fields-terminated-by \"\\t\"\n<\/pre>\n<h4>8. Data Connector for Oracle and Hadoop<\/h4>\n<p>The Data Connector for Hadoop and Oracle is now included in Apache Sqoop. We can enable it by specifying the argument &#8211;direct for our import\/export job.<\/p>\n<p>The Data Connector for Oracle and Hadoop accepts the responsibility for following Sqoop Job types:<\/p>\n<ul>\n<li>Import jobs which are Non-Incremental.<\/li>\n<li>Export jobs<\/li>\n<\/ul>\n<p>The Data Connector for Oracle and Hadoop doesn\u2019t accept the responsibility for the other Sqoop job types like eval jobs etc.<\/p>\n<p>This Connector accepts the responsibility for the Sqoop Jobs having the following attributes:<\/p>\n<ul>\n<li>Oracle-related<\/li>\n<li>Table-Based &#8211; Sqoop Jobs where a table argument is used and the specified object is a table.<\/li>\n<li>There must be at least 2 mappers. Sqoop jobs where Sqoop command-line doesn\u2019t include: &#8211;num-mappers 1<\/li>\n<\/ul>\n<p>The Sqoop parameter <strong>&#8211;connect<\/strong> parameter defines the Oracle instance or the Oracle RAC to be connected to. This parameter is required with all the Sqoop import and export commands.<\/p>\n<p>The Data Connector for Oracle and Hadoop requires the associated connection string to be in a specific format which is dependent on whether the Oracle SID, Service or TNS name is defined or not.<\/p>\n<p>We can use the TNS name based URL scheme for enabling the authentication using the Oracle wallets.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">--connect jdbc:oracle:thin:@OracleServer:OraclePort:OracleSID\n--connect jdbc:oracle:thin:@\/\/OracleServer:OraclePort\/OracleService\n--connect jdbc:oracle:thin:@TNSName\n<\/pre>\n<h3>Driver Sqoop arguments in the JDBC connection for various Databases<\/h3>\n<p>The driver argument in JDBC connection specifies the JDBC driver class that Sqoop must use for connecting to the database.<\/p>\n<p><strong>Syntax:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">--driver &lt;JDBC driver class&gt;\n<\/pre>\n<p>The syntax which we can use depending on the type of the database we want to connect to:<\/p>\n<p><strong>Microsoft SQL Server:<\/strong> &#8211;driver com.microsoft.sqlserver.jdbc.SQLServerDriver<br \/>\n<strong>Greenplum:<\/strong> &#8211;driver org.postgresql.Driver<br \/>\n<strong>Netezza:<\/strong> &#8211;driver org.netezza.Driver<br \/>\n<strong>Oracle:<\/strong> &#8211;driver oracle.jdbc.driver.OracleDriver<br \/>\n<strong>IBM DB2:<\/strong> &#8211;driver com.ibm.db2.jcc.DB2Driver<br \/>\n<strong>IBM DB2 z\/OS:<\/strong> &#8211;driver com.ibm.db2.jcc.DB2Driver<br \/>\n<strong>Teradata:<\/strong> &#8211;driver com.teradata.jdbc.TeraDriver<br \/>\n<strong>Aurora:<\/strong> &#8211;driver com.mysql.jdbc.Driver<\/p>\n<h3>Connect Sqoop arguments in the JDBC connection for various Databases<\/h3>\n<p>The connect argument in Apache Sqoop specifies the JDBC connection string that Apache Sqoop must use in order to connect to the database. The connection string must be based on the driver that we define in the driver argument.<\/p>\n<p><strong>Syntax:<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">--connect &lt;JDBC connection string&gt;\n<\/pre>\n<p>The Syntax which we can use depending on the type of the database we want to connect to:<\/p>\n<p><strong>Microsoft SQL Server:<\/strong> &#8211;connect jdbc:sqlserver:\/\/&lt;host_name&gt;:&lt;port or named_instance&gt;;databaseName=&lt;database_name&gt;<br \/>\n<strong>Greenplum:<\/strong> &#8211;connect jdbc:postgresql:\/\/&lt;host_name&gt;:&lt;port&gt;\/&lt;database_name&gt;<br \/>\n<strong>Netezza:<\/strong> &#8211;connect &#8220;jdbc:netezza:\/\/&lt;database_server_name&gt;:&lt;port&gt;\/&lt;database_name&gt;;schema=&lt;schema_name&gt;&#8221;<br \/>\n<strong>Oracle:<\/strong> &#8211;connect jdbc:oracle:thin:@&lt;database_host_name&gt;:&lt;database_port&gt;:&lt;database_SID&gt;<br \/>\n<strong>IBM DB2:<\/strong> &#8211;connect jdbc:db2:\/\/&lt;host_name&gt;:&lt;port&gt;\/&lt;database_name&gt;<br \/>\n<strong>IBM DB2 z\/OS:<\/strong> &#8211;connect jdbc:db2:\/\/&lt;host_name&gt;:&lt;port&gt;\/&lt;database_name&gt;<br \/>\n<strong>Teradata:<\/strong> &#8211;connect jdbc:teradata:\/\/&lt;host_name&gt;\/database=&lt;database_name&gt;<br \/>\n<strong>Aurora:<\/strong> &#8211;connect &#8220;jdbc:mysql:\/\/&lt;host_name&gt;:&lt;port&gt;\/&lt;schema_name&gt;&#8221;<\/p>\n<h3>Summary<\/h3>\n<p>The article had explained what are Sqoop drivers and connectors. In this article, you had also explored the different connectors shipped with Sqoop for connecting to various databases.<\/p>\n<p>You had learned about the connectors like MySQL JDBC connector, MySQL Direct connector, Microsoft SQL connector, PostgreSQL connector, Netezza connector, and some more.<\/p>\n<p>The article had also enlisted the drivers and connectors argument which we can use depending on the database we want to connect to.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Sqoop is a tool which is designed for the data transfers between the RDBMS and the Hadoop ecosystem. One of the major advantages of Apache Sqoop is that it is easy to use, and&#46;&#46;&#46;<\/p>\n","protected":false},"author":1,"featured_media":79678,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3163],"tags":[3199,3200],"class_list":["post-79637","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-sqoop","tag-connectors-and-drivers-in-apache-sqoop","tag-sqoop-connectors-and-drivers"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Connectors and Drivers in the World of Apache Sqoop - TechVidvan<\/title>\n<meta name=\"description\" content=\"Sqoop Connectors and Drivers - Using specialized connectors that work with JDBC drivers, Sqoop connects with external system having import export facilities\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/techvidvan.com\/tutorials\/apache-sqoop-connectors-drivers\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Connectors and Drivers in the World of Apache Sqoop - TechVidvan\" \/>\n<meta property=\"og:description\" content=\"Sqoop Connectors and Drivers - Using specialized connectors that work with JDBC drivers, Sqoop connects with external system having import export facilities\" \/>\n<meta property=\"og:url\" content=\"https:\/\/techvidvan.com\/tutorials\/apache-sqoop-connectors-drivers\/\" \/>\n<meta property=\"og:site_name\" content=\"TechVidvan\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/TechVidvan\/\" \/>\n<meta property=\"article:published_time\" content=\"2020-08-26T03:30:19+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2020\/08\/Sqoop-Connectors-Drivers-TV.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"TechVidvan Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@vidvantech\" \/>\n<meta name=\"twitter:site\" content=\"@vidvantech\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"TechVidvan Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Connectors and Drivers in the World of Apache Sqoop - TechVidvan","description":"Sqoop Connectors and Drivers - Using specialized connectors that work with JDBC drivers, Sqoop connects with external system having import export facilities","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/techvidvan.com\/tutorials\/apache-sqoop-connectors-drivers\/","og_locale":"en_US","og_type":"article","og_title":"Connectors and Drivers in the World of Apache Sqoop - TechVidvan","og_description":"Sqoop Connectors and Drivers - Using specialized connectors that work with JDBC drivers, Sqoop connects with external system having import export facilities","og_url":"https:\/\/techvidvan.com\/tutorials\/apache-sqoop-connectors-drivers\/","og_site_name":"TechVidvan","article_publisher":"https:\/\/www.facebook.com\/TechVidvan\/","article_published_time":"2020-08-26T03:30:19+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2020\/08\/Sqoop-Connectors-Drivers-TV.jpg","type":"image\/jpeg"}],"author":"TechVidvan Team","twitter_card":"summary_large_image","twitter_creator":"@vidvantech","twitter_site":"@vidvantech","twitter_misc":{"Written by":"TechVidvan Team","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/techvidvan.com\/tutorials\/apache-sqoop-connectors-drivers\/#article","isPartOf":{"@id":"https:\/\/techvidvan.com\/tutorials\/apache-sqoop-connectors-drivers\/"},"author":{"name":"TechVidvan Team","@id":"https:\/\/techvidvan.com\/tutorials\/#\/schema\/person\/e9c26e74dd3d87421f7ada9433b8cd22"},"headline":"Connectors and Drivers in the World of Apache Sqoop","datePublished":"2020-08-26T03:30:19+00:00","mainEntityOfPage":{"@id":"https:\/\/techvidvan.com\/tutorials\/apache-sqoop-connectors-drivers\/"},"wordCount":1543,"commentCount":0,"publisher":{"@id":"https:\/\/techvidvan.com\/tutorials\/#organization"},"image":{"@id":"https:\/\/techvidvan.com\/tutorials\/apache-sqoop-connectors-drivers\/#primaryimage"},"thumbnailUrl":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2020\/08\/Sqoop-Connectors-Drivers-TV.jpg","keywords":["Connectors and Drivers in apache sqoop","Sqoop Connectors and Drivers"],"articleSection":["Sqoop Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/techvidvan.com\/tutorials\/apache-sqoop-connectors-drivers\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/techvidvan.com\/tutorials\/apache-sqoop-connectors-drivers\/","url":"https:\/\/techvidvan.com\/tutorials\/apache-sqoop-connectors-drivers\/","name":"Connectors and Drivers in the World of Apache Sqoop - TechVidvan","isPartOf":{"@id":"https:\/\/techvidvan.com\/tutorials\/#website"},"primaryImageOfPage":{"@id":"https:\/\/techvidvan.com\/tutorials\/apache-sqoop-connectors-drivers\/#primaryimage"},"image":{"@id":"https:\/\/techvidvan.com\/tutorials\/apache-sqoop-connectors-drivers\/#primaryimage"},"thumbnailUrl":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2020\/08\/Sqoop-Connectors-Drivers-TV.jpg","datePublished":"2020-08-26T03:30:19+00:00","description":"Sqoop Connectors and Drivers - Using specialized connectors that work with JDBC drivers, Sqoop connects with external system having import export facilities","breadcrumb":{"@id":"https:\/\/techvidvan.com\/tutorials\/apache-sqoop-connectors-drivers\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/techvidvan.com\/tutorials\/apache-sqoop-connectors-drivers\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/techvidvan.com\/tutorials\/apache-sqoop-connectors-drivers\/#primaryimage","url":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2020\/08\/Sqoop-Connectors-Drivers-TV.jpg","contentUrl":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2020\/08\/Sqoop-Connectors-Drivers-TV.jpg","width":1200,"height":628,"caption":"Sqoop Connectors and Drivers"},{"@type":"BreadcrumbList","@id":"https:\/\/techvidvan.com\/tutorials\/apache-sqoop-connectors-drivers\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/techvidvan.com\/tutorials\/"},{"@type":"ListItem","position":2,"name":"Connectors and Drivers in the World of Apache Sqoop"}]},{"@type":"WebSite","@id":"https:\/\/techvidvan.com\/tutorials\/#website","url":"https:\/\/techvidvan.com\/tutorials\/","name":"TechVidvan Blogs","description":"","publisher":{"@id":"https:\/\/techvidvan.com\/tutorials\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/techvidvan.com\/tutorials\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/techvidvan.com\/tutorials\/#organization","name":"TechVidvan","url":"https:\/\/techvidvan.com\/tutorials\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/techvidvan.com\/tutorials\/#\/schema\/logo\/image\/","url":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2024\/03\/techvidvan-logo-200x50-1.webp","contentUrl":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2024\/03\/techvidvan-logo-200x50-1.webp","width":200,"height":50,"caption":"TechVidvan"},"image":{"@id":"https:\/\/techvidvan.com\/tutorials\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/TechVidvan\/","https:\/\/x.com\/vidvantech"]},{"@type":"Person","@id":"https:\/\/techvidvan.com\/tutorials\/#\/schema\/person\/e9c26e74dd3d87421f7ada9433b8cd22","name":"TechVidvan Team","description":"The TechVidvan Team delivers practical, beginner-friendly tutorials on programming, Java, Python, C++, DSA, AI, ML, data Science, Android, Flutter, MERN, Web Development, and technology. Our experts are here to help you upskill and excel in today\u2019s tech industry."}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/posts\/79637","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/comments?post=79637"}],"version-history":[{"count":0,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/posts\/79637\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/media\/79678"}],"wp:attachment":[{"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/media?parent=79637"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/categories?post=79637"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/tags?post=79637"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}